--------陕西省第二届工业互联网安全赛项
注:本资料为赛前临时准备资料(持续更新)
一、Linux安全加固
1.1 登录失败处理功能
针对最大尝试次数和尝试失效以后的锁定时间
# 第一条为查看锁定时间的命令,显示>=10分钟,实验环境中(kali, 下同)采用的单位是分钟,主机系统Ubuntu应该是秒,所以需要用60×分钟数
# 第二条为查看最大错误次数的命令,要求<=5,设置时可以尽可能小。
# 命令本质为查看/etc/ssh/sshd_config文件中的内容,可以直接打开文件进行编辑或查询。
具体可以依照题目要求,使用vi或vim进行设置。
// 查看锁定时间的命令为
more /etc/ssh/sshd_config | grep -v "'#" | grep LoginGraceTime | cut -d '' -f2
// 查看锁定次数的命令为
more /etc/ssh/sshd_config | grep -v "'#" | grep MaxAuthTries | cut -d '' -f2
1.2 查看是否允许root用户远程登录
说明:一般禁止远程的root登录会提高Linux系统的安全性
more /etc/ssh/sshd_config | grep -v "^*\|^#\|^$" | grep PermitRootLogin | cut -d " " -f2
# 在kali当中没有“#PermitRootLogin no”选项 所以在演示中没有正常输出。在系统操作过程中应该显示为 no,如果题目要求,需要改成no
1.3 用户策略
1.3.1 限制默认账户的访问权限,重命名系统默认账户,修改这些账户的默认口令
# 在Linux账户管理系统中,root用户为最高用户,UID=0,1-1000的账户(如:bin等)为默认账户。
为了保护系统的安全,应该限制默认账户的访问权限。重命名默认账户或修改默认账户的口令
# 查询是否有默认账户的访问权限
cat /etc/passwd | grep -v "^*\|^#\|^$" | cut -d : -f1 | grep "bin\|deamon\|lp\|uucp\|games\|news"
在这里查询的结果应该为空。(由于Kali中没有设置,所以有回显)
我们通过命令 usermod -l 重命名 原名 的方式改变默认用户的口令(进行重命名)。修改命名方式以后并不会修改用户的UID,用户命令的原本的功能没有被修改,还可以通过新的口令进行调度。
1.3.2 删除非必要用户
1.3.2.1 删除除root外的用户
awk -F ‘($3 == 0) (print $1)’ /etc/passwd
# userdel 非必要的默认账户
1.3.2.2 限制su-root 禁止普通用户通过su升级成root用户
setup1:
vim /etc/pum.d/su
setup2:
取消注释
setup3:
在/etc/login.defs 文件中加入一下项
1.4 保护审计记录
审计记录中包含了Linux中的所有的行为,应修改其权限使得其不被修改、删除。
审计记录文件为:
查看权限的命令:ls -l
修改权限命令chmod
1.5 设置登录超时
配置文件:/etc/profile
# 在文件中加入export TMOUT=180
# 备份文件 (cp /etc/profile /etc/profile_bak)
1.6 配置管理
设置密码最长周期、最短周期、最小长度、到期前提醒
配置文件:/etc/login.defs
1.7 主机配置
1.7.1 通过echo $SHELL查看当前使用的shell
1.7.2 设置rm别名,设置成交互型删除
命令:alias rm=”rm -i”
1.7.3 设置配置文件的默认值
在/etc/login.defs /etc/profile /etc/csh
等配置文件后加入umask 027
,使得用户和组内成员都没有写入甚至读取的权力
手动命令 :chmod 027
1.8 网络配置,修改ssh端口
配置文件:/etc/sshd/ssh_config
1.8.1 ssh端口转发
ssh -L 8080:192.168.1.6:80 root@192.168.1.7
# 正向代理
ssh -R 8080:192.168.1.6:80 root@192.168.1.7
# 反向代理
ssh -D 1080 -fN 192.168.1.7
1.9查看网络信息
指令如下:
netstat -antup
netstat -tulpn
lsof -i :80
grep 80 /etc/services
ss -nt