账号安全控制
系统引导和登录控制
弱口令检测
端口扫描
账号的安全管理
系统账号清理
将非登录用户的shell设置为/sbin/nologin
锁定长期不是用的账号
passwd -l 用户名 usermod -L 用户名 #查看锁定账号状态 passwd -S 用户名
删除无用账号
userdel -r 用户名
禁止账号和密码的修改
chattr +i /etc/passwd /etc/shadow #查看锁定文件状态 lsattr 文件名
密码安全管理
设置密码有效期
chage -M 天数 用户名 #针对已存在的用户,天数为 99999 表示为永不过期
vim /etc/login.defs --> PASS_MAX_DAYS 天数 #针对新建的用户
强制用户下一次登录修改密码 chage -d 0 用户名
历史命令安全管理
查看历史命令 history
限制历史命令数量 vim /etc/profile --> export HISTSIZE=XX --> source /etc/profile
在最后输入设置历史指令数为5
清空历史命令 history -c #临时清空
开机自动设置 vim /etc/profile --> > ~/.bash_history
自动注销 vim /etc/profile --> export TMOUT=XX --> source /etc/profile
限制su切换用户
1)将信任的用户加入到wheel组中 gpasswd wheel -a 用户名
2)修改su的PAM认证配置文件 vim /etc/pam.d/su -> 开启 auth required pam_wheel.so use_uid 的配置
ssh远程登录输入三次密码错误则锁定用户
sudo提权
visudo vim /etc/sudoers (要用 wq! 强制保存)
#用户/组授权
用户名 主机名=程序列表 #命令要用绝对路径表示,支持使用通配符 * 表示所有, ! 表示取反
%组名 主机名=程序列表
用户名 主机名=NOPASSWD: 程序列表 #NOPASSWD: 表示sudo不用密码验证
#别名设置
User_Alias 大写别名=用户1, 用户2, ...
Host_Alias 大写别名=主机名1, 主机名2, ...
Cmnd_Alias 大写别名=命令路径1, 命令路径2, ...
用户别名 主机别名=命令别名
#设置sudo日志路径
Defaults logfile = "/var/log/sudo.log"
sudo -l #普通用户查看有哪些sudo权限
如何查看进程是否已经开启?
systemctl status 进程名
ps aux/-elf | grep 进程名
netstat/ss -lntup | grep 进程名/:端口
lsof -i :端口
如何通过端口查看进程号?
netstat -lntup | grep :端口
ss -lntup | grep :端口
lsof -i :端口
对新服务器做过哪些初始化操作?
安装操作系统
设置网络,比如 网卡IP、网关、路由、DNS服务器地址、双网卡绑定bond(在物理机环境中使用)
设置主机名 hostnamectl set-hostname
设置ntp时间同步 ntpd chronyd ntpdate
设置防火墙规则 iptables firewalld
关闭selinux setenforce 0 /etc/selinux/config
精简开机启动服务 systemctl enable crond rsyslog network sshd
设置yum仓库镜像源 /etc/yum.repos.d/
磁盘使用lvm或raid
升级linux内核
对服务器初始化后做过哪些安全加固?
禁止 root 用户远程登陆 /etc/ssh/sshd_config --> PermitRootLogin no
修改 ssh 端口号 /etc/ssh/sshd_config --> Port
普通用户限制 su 切换用户 /etc/pam.d/su
普通用户通过 sudo 授权管理 visudo /etc/sudoers
锁定关键系统文件 chattr +i
设置历史命令保存条数 /etc/profile HISTSIZE
设置账户超时时间 /etc/profile TMOUT
限制用户的登录次数 /etc/pam.d/sshd
设置用户密码强度 /etc/pam.d/system-auth
接入堡垒机或跳板机