插件窝 干货文章 如何通过命令行保护你的Linux服务器

如何通过命令行保护你的Linux服务器

sudo 安全 bash 配置 294    来源:    2025-04-11

通过命令行保护Linux服务器的关键措施

1. 系统更新与补丁管理

# 更新软件包列表
sudo apt update        # Debian/Ubuntu
sudo yum check-update  # CentOS/RHEL

# 升级所有已安装的软件包
sudo apt upgrade       # Debian/Ubuntu
sudo yum update        # CentOS/RHEL

# 自动安全更新 (Debian/Ubuntu)
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

2. 用户账户安全

# 创建新用户
sudo adduser newusername

# 设置/修改密码 (强制复杂性)
sudo passwd username

# 锁定不使用的账户
sudo usermod -L username

# 查看空密码账户
sudo awk -F: '($2 == "") {print}' /etc/shadow

# 设置密码过期策略
sudo chage -M 90 -m 7 -W 7 username

3. SSH安全加固

# 编辑SSH配置文件
sudo nano /etc/ssh/sshd_config

# 推荐修改以下参数:
Port 2222                     # 更改默认端口
PermitRootLogin no            # 禁止root直接登录
PasswordAuthentication no     # 禁用密码认证,仅使用密钥
MaxAuthTries 3                # 最大尝试次数
ClientAliveInterval 300       # 超时设置
AllowUsers user1 user2        # 只允许特定用户登录

# 重启SSH服务
sudo systemctl restart sshd

# 生成SSH密钥对 (在客户端执行)
ssh-keygen -t ed25519
ssh-copy-id user@server -p 2222

4. 防火墙配置

# UFW (Ubuntu)
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp       # SSH自定义端口
sudo ufw allow 80/tcp         # HTTP
sudo ufw allow 443/tcp        # HTTPS
sudo ufw status numbered

# FirewallD (CentOS/RHEL)
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

5. 入侵检测与监控

# 安装fail2ban防止暴力破解
sudo apt install fail2ban    # Debian/Ubuntu
sudo yum install fail2ban    # CentOS/RHEL

# 配置fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

# 查看登录失败记录
sudo grep "Failed password" /var/log/auth.log
sudo lastb

# 安装并配置rkhunter进行rootkit检测
sudo apt install rkhunter    # Debian/Ubuntu
sudo yum install rkhunter    # CentOS/RHEL
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check

6. 文件系统安全

# 查找SUID/SGID文件
sudo find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;

# 查找世界可写文件
sudo find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print

# 检查无属主文件
sudo find / -xdev \( -nouser -o -nogroup \) -print

# 设置文件权限
sudo chmod 700 ~/.ssh
sudo chmod 600 ~/.ssh/authorized_keys

7. 网络服务安全

# 查看监听端口
sudo netstat -tulnp
sudo ss -tulnp

# 禁用不必要的服务
sudo systemctl stop servicename
sudo systemctl disable servicename

# 检查cron作业
sudo crontab -l
sudo ls /etc/cron.*

8. 日志监控

# 查看系统日志
sudo tail -f /var/log/syslog
sudo journalctl -xe

# 设置日志轮转
sudo nano /etc/logrotate.conf

9. 内核参数加固

# 编辑sysctl配置文件
sudo nano /etc/sysctl.conf

# 添加以下安全参数
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.icmp_ignore_bogus_error_responses=1
net.ipv4.tcp_syncookies=1
net.ipv6.conf.all.accept_redirects=0
net.ipv6.conf.default.accept_redirects=0

# 应用配置
sudo sysctl -p

10. 定期安全审计

# 使用Lynis进行安全审计
sudo apt install lynis       # Debian/Ubuntu
sudo yum install lynis       # CentOS/RHEL
sudo lynis audit system

# 检查用户登录历史
sudo last
sudo who

# 检查sudo使用记录
sudo grep sudo /var/log/auth.log

以上措施应根据您的具体服务器环境和需求进行调整。实施后,建议定期复查这些配置并保持系统更新。