在 Linux 系统中,防止攻击通常涉及网络安全、权限控制、日志监控、防火墙设置以及系统加固等方面。以下是一些常见的 Linux 防止攻击的方法和命令,适用于大多数 Linux 发行版(如 Ubuntu、CentOS、Debian 等):
一、防火墙配置(iptables 或 ufw)
1. 使用 ufw(Ubuntu/Debian 系列)
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow https
sudo ufw allow http
sudo ufw deny 22/tcp
sudo ufw deny 80/tcp
sudo ufw deny 443/tcp
2. 使用 iptables(更底层)
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
sudo iptables -A INPUT -p tcp --dport 80 -j DROP
sudo iptables -A INPUT -p tcp --dport 443 -j DROP
sudo iptables -A INPUT -p tcp --dport 8080 -j DROP
二、限制用户权限(sudo 和 sudoers)
1. 设置 sudo 权限
sudo visudo
在 sudoers 文件中添加:
username ALL=(ALL) ALL
2. 限制用户只能执行特定命令
sudo visudo
username ALL=(ALL) NOPASSWD: /usr/bin/apt-get
三、日志监控(journalctl 或 rsyslog)
1. 查看系统日志
sudo journalctl -b
2. 检查系统日志中是否有异常
sudo grep -i 'error' /var/log/syslog
四、系统加固(sysctl 和 SELinux)
1. 限制系统资源使用
sudo sysctl -w fs.file-max=100000
sudo sysctl -w kernel.shmall=262144
sudo sysctl -w kernel.shmmax=67108864
2. 使用 SELinux(如果启用)
sudo setenforce 0 # 关闭 SELinux
五、防止远程代码执行(RCE)攻击
1. 避免使用 shell 脚本
# 避免使用 shell 脚本执行命令
# 例如:不要使用 `sh -c 'echo hello'`
2. 使用 bash 的安全模式
bash -c 'echo "Hello" > /tmp/test.txt'
六、定期更新系统
sudo apt update && sudo apt upgrade -y # Ubuntu/Debian
sudo yum update -y # CentOS/RHEL
sudo dnf upgrade -y # Fedora
七、使用 fail2ban 防止暴力破解
安装 fail2ban
sudo apt install fail2ban -y # Ubuntu/Debian
sudo yum install fail2ban -y # CentOS/RHEL
配置 fail2ban(以 ssh 为例)
sudo nano /etc/fail2ban/jail.d/ssh.conf
在 fail2ban 配置文件中添加:
[ssh]
enabled = true
port = 22
filter = sshd
logpath = /var/log/secure
maxretry = 3
八、限制 SSH 登录(sshd_config)
sudo nano /etc/ssh/sshd_config
修改以下配置:
PasswordAuthentication no
PermitRootLogin no
StrictModes yes
九、使用 sudo 的安全设置
sudo visudo
添加:
username ALL=(ALL) NOPASSWD: /usr/bin/apt-get
十、使用 auditd 监控系统调用
sudo auditctl -w /bin/ls -p rwx
总结
| 方法 | 用途 | 适用场景 |
|---|---|---|
ufw |
网络防火墙 | 服务器安全 |
iptables |
网络防火墙 | 低级别网络控制 |
sudo |
权限控制 | 系统管理 |
fail2ban |
防止暴力破解 | SSH 等服务 |
sysctl |
系统资源限制 | 系统安全 |
SELinux |
安全策略 | 深度安全 |
auditd |
系统调用监控 | 安全审计 |
如需更具体的配置(如 Nginx、Apache、MySQL 等服务的安全加固),请告诉我你的具体场景,我可以提供更详细的配置建议。

