【应急响应】Linux安全加固

一、补丁管理

1、查看系统信息

uname -a

2、配置yun源

CentosOS 可以直接升级
RHEL系列可以配置使用CentosOS源

3、升级软件包

yum –y update

二、安全工具

三、日志审计

1、操作日志系统

2、相关命令

who
last

1

四、内核参数

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

111

原文地址:https://www.cnblogs.com/sqyysec/p/7720114.html