【应急响应】Linux安全加固
一、补丁管理
1、查看系统信息
uname -a
2、配置yun源
CentosOS 可以直接升级
RHEL系列可以配置使用CentosOS源
3、升级软件包
yum –y update
二、安全工具
三、日志审计
1、操作日志系统
2、相关命令
who
last
四、内核参数
1、内核参数
vi /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_broadcasts = 1 #忽略ICMP广播 net.ipv4.icmp_echo_ignore_all = 1 #忽略ICMP echo请求 net.ipv4.ip_default_ttl = 128 #修改TTL为128
#sysctl -p
2、开启syncookies
编辑/etc/sysctl.conf文件
添加 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 4096 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_synack_retries = 3 然后运行 sysctl -p
五、网络服务
1、SSH安全配置
(1)禁止root登录
PermitRootLogin no
(2)绑定端口、协议和IP地址
Port 22 Protocol 2 ListenAddress 192.168.1.1
(3)允许密码错误次数
MaxAuthTries=3
2、配置tcp_wrappers,限制允许远程登陆系统的IP范围
编辑/etc/hosts.deny
添加sshd:ALL
编辑/etc/hosts.allow
添加sshd:192.168.0.0/255.255.255.0
六、账号管理
1、密码文件passwd
cat /etc/passwd
2、密码文件shadow
cat /etc/shadow
3、用户管理
添加/删除组 groupadd、groupdel 添加/删除用户 useradd、userdel 锁定/解锁用户 passwd -l、passwd -u
4、空密码用户
(1)禁止root远程登录,只允许特定用户SSH登录
编辑/etc/ssh/sshd_config,添加
AllowUsers user1 user2
PermitRootLogin no
(2)只允许特定的用户组执行su获得root权限
编辑/etc/pam.d/su文件,将一下代码的注释符去掉
#auth required pam_wheel.so use_uid
5、口令强度检查
--retry=N:修改密码时,出现错误的次数 --minlen=N:密码最少字符数 --dcredit=N:至少有N个数字 --ucredit=N:至少有N个大写字符 --lcredit=N:至少有N个小写字符 --ocredit=N:至少有N个其他字符
编辑/etc/pam.d/system-auth
password requisite pam_cracklib.so try_first_pass retry=3
6、口令生存周期
vi /etc/login.defs
PASS_MAX_DAYS 99999 90 PASS_WARN_AGE 7 10
7、认证失败后锁定
编辑/etc/pam.d/system-auth文件,在auth required pam_env.so 后面添加
auth required pam_tally.so onerr=fail deny=5 unlock_time=1800
8、禁止空密码用户登录
编辑/etc/pam.d/system-auth文件
auth sufficient pam_unix.so nullok try_first_pass
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
七、文件权限
1、文件权限
ls -l /etc
格式:权限(属主,属组,其他)链接数 属主 属组 大小 最近修改时间 文件名
修改权限和属主:
# chmod u+x,g+w,o+r /tmp/abc
# chown test:test /tmp/abc
2、SetUID
ls -l /bin/ping
(1)设置SetUID
# chmod u+s /tmp/abc
# ls -l /tmp/abc
(2)查找SetUID文件
find / -perm -4000 -type f -print
(3)文件系统属性
lsattr install.log
根据不同的标志位设置不同的权限
lsattr 列出文件属性
chattr 修改文件属性
chattr +i install.log
3、文件系统属性
文件系统属性 a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日文件安全,只有root才能设定这个属性。 c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。 d:即no dump,设定文件不能成为dump程序的备份目标。 i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件系统的安全设置有很大帮助。 j:即journal,设定此参数使得当通过mount参数:data=ordered或data=writeback 挂载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为data=journal,则该参数自动失效。 s:保密性地删除文件或目录,即硬盘空间被全部收回。 u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion.
4、完整性检查
(1)md5sum
#cat record.sh md5sum /etc/shadow >>md5.txt md5sum /bin/ls >>md5.txt md5sum /bin/netstat >>md5.txt #cat md5.txt e3faf4e266e8062b62357eb944a718f0 /etc/shadow e3faf4e266e8062b62357eb944a718f0 /etc/shadow 4feb28d49aeb1c51fb827c7733ebf436 /bin/ls a3939f9a264880611f2ac7f255e339c6 /bin/netstat #md5sum -c md5.txt /etc/shadow: 确定 /etc/shadow: 确定 /bin/ls: 确定 /bin/netstat: 确定
5、设置Bash保留历史命令的条数
vi /etc/profile
HISTSIZE=5 HISTFILESIZE=5
6、设置登录超时
vi /etc/profile
TMOUT=180
7、设置root用户的umask为077
编辑/root/.bash_profil
添加umask 077
8、防止误使用Ctrl+Alt+Del重启系统
vi /etc/inittab
注释:ca::ctrlaltdel:/sbin/shutdown -r -t 4 now