账户安全基本措施
系统账号清理
禁用程序用户登录
usermod -s /sbin/nologin 用户名
锁定长期不使用的账号
passwd -l 用户名 usermod -L 用户名
删除账号
userdel [-r] 用户名
锁定文件并查看状态
chattr +i 文件位置
解锁文件
chattr -i 文件位置
密码安全控制
修改密码有效期
仅针对已存在的用户
chage -M 天数 用户名
新建账号默认密码有效期为99999永不过期 针对新建的用户设置密码有效期
vim /etc/login.defs --> PASS_MAX_DAYS 天数
强制用户下一次登录修改密码
chage -d 0 用户名
历史命令限制
查看历史命令 history
修改历史命令限制条数
先修改环境变量 /etc/profile
可以直接修改文件中HISTSIZE=xx
也可以末尾添加命令export HISTSIZE=xx来修改环境变量保存退出
可以通过重新来加载环境变量 让修改立即生效
也可以通过source /etc/profile 或者 ./etc/profile 来刷新加载环境变量
清空历史命令
history -c #临时清空
登录即可清空历史命令
修改环境变量
vim /etc/profile --> > ~/.bash_history
su命令 切换用户
启用pan_wheel认证模块,使得普通用户加入wheel组中才能进行su切换
vim su 打开su文件 启动pam_wheel模块 用户加入到wheel组中才能进行su命令切换
启动只需要把#号键给删除
然后保存并退出即可
这样子没有加入到wheel组中的普通用户就不可以切换了
接下来把用户加入到wheel组中
Linux中的PAM安全认证
PAM 安全认证流程
ssh远程登录输入三次密码错误则锁定用户
ssh远程登录 IP地址 即可远程连接服务端
如何操作输入三次密码错误则锁定用户
vim /etc/pam.d/sshd
auth required pam_tally2.so deny=3 unlock_time=60 even_deny_root root_unlock_time=60
deny是限制次数 time时间是锁定密码错误锁定时间
sudo提升权限
普通用户权限不够?通过sudo提权
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权限
账户长时间不操作自动注销
在/etc/profile环境变量中修改配置
添加命令 export TMOUT=xx 保存退出
退出来重新加载一下
终端登录安全控制
限制root用户只能在哪些终端登录 在前面加上#即可
安全终端配置 /etc/securetty
禁止普通用户登录
touch 一个/etc/nologin文件后普通用户就禁止登录了
系统弱口令检测
hydra破解
https://blog.csdn.net/2301_80115097/article/details/133751122
黑客工具之hydra详细使用教程
网络端口扫描
NMAP 一款强大的网络扫描(攻击者)、安全检测工具(防御者)
先使用yum进行安装
nmap命令常用的选项和扫描类型
-p:指定扫描的端口。
-n:禁用反向 DNS 解析(以加快扫描速度)。
-sS:TCP的SYN扫描(半开扫描),只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。
-sT:TCP连接扫描,这是完整的TCP扫描方式(默认扫描类型),用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放。
-sF:TCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对SYN数据包进行简单过滤,而忽略了其他形式的 TCP 攻击包。这种类型的扫描可间接检测防火墙的健壮性。
-sU:UDP 扫描,探测目标主机提供哪些 UDP 服务,UDP 扫描的速度会比较慢。
-sP:ICMP 扫描,类似于 ping 检测,快速判断目标主机是否存活,不做其他扫描。
-P0:跳过ping检测,这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法 ping 通而放弃扫描。
查看进程是否开启状态
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
接入堡垒机或跳板机