linux安全需主动配置:改ssh端口、禁root密码登录、设iptables默认拒绝、细粒度sudo权限、远程加密日志、aide校验、定期备份验证及72小时漏洞响应。

Linux 系统没有“开箱即用”的安全,所有防护效果都取决于你关掉了什么、改了哪几行配置、以及是否让规则真正生效。
SSH 默认端口和密码登录是最大风险入口
绝大多数自动化攻击(如 Mirai 变种、botnet 扫描)第一件事就是暴力尝试 root 账户在 22 端口的密码。这不是小概率事件,而是每小时都在发生的常态扫描。
- 必须修改
/etc/ssh/sshd_config中的Port(建议选22022或22222这类非知名高位端口),改完后别忘了systemctl restart sshd -
PermitRootLogin no必须设为no,不是without-password—— 后者仍允许密钥登录 root,等于留后门 -
PasswordAuthentication no要紧随密钥部署之后再启用;否则可能把自己锁在外面。验证方式:新开一个终端用ssh -p 22022 -o PubkeyAuthentication=yes user@host测试成功后再禁密码 - 别忽略
MaxAuthTries 2和LoginGraceTime 30,能显著拖慢爆破节奏
iptables 规则顺序错一位,整个防火墙就形同虚设
iptables 不是“加几条允许就行”,它是按链中规则顺序逐条匹配的,一旦命中就执行动作并停止检查。默认策略是 ACCEPT,意味着没被显式 DROP 的流量全放行。
- 务必先执行
iptables -P INPUT DROP设默认拒绝,再追加允许规则;反过来操作会导致中间空窗期被利用 - 允许 SSH 要写成
iptables -A INPUT -p tcp --dport 22022 -j ACCEPT,注意端口号必须和sshd_config一致,否则连不上 -
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT这类来源限制,只对内网有效;公网服务器慎用,容易误封真实用户 - 规则不持久:重启后消失。Ubuntu 用
iptables-persistent,CentOS 用service iptables save或迁移到nftables
sudo 权限不是“加进 sudo 组”就完事
把用户加进 sudo 组只是给了 ALL=(ALL:ALL) ALL 这个宽泛权限,相当于交出整把钥匙。真实运维中,多数命令根本不需要 root 权限,过度授权等于制造提权跳板。
- 用
visudo编辑时,优先写具体命令白名单,比如:%webadmin ALL=(ALL) /bin/systemctl restart nginx, /usr/bin/journalctl -u nginx - 避免使用
NOPASSWD,除非是自动化脚本且该账户已隔离(如专用 deploy 用户);人肉操作必须输密码,这是二次确认 - 检查当前用户实际能执行什么:
sudo -l,它会列出所有可运行命令 —— 很多管理员从没跑过这句,直到某天发现有人能直接sudo su - - 定期审计
/var/log/auth.log中的sudo行为,尤其关注非工作时间或异常 IP 的调用
日志和备份不是“配了就安心”,而是“不验证就等于没做”
入侵者第一件事往往是删日志、清历史、覆盖 /var/log/auth.log 和 ~/.bash_history。本地日志和单点备份,在被攻陷后毫无意义。
-
rsync备份到另一台机器时,目标账户不能有 shell(/sbin/nologin),且仅开放rsync协议,禁用交互式登录 - 系统日志发远程,别用明文
syslog:改用rsyslog+ TLS,配置action(type="omfwd" protocol="tcp" target="log-server" port="6514" template="RSYSLOG_ForwardFormat" streamDriver="gtls") - AIDE 文件完整性校验必须在系统初装后立即初始化:
aide --init,然后把生成的aide.db.new移到/var/lib/aide/aide.db并设为只读(chown root:root && chmod 400) - 备份恢复流程每年至少实操一次:挑一台测试机,删掉关键配置,用备份还原,看能否真正回滚到可用状态
最常被忽略的其实是时间窗口 —— 从漏洞披露到批量利用,现在平均只有 72 小时。自动更新不能只靠 unattended-upgrades,得确认它是否覆盖内核、是否重启服务、是否跳过有冲突的包。安全不是配置清单,是持续验证的动作。










