一, 系统安全
1. 用户管理
(1)删除长时间不使用的用户
userdel [-r] 用户名
选项
-r: 删除指定用户家目录
(2)设置程序用户 Shell 为不允许登陆系统
usermod -s /sbin/nologin 用户
(3)临时使用用户(设置用户的最长使用期限)
chage -E "时间" 用户 // 设置账号失效时间
chage -l 用户 // 查看账号的密码控制信息(如最短, 最长密码使用时间等)
(4)锁定文件, 该文件不能被删除(粘滞位)
针对文件的粘滞位, root 用户也受到限制
- chattr +i /etc/passwd && chattr +i /etc/shadow // 指定文件将不能删除
- chattr -i /etc/passwd && chattr -i /etc/shadow // 移除指定文件的粘滞位
lsattr <文件> // 查看指定用户是否设置粘滞位
文件或目录的粘滞位, 所有者和 root 用户不受限制
chmod o+t <目录 / 文件> // 给指定目录 / 文件设置粘滞位
chmod o-t <目录 / 文件> // 给指定目录 / 文件取消粘滞位
ls -ld <目录> // 查看目录的粘滞位设置情况(t 权限位)
(5)设置密码有效期
已存在用户
passwd -S 用户 // 查看用户密码状态
passwd -x 天数 用户 // 设置密码的有效期
新建的用户
vim /etc/login.defs // 更改默认新建用户参数的文件
PASS_MAX_DAYS 天数
2.Linux 特权权限
作用
SUID: 对二进制文件生效, 使普通用户以所有者的权限执行文件
SGID: 对目录生效, 保持原目录的所有组
Stickybit: 防止用户删除文件 / 目录, 针对其他用户设置, root 用户无效
格式
SUID:[chmod u+s | u-s] 文件
SGID:[chmod g+s | g-s] 目录
Stickybit(粘滞位):chmod [o+t | o-t] 文件 / 目录
八进制: SUID=4,SGID=2,Stickybit=1
例:
- chmod u+s /tmp/2333.txt
- // 设置文件拥有 SUID(用户在执行文件时有所有者的权限)
- chmod g+s /tmp/2333.txt
- // 设置文件拥有 SGID(用户在执行文件时有所有组的权限)
chmod 4755 文件 / 目录
// 设置文件或目录拥有 SUID 及所有者拥有完全权限, 所有组拥有读取, 执行权限, 其它用户拥有读取, 执行权限
二, su,sudo
1.su: 切换指定用户
语法
su [-] 用户
- vim /etc/pam.d/su // 修改 pam 配置文件
- auth required pam_wheel.so use_uid //PAM 模块认证, 只有属于 wheel 组用户可切换到 root
查看安全认证日志文件
tail -f /var/log/secure
注: 需配合远程控制, 设置 root 用户禁止远程登陆
2.sudo: 临时提权, 普通用户临时以 root 身份执行命令
vim /etc/sudoers 或 visudo // 编辑 sudo 配置文件, 默认不能直接使用
[用户名] [主机] [命令]
注: 命令可取反, 如!/bin/(表示除 / bin / 目录外)
例:
- u01 ALL=(ALL) ALL // 允许 u01 用户使用 sudo 以 root 身份执行所有命令
- u01 ALL=(ALL) ALL,!/sbin/reboot // 允许 u01 用户使用 sudo 以 root 身份执行所有命令, 除了 / sbin/reboot
(1)文件中设置别名
Cmnd_Alias 别名(大写)= 命令 // 定义命令别名
User_Alias 别名(大写)= 用户名 // 定义用户别名
Host_Alias 别名(大写)= 网段, IP 地址 // 定义主机别名
例:
- Cmnd_Alias CMD=ALL,!/sbin/reboot // 定义命令别名, CMD=ALl,!/sbin/reboot
- User_Alias USER=u01,u02 // 定义用户别名, USER=u01,u02
- Host_Alias HOST=192.168.10.44 // 定义主机别名, HOST=192.168.10.44
- USER HOST=CMD // 允许 USER 别名 (u01,u02 用户) 在 HOST 别名 (192.168.10.44) 执行 CMD 别名(ALL,!/sbin/reboot)
(2)日志记录
- vim /etc/sudoers // 修改 sudo 配置文件
- Defaults logfile=/var/log/sudo // 定义日志记录并指定存储位置
- tail -f /var/log/sudo // 动态查看 sudo 日志文件
- sudo -l // 查看当前用户所有 sudo 能执行的命令
注: 默认用户使用 sudo 后, 保留 5 分钟时间, 5 分钟内用户不需再次输入当前用户密码
三, 系统管理
1. 自动清空历史命令
- vim ~/.bashrc // 用户登陆时自动清空历史命令
- echo "">~/.bash_history
- history -c // 清楚当前用户登陆终端历史命令(再次登陆依然存在)
- vim /etc/profile
- HISTSIZE=0 // 更改历史命令记录数量
2. 终端超过闲置时间后自动注销
vim /etc/profile // 全局变量定义文件(所有用户生效)
TMOUT = 秒数 // 指定终端超时时间
vim ~/.bash_profile // 只对当前用户生效
TMOUT = 秒数 // 指定终端超时时间
四, 开关机安全控制
1. 禁用 Ctrl-Alt-Delete 热键
vim /etc/init/control-alt-delete.conf
注释掉最后一行(加 #)
2.GRUB 菜单限制
明文密码
vim /boot/grub/grub.conf
password 密码 //title 之前
密文密码
- grub-md5-crypt // 将输入的字符串使用 md5 方式转换
- vim /boot/grub/grub.conf
password --md5 加密字符串 //title 之前
3. 减少 tty 终端数量
- vim /etc/sysconfig/init
- ACTION_CONSOLES=/dev/tty[1-6] // 改动 tty[1-6]数值可实现控制
例:
- ACTION_CONSOLES=/dev/tty[1-3] // 开启 tty1,tty2,tty3
- ACTION_CONSOLES=/dev/tty[1,3,6] // 开启 tty1,tty3,tty6
- ACTION_CONSOLES=/dev/tty[1-1,3-3,6-6] // 开启 tty1,tty3,tty6
4. 禁止普通用户登录
- touch /etc/nologin // 新建文件 nologin, 所有用户无法登陆(除 root)
- rm -rf /etc/nologin // 解锁, 普通可登录
5. 扫描
语法
nmap -A -O -PO -vv 网段 / IP / 域名 // 扫描指定主机的 OS, 端口, MAC 等信息
推荐扫描类型
-PO: 主机禁止 ping 时, 可强制扫描
-sU: 扫描 UDP
-sT: 扫描 TCP
-p: 扫描指定端口
来源: http://www.bubuko.com/infodetail-2661040.html