1、账号安全控制
1.1 基本安全措施
①系统账号清理
usermod -L zhangsan //锁定账号
passwd -S zhangsan //查看账号状态
usermod -U zhangsan //解锁账号
chattr +i /etc/passwd /etc/shadow //锁定文件
lsattr /etc/passwd /etc/shadow //查看锁定的状态
chattr -i /etc/passwd /etc/shadow //解锁文件
②密码安全控制
设置用户密码过期时间(天)
chage -M 30 lisi //用户密码30天后过期(常用)
或 vim /etc/login.defs //适用于后面新建的用户
PASS_MAX_DAYS 30
或 chage -d 0 lisi //用户下次登录所设置的密码一定要满足复杂性要求
③命令历史
设置用户历史命令记录为200条
vim /etc/profile //对所有用户都有效(立即生效: source /etc/profile )
HISTSIZE=200
或 export HISTSIZE=200 //适用于当前用户有效
或 退出登录bash环境后,所记录的历史命令自动清空
vim ~/.bash_logout
history -c
clear
④自动注销(超过闲置时间:秒,将自动注销终端)
vim /etc/profile //适用于所有用户
export TMOUT=600
或 export TMOUT=600 //适用于当前用户
1.2 用户切换与提权
①su命令–切换用户
su - zhangsan //选项“-”等同于“–login”或“-l”,表示切换用户后进入目标用户的登录shell环境
开启pam_wheel.so模块,来拒绝某些用户使用su命令
1.vim /etc/pam.d/su
1 | auth required pam_wheel.so use_uid //去掉开关的#号 |
2.gpasswd -a zhangsan wheel //添加授权用户zhangsan到wheel组,表示此用户可以使用su命令切换用户,否则即使密码输入正确也切换不了
②sudo命令–提升执行权限
1.在配置文件/etc/sudoers中添加授权
或 visudo
授权配置格式:允许用户 允许主机=(root) 允许命令
例:使用相同的授权较多,或者授权的命令较多时,可以采用集中定义的别名,允许zhangsan,lisi用户通过benet.com和accp.com主机添加用户和修改用户密码,但不能修改root的用户密码
1 | visudo |
启用sudo日志记录,以备管理员查看
1 | visudo |
例:ops用户只有系统只读权限,禁止使用rm、sudo、passwd等命令
1 | ops ALL=(ALL) NOPASSWD:ALL,!/usr/sbin/passwd,!/usr/sbin/useadd,!/usr/sbin/adduser,!/usr/sbin/userdel,!/usr/sbin/groupadd,!/usr/sbin/groupdel,!/usr/sbin/visudo,!/usr/bin/chfn,!/usr/bin/rm,!/usr/bin/sudo,!/usr/bin/mv,!/usr/bin/cp,!/usr/bin/su |
#admin用户不执行sudo时不需要输入密码
1 | admin ALL=(root) NOPASSWD:/usr/bin/sudo,/usr/bin/su |
2.通过sudo执行特权命令
1 | sudo useradd abc |
2、系统引导和登录控制
2.1 开关机安全控制
①调整BLOS引导设置
将第一优先引导设备(Fist Boot Device)设为当前系统所在磁盘
禁止从其他设备(如光盘,U盘,网络等)引导系统,对应的项设为Disabled
将BLOS的安全级别改为setup,并设置好管理密码,以防止未授权的修改
②禁止ctrl+alt+del快捷键重启系统
1 | vim /etc/init/control-alt-delete.conf |
③限制更改GRUB引导参数
1.先生成md5的密钥
1 | grub-md5-crypt |
2.将生成的md5密钥添加到grub.conf文件的title前一行
1 | vim /boot/grub/grub.conf |
2.2 终端及登录控制
①减少开放的tty终端个数
/etc/init/tty.conf //控制tty终端的开启
/etc/init/start-ttys.conf //控制tty终端的开启数量,设备文件
/etc/sysconfig/init //控制tty终端的开户数量,终端颜色
②禁止用户登录tty5,tty6
vim /etc/securetty
#tty5 //注释掉这两行
#tty6
③禁止普通用户登录
touch /etc/nologin
此方法利用了shutdown关机的限制,login程序会检查/etc/nologin文件是否存在,如果存在则拒绝普通用户登录系统(root用户不受限制)只建议在服务器维护期间临时使用。
3、弱口令检测、端口扫描
3.1 弱口令检测–John the Ripper
①下载并安装John the Ripper(官方网站http://www.openwall.com.john/)
tar zxf john-1.8.0.tar.gz
cd john-1.8.0
ls -ld *
cd src/
make clean linux-x86-64
ls ../run/john //确认已生成可执行程序john即可
②检测弱口令账号
./john /etc/shadow
③查看已破解出的账户列表
./john –show /etc/shadow
④使用密码字典文件
:> john.pot //清空已破解出的账户列表,以便重新分析
../run/john –wordlist=../run/password.lst /etc/shadow //指定新的密码字典password.lst进行破解
3.2 网络扫描–NMAP
①安装NMAP软件包
mout /dev/cdrom /media
rpm -ivh /media/Packages/nmap-5.51.3.e16.x86_64.rpm
②扫描语法及类型
nmap 扫描类型 选项 扫描目标
-sS :TCP SYN扫描(半开扫描),只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放
-sT :TCP连接扫描,这是完整的TCP扫描方式,用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放
-sF :TCP FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包,许多防火墙只对SYN数据包进行简单过滤,而忽略了其他形式的TCP攻击包,这种类型的扫描可间接检测防火墙的健壮性
-sU :UDP扫描,探测目标主机提供哪些UDP服务,UDP扫描速度会比较慢
-sP :ICMP扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描
-PO :路过ping检测,这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法ping通而放弃扫描
③扫描操作示例
nmap 127.0.0.1 //扫描常用的TCP端口
nmap -sU 127.0.0.1 //扫描常用的UDP端口
nmap -p 192.168.1.0/24 //扫描网段中有哪些主机提供了FTP服务
nmap -n -sP 192.168.1.0/24 //快速检测网段中有哪些存活主机
nmap -p 139,445 192.168.1.100-200 //检测100-200范围内的主机是否开启文件共享服务