Linux安全加固

为不同的管理员分配不同的账号

#cat /etc/passwd        #查当前用户列表
默认用户sync,shutdown,halt,news,uucp,operator,games,gopher可以删除或username的shell改为null
#useradd username       #创建账号 
#passwd username        #设置密码 
修改权限: 
#chmod 750 dir          #其中755为设置的权限,dir是更改权限的目录
#userdel -r username    #删除用户及用户空间
#cat /etc/shadow        #查看当前密码配置

限制超级管理员远程登录

#cat /etc/ssh/sshd_config 
#cat /etc/securetty         #查看当前状态

#vi /etc/ssh/sshd_config 
#将PermitRootLogin no        #设置为no 
#重启sshd后生效
#在/etc/securetty文件中配置:CONSOLE = /dev/tty01

对系统账号进行登录限制

#Vi /etc/passwd 
例如修改 
AAA:x:500:500::/home/lynn:/sbin/bash 
更改为: 
AAA:x:500:500::/home/lynn:/sbin/nologin     #该用户就无法登录

禁止所有用户登录。 
#touch /etc/nologin 
#root以外的用户不能登录 
#禁止交互登录的系统账号,比如daemon,bin,sys、adm、lp、uucp、nuucp、smmsp等等 

禁止空口令用户 、root外超管用户

#awk -F: '($2 == ""){print $1}' /etc/passwd     #查看无密码用户
#awk -F: '($3 == 0) { print $1 }' /etc/passwd   #查看超管用户
#passwd 用户名 密码 #为空口令用户增加密码、删除其他超管用户或降级

缺省密码设置

#cat /etc/login.defs 
#vi /etc/login.defs
#将 PASS_MIN_LEN 8       #设置为8       #提高密码长度要求
#将 PASS_MAX_DAYS 90     #设置为90      #密码90天后需要修改
#将 PASS_MIN_DAYS 0      #设置为0 
#将 PASS_WARN_AGE 7      #设置为7       #口令到期7天前通知即将到期

设置关键目录的权限


#/etc/passwd 必须所有用户都可读,root用户可写 
#/etc/shadow 只有root可读
#/etc/group 必须所有用户都可读,root用户可写 
#chmod 644 /etc/passwd 
#chmod 600 /etc/shadow 
#chmod 644 /etc/group 
#控制用户缺省访问权限
#vi /etc/profile        #在末尾增加umask 027 
#vi /etc/csh.login      #在末尾增加umask 027 
#vi /etc/csh.cshrc      #在末尾增加umask 027 
#vi /etc/bashrc         #在末尾增加umask 027 
#资源使用限制-抗DDOS
#vi /etc/security/limits.conf #按需调试
#chmod -R 750 /etc/init.d/*   #仅root可以读、写和执行这个目录下的脚本
#关键文件设置为不可更改,只可追加,避免日志被删除
#chattr +a /var/log/messages 
#chattr +i /var/log/messages.* 
#对root为ls、rm设置别名
#alias ls   ls -aol 
#alias rm  rm -i #删除前注意不要删错 

日志配置

#cat /etc/syslog.conf                                        #查看启用状态
#vi /etc/syslog.conf
#配置 *.err;kern.debug;daemon.notice; /var/adm/messages       #开启安全日志
#配置 authpriv.* /var/log/secure                              #记录ssh、su登录日志
#配置 cron.*  /var/log/cron                                   #记录计划任务
#配置/etc/rc.d/init.d/syslog restart                          #重启日志服务

通讯协议配置

#访问控制列表--目前推荐用外部防火墙or交换机
#DNS解析顺序,减少IP欺骗,先互联网后本机hosts
#vi /etc/host.conf #配置order bind,hosts #配置nospoof on
#echo 1 > /proc/sys/net/ipv4/tcp_syncookies  #打开syncookie缓解syn flood攻击
#echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all  #禁用icmp
#sysctl -w net.ipv4.tcp_max_syn_backlog="2048" #提高SYN队列

关闭无效服务

#systemctl list-units --type=service --all  #列出所有安装的服务(含未启动)
#systemctl disable --now XXX.service  #关停某个XXX服务
#关停非必要自启动
#cd /etc/rc.d/init.d  #在不需要开机自动运行的脚本第一行写入 exit 0
#更改常用服务端口
#vi /etc/profile    #将“HISTFILESIZE=” 配置为TMOUT=180 三分钟超时

设备文件

#find  /dev  -type f  -exec ls -l {} \;    #查找/dev下的非设备文件
#find / -type b -print | grep -v '^/dev/'  #查找非/dev下的设备文件
#find / -type c -print | grep -v '^/dev/'  #查找非/dev下的设备文件
#find / -perm -2 ! -type l –ls             #查找所有人可写的文件
#find / -type d \( -perm -002 -o -perm -020 \) -ls #权限为777目录
#find / -nouser -o -nogroup -print         #查找没有属主的文件
#find / -name ".. *" –print                #检查异常隐含文件

补丁:及时升级