Red Hat Linux 安全设置指南
程序员文章站
2022-05-18 10:45:32
1.最小化安全系统,删除不必要的软件,关闭不必要的服务。
# ntsysv
以下仅列出需要启动的服务,未列出的服务一律推荐关闭,必要运行的服务再逐个打开。
... 09-08-01...
1.最小化安全系统,删除不必要的软件,关闭不必要的服务。
# ntsysv
以下仅列出需要启动的服务,未列出的服务一律推荐关闭,必要运行的服务再逐个打开。
atd
crond
irqbalance
microcode_ctl
network
sshd
syslog
2.删除finger程序,具体方法如下
#rpm –e finger
3.bois安全设置
4.帐号安全设置
修改/etc/login.def文件
pass_max_days 120 ?设置密码过期日期
pass_min_days 0 ?设置密码最少更改日期
pass_min_len 10 ?设置密码最小长度
pass_warn_age 7 ?设置过期提前警告天数
确保/etc/shadow为root只读
确保/etc/passwd为root读写
定期用密码工具检测用户密码强度
5./etc/exports
如果通过nfs把文件共享出来,那么一定要配置”/etc/exports”文件,使得访问限制尽可能的严格。这就是说,不要使用通配符,不允许对根目录有写权限,而且尽可能的只给读权限。在/etc/exports文件加入:
/dir/to/export host1.mydomain.com(ro,root_squash)
/dir/to/export host2.mydomain.com(ro,root_squash)
建议最好不要使用nfs.
6.inetd.conf或xinetd.conf
如果是inetd.conf建议注释掉所有的r开头的程序,exec等
7.tcp_wrappers
在/etc/hosts.allow中加入允许的服务,在/etc/hosts.deny里加入这么一行all:all
8./etc/aliases文件
aliases文件如果管理错误或管理粗心就会造成安全隐患。把定义”decode”这个别名的行从aliases文件中删除。
编辑aliases,删除或注释下面这些行:
#games: root
#ingres: root
#system: root
#toor: root
#uucp: root
#manager: root
#dumper: root
#operator: root
#decode: root
运行/usr/bin/nesaliases重新加载。
9.防止sendmail被没有授权的用户滥用
编辑sendmail.cf
把privacyoptions=authwarnings
改为privacyoptions=authwarnings,noexpn,novrfy
10.不响应ping
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
11.使tcp syn cookie保护生效
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
12.删除不必要的用户和组用户
删除的用户,如adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher等
删除的组,如adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers等
可以设置不可更改位
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
13.防止任何人都可以用su命令成为root
编辑su文件(vi /etc/pam.d/su),加入如下两行
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=wheel
把能su为root的用户加入wheel组
usermod -g10 username
14.使control+alt+delete关机键无效
编辑inittab文件,注释掉
ca:ctrlaltdel:/sbin/shutdown –t3 –r now
运行/sbin/init q 使设置生效
15.创建所有重要的日志文件的硬拷贝
如果服务器比较重要,可以考虑把ssh,mail,引导信息等打印出来。在/etc/syslog.conf文件中加入一行。:
authpriv.*;mail.*;local7.*;auth.*;daemon.info /dev/lp0
执行/etc/rc.d/init.d/syslog restart
或者把日志发送到其它服务器保存
如
authpriv.* /var/log/secure
要把它发送到192.168.0.2,就可以这样修改
authpriv.* @192.168.0.2 /var/log/secure
16.改变/etc/rc.d/init.d目录下的脚本文件的访问许可
chmod –r 700 /etc/rc.d/init.d/*
注意:慎重修改此安全设置
17./etc/rc.d/rc.local
把此文件中无关的信息全部注释,不让任何人看到任何有关主机的信息。
删除/etc下的issue和issue.net
18.带s位的程序
可以清除s位的程序包括但不限于:
从来不用的程序;
不希望非root用户运行的程序;
偶尔用用,但是不介意先用su命令变为root后再运行。
find / -type f \( -perm 04000 –o –perm -02000 \) -print
chmod a-s 程序名
19.查看系统隐藏文件
find / -name “。*” –print
20.查找任何人都有写权限的文件和目录
find / -type f \( -perm -2 -o perm -20 \) ls
find / -type f \( -perm -2 –o –perm -20 \) ls
21.查找系统中没有主人的文件
find / -nouser –o –nogroup
22.查找。rhosts文件
find /home -name ".rhosts"
如果有,请删除它。
23.收回系统编译器的权限或删除
如: chmod 700 /usr/bin/gcc
# ntsysv
以下仅列出需要启动的服务,未列出的服务一律推荐关闭,必要运行的服务再逐个打开。
atd
crond
irqbalance
microcode_ctl
network
sshd
syslog
2.删除finger程序,具体方法如下
#rpm –e finger
3.bois安全设置
4.帐号安全设置
修改/etc/login.def文件
pass_max_days 120 ?设置密码过期日期
pass_min_days 0 ?设置密码最少更改日期
pass_min_len 10 ?设置密码最小长度
pass_warn_age 7 ?设置过期提前警告天数
确保/etc/shadow为root只读
确保/etc/passwd为root读写
定期用密码工具检测用户密码强度
5./etc/exports
如果通过nfs把文件共享出来,那么一定要配置”/etc/exports”文件,使得访问限制尽可能的严格。这就是说,不要使用通配符,不允许对根目录有写权限,而且尽可能的只给读权限。在/etc/exports文件加入:
/dir/to/export host1.mydomain.com(ro,root_squash)
/dir/to/export host2.mydomain.com(ro,root_squash)
建议最好不要使用nfs.
6.inetd.conf或xinetd.conf
如果是inetd.conf建议注释掉所有的r开头的程序,exec等
7.tcp_wrappers
在/etc/hosts.allow中加入允许的服务,在/etc/hosts.deny里加入这么一行all:all
8./etc/aliases文件
aliases文件如果管理错误或管理粗心就会造成安全隐患。把定义”decode”这个别名的行从aliases文件中删除。
编辑aliases,删除或注释下面这些行:
#games: root
#ingres: root
#system: root
#toor: root
#uucp: root
#manager: root
#dumper: root
#operator: root
#decode: root
运行/usr/bin/nesaliases重新加载。
9.防止sendmail被没有授权的用户滥用
编辑sendmail.cf
把privacyoptions=authwarnings
改为privacyoptions=authwarnings,noexpn,novrfy
10.不响应ping
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
11.使tcp syn cookie保护生效
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
12.删除不必要的用户和组用户
删除的用户,如adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher等
删除的组,如adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers等
可以设置不可更改位
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
13.防止任何人都可以用su命令成为root
编辑su文件(vi /etc/pam.d/su),加入如下两行
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=wheel
把能su为root的用户加入wheel组
usermod -g10 username
14.使control+alt+delete关机键无效
编辑inittab文件,注释掉
ca:ctrlaltdel:/sbin/shutdown –t3 –r now
运行/sbin/init q 使设置生效
15.创建所有重要的日志文件的硬拷贝
如果服务器比较重要,可以考虑把ssh,mail,引导信息等打印出来。在/etc/syslog.conf文件中加入一行。:
authpriv.*;mail.*;local7.*;auth.*;daemon.info /dev/lp0
执行/etc/rc.d/init.d/syslog restart
或者把日志发送到其它服务器保存
如
authpriv.* /var/log/secure
要把它发送到192.168.0.2,就可以这样修改
authpriv.* @192.168.0.2 /var/log/secure
16.改变/etc/rc.d/init.d目录下的脚本文件的访问许可
chmod –r 700 /etc/rc.d/init.d/*
注意:慎重修改此安全设置
17./etc/rc.d/rc.local
把此文件中无关的信息全部注释,不让任何人看到任何有关主机的信息。
删除/etc下的issue和issue.net
18.带s位的程序
可以清除s位的程序包括但不限于:
从来不用的程序;
不希望非root用户运行的程序;
偶尔用用,但是不介意先用su命令变为root后再运行。
find / -type f \( -perm 04000 –o –perm -02000 \) -print
chmod a-s 程序名
19.查看系统隐藏文件
find / -name “。*” –print
20.查找任何人都有写权限的文件和目录
find / -type f \( -perm -2 -o perm -20 \) ls
find / -type f \( -perm -2 –o –perm -20 \) ls
21.查找系统中没有主人的文件
find / -nouser –o –nogroup
22.查找。rhosts文件
find /home -name ".rhosts"
如果有,请删除它。
23.收回系统编译器的权限或删除
如: chmod 700 /usr/bin/gcc
推荐阅读
-
linux mysql 数据库开启外部访问设置指南
-
如何给安装好Linux服务器进行优化设置和安全设置
-
Red Hat Enterprise Linux / CentOS 7 yum安装zabbix4.0
-
Red Hat Enterprise Linux / CentOS 7 yum安装zabbix4.0
-
VPS常用安全设置(linux)
-
如何设置让自己的linux操作系统更加安全
-
Linux下PHP+Apache的26个必知的安全设置
-
一个Linux系统安全设置的Shell脚本的分享(适用CentOS)
-
LINUX安全运维之:文件系统的权限修改与安全设置
-
Linux下常用安全策略设置的六个方法