Windows的加固步骤比较熟,Linux的加固命令不太熟,记录一下,工作备忘。
再次声明:不同系统、相同系统的不同版本之间命令存在差别。
0x01 Linux-安全加固
1. 查看系统版本
内核版本: cat /proc/version
其他linux: lsb_release -a
CentOS: cat /etc/redhat-release
SuSE: cat /etc/SuSE-release
2. 查看空口令账户
查看空口令用户: awk -F: '($2=="")' /etc/shadow
显示所有用户名: cat /etc/passwd | cut -f 1 -d :
3. 查看密码策略
密码文件: cat /etc/login.defs
MAX_DAY 180 密码可用的最长时间
MIN_DAY 10 修改密码最短间隔天数
MIN_LEN 8 密码最小长度
WARE_AGE 21 密码过期前警告天数
注意:这个地方只对新加的账号有效,对已存在的账号需要用chage命令自己修改
chage -l root list 列出用户的详细密码状态
chage -M 180 root 天数 Maxdays 密码有效期
chage -m 10 root 天数 mindays 修改两次密码修改间隔时间
chage -W 21 root 天数 warning 密码过期前警告天数
chage -d 2021-11-11 root 日期 date 修改密码最后一次更改日期
4.查看密码复杂度
cat /etc/pam.d/system-auth
minlen=8(密码最小长度) ucredit=-1(至少包含一个大写字母) lcredit=-1(至少包含一个小写字母
dcredit=-1(至少包含一个数字) ocredit=-1(至少包含一个其他字符)
注意:针对改密码时生效,若之前账户存在弱口令,弱口令仍存在
5.登录失败策略
cat /etc/pam.d/sshd
注释: 连续输错密码3次,锁定账户5分钟。
6. 修改unask值
系统默认的umask值是0022;对于普通用户,系统默认的umask值是0002
注意:umask命令只能临时修改权限,永久修改umask数值请修改/etc/bashrc文件,添加一行 umask 027,此时你创建的文件是750权限,表示文件所有者读写和运行,组成员读和执行权限,其他成员无权限。
7. 接入日志服务器
vim /etc/rsyslog.conf
注释:设置成日志服务器的地址即可。有的系统是syslog.conf,有的系统不加514端口
8. 设置登录超时
vim /etc/profile
注释:添加TMOUT=180 表示3分钟闲置超时,在工作站工作人员需要时刻观察参数,不做此加固项
9. 登录地址限制
修改vim /etc/hosts.allow文件,加入堡垒机和管理员的IP地址
修改vim /etc/hosts.deny文件,添加拒绝所有
10. 关闭FTP匿名服务
vim /etc/vsftpd.conf
anonymous_enable=NO
0x02 Linux-应急检查
1. 检查用户登录情况
who 查看当前登录用户(tty本地登陆 pts远程登录)
last 查看登录过的用户和登录的时间
lastlog 查看所有用户上次登录的时间
uptime 查看登陆多久、多少用户,负载
2. 查看有无其他特权账号
awk -F: '$3==0{print $1}' /etc/passwd
一般情况下,默认root为特权账号,防止其他用户例如数据库等账号被恶意提权
3. 查看历史命令记录
通过历史命令可以判断是否是人为恶意入侵事件,不同用户的历史记录存在在/home/user/目录下
4. 查看异常端口
netstat -antlp | more
5. 检查异常进程
ps aux
6. 检查定时任务
crontab -u root -l
通过-u指定不同的用户名,重点关注数据库等用户
6. 检查异常文件
查看敏感目录,如/tmp、/opt等目录下的文件,特别注意带隐藏属性的文件,必要时使用stat查看文件修改时间。
若在WEB目录下发现可疑文件可以将WEB目录备份下来利用D盾或其他在线Webshell查杀工具进行查杀--https://n.shellpub.com
7. 查看登录成功失败的IP
查看登陆成功的用户的日期、用户名和IP
grep "Accepted" /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
查看登陆失败的用户IP信息
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c