Windows的加固步骤比较熟,Linux的命令不太熟,记录一下,工作备忘。

0x01 Linux-安全加固

1. 查看系统版本

内核版本: cat /proc/version
其他linux: lsb_release -a
CentOS: cat /etc/redhat-release

2. 查看空口令账户

查看空口令用户: awk -F:'($2=="")' /etc/shadow
显示所有用户名: cat /etc/passwd | cut -f 1 -d :

3. 查看密码策略

密码文件: cat /etc/login.defs
pass

MAX_DAY  90  密码可用的最长时间
MIN_DAY  10   修改密码最短间隔天数
MIN_LEN  8   密码最小长度
WARE_AGE  20   密码过期前警告天数
注意:这个地方只对新加的账号有效,对已存在的账号需要用chage命令自己修改
root-pas

-l  list 列出用户的详细密码状态
-d  日期 date 修改密码最后一次更改日期
-m  天数 mindays 修改两次密码修改间隔时间
-M  天数 Maxdays 密码有效期
-W  天数 warning 密码过期前警告天数
-I  天数 inactive 密码过期后宽限天数
-E  天数 expiredate 账号失效时间

4.查看密码复杂度

cat /etc/pam.d/system-auth
fuza
minlen=8(密码最小长度) ucredit=-1(至少包含一个大写字母) lcredit=-1(至少包含一个小写字母
dcredit=-1(至少包含一个数字) ocredit=-1(至少包含一个其他字符)
difok=3(允许新旧密码相同的位数) minclass=2(至少包含两种不同的字符)
注意:此设定对root用户无效,仅对普通用户改密码时有效

5.登录失败策略

cat /etc/pam.d/system-auth
login-fail
注释: 连续输错密码3次,锁定账户5分钟。只针对本地账户登录有效,对SSH登陆无效.

6. 修改unask值

umask
系统默认的umask值是0022;对于普通用户,系统默认的umask值是0002
注意:umask命令只能临时修改权限,永久修改umask数值请修改/etc/bashrc文件,添加一行 umask 027,此时你创建的文件是750权限,表示文件所有者读写和运行,组成员读和执行权限,其他成员无权限。

7. 接入日志服务器

vim /etc/rsyslog.conf
log
注释:修改方框中一行,设置成日志服务器的地址即可

8. 设置登录超时

vim /etc/profile
TMOUT
注释:添加TMOUT=180 表示3分钟闲置超时,在工作站工作人员需要时刻观察参数,不做此加固项

9. 登录地址限制

修改vim /etc/hosts.allow文件,加入堡垒机和管理员的IP地址
allow
修改vim /etc/hosts.deny文件,添加拒绝所有
deny

10. 关闭FTP匿名服务

vim /etc/vsftpd.conf
anonymous_enable=NO

0x02 Linux-应急检查

1. 检查用户登录情况

who  查看当前登录用户(tty本地登陆 pts远程登录)
w  查看系统信息,想知道某一时刻用户的行为
uptime  查看登陆多久、多少用户,负载

2. 查看有无其他特权账号

awk -F: '$3==0{print $1}' /etc/passwd
一般情况下,默认root为特权账号,防止其他用户例如数据库等账号被恶意提权

3. 查看历史命令记录

history
通过历史命令可以判断是否是人为恶意入侵事件,不同用户的历史记录存在在/home/user/目录下

4. 查看异常端口

netstat -antlp | more
netstat

5. 检查异常进程

ps aux

6. 检查定时任务

crontab -u root -l
corntab
通过-u指定不同的用户名,重点关注数据库等用户

6. 检查异常文件

查看敏感目录,如/tmp、/opt等目录下的文件,特别注意带隐藏属性的文件,必要时使用stat查看文件修改时间。
stat
若在WEB目录下发现可疑文件可以将WEB目录备份下来利用D盾或其他在线Webshell查杀工具进行查杀--https://n.shellpub.com

7. 查看登录成功失败的IP

查看登陆成功的用户的日期、用户名和IP
grep "Accepted" /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
secced

查看登陆失败的用户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
faild