Linux服务器必须执行十项基础安全设置:禁用root远程SSH登录、修改默认SSH端口、启用UFW防火墙、创建sudo普通用户、配置SSH密钥认证、定期更新系统、禁用非必要服务、配置日志轮转与远程转发、设置登录失败锁定策略、限制用户Shell访问范围。

如果您正在管理一台Linux服务器,但尚未实施基础安全措施,则系统可能面临未授权访问、数据泄露或服务中断等风险。以下是十个必须执行的系统安全设置:
一、禁用root用户远程SSH登录
直接允许root用户通过SSH远程登录会显著增加暴力破解和提权攻击的风险。应禁止root远程登录,强制使用普通用户登录后再切换权限。
1、编辑SSH配置文件:sudo nano /etc/ssh/sshd_config
2、找到PermitRootLogin行,将其值修改为no
3、保存文件后重启SSH服务:sudo systemctl restart sshd
二、修改默认SSH端口
将SSH服务从默认的22端口更改为非标准端口,可减少自动化扫描工具的命中率,降低被批量爆破的概率。
1、编辑SSH配置文件:sudo nano /etc/ssh/sshd_config
2、取消Port 22行的注释,并将其修改为其他端口号(如2222)
3、确保防火墙放行新端口:sudo ufw allow 2222
4、重启SSH服务:sudo systemctl restart sshd
三、启用并配置UFW防火墙
UFW(Uncomplicated Firewall)是iptables的前端工具,用于简化网络流量过滤规则的配置,能有效限制非法入站连接。
1、安装UFW(如未安装):sudo apt install ufw
2、默认拒绝所有入站连接:sudo ufw default deny incoming
3、允许SSH端口(以2222为例):sudo ufw allow 2222
4、启用防火墙:sudo ufw enable
四、创建具有sudo权限的普通管理用户
避免长期使用root账户操作,应为日常管理创建专用用户,并通过sudo机制授予最小必要权限,实现权限分离与操作审计。
1、添加新用户:sudo adduser adminuser
2、将用户加入sudo组:sudo usermod -aG sudo adminuser
3、切换至该用户验证权限:su - adminuser,然后执行sudo whoami
五、配置SSH密钥认证并禁用密码登录
基于公私钥的身份验证比密码认证更安全,可彻底规避暴力破解与弱口令风险。启用后应同步关闭密码认证。
1、在本地生成密钥对:ssh-keygen -t ed25519 -C "admin@server"
2、将公钥复制到服务器:ssh-copy-id -i ~/.ssh/id_ed25519.pub adminuser@server_ip -p 2222
3、编辑SSH配置文件,设置PasswordAuthentication no
4、重启SSH服务:sudo systemctl restart sshd
六、定期更新系统软件包
未修补的已知漏洞是攻击者最常利用的入口点之一。保持系统内核、库及应用处于最新状态,可及时消除公开披露的安全缺陷。
1、更新软件包索引:sudo apt update
2、升级所有已安装包:sudo apt upgrade -y
3、自动清理无用依赖:sudo apt autoremove -y
七、禁用不必要的系统服务
每个运行中的服务都构成一个潜在攻击面。关闭非必需服务(如telnet、ftp、rpcbind等),可缩小系统暴露范围,降低被横向渗透的可能性。
1、列出当前运行的服务:sudo systemctl list-units --type=service --state=running
2、停止并禁用指定服务(例如rpcbind):sudo systemctl stop rpcbind && sudo systemctl disable rpcbind
3、验证服务是否已禁用:sudo systemctl is-enabled rpcbind(应返回disabled)
八、配置系统日志轮转与远程日志转发
本地日志易被攻击者篡改或清除。启用日志轮转可防止磁盘占满,而将关键日志发送至独立日志服务器,有助于事后追踪与取证分析。
1、编辑logrotate配置:sudo nano /etc/logrotate.d/rsyslog,确认包含rotate 7与compress
2、安装rsyslog客户端并启用UDP/TCP转发:sudo nano /etc/rsyslog.conf,取消*.* @@remote-logger:514行注释
3、重启日志服务:sudo systemctl restart rsyslog
九、设置失败登录尝试锁定策略
通过PAM模块限制连续失败的SSH登录次数,可有效防御暴力破解攻击,同时记录异常行为供后续分析。
1、安装faillock工具(如未安装):sudo apt install libpam-pwquality
2、编辑PAM SSH配置:sudo nano /etc/pam.d/sshd
3、在文件开头添加:auth [default=die] pam_faillock.so authfail audit silent deny=5 unlock_time=900
4、添加成功登录解锁记录行:auth [default=ok] pam_faillock.so authsucc audit
十、限制用户Shell访问范围
为仅需执行特定任务的用户(如备份脚本调用者、监控探针)分配受限Shell(如rbash或自定义shell),可防止其执行任意命令或遍历系统目录。
1、检查可用受限Shell:cat /etc/shells(确认包含/bin/rbash)
2、为用户指定受限Shell:sudo usermod -s /bin/rbash backupuser
3、创建用户专属bin目录并仅放入必要命令软链接:mkdir /home/backupuser/bin && ln -s /usr/bin/rsync /home/backupuser/bin/rsync
4、设置PATH环境变量限制:echo 'export PATH="/home/backupuser/bin"' >> /home/backupuser/.bashrc


















