阅读量:64
使用Linux防火墙(如iptables或firewalld)阻止恶意攻击是一种有效的安全措施。以下是一些基本步骤和策略,帮助你配置防火墙以增强系统安全性:
使用iptables
-
更新iptables规则:
- 首先,确保你的iptables是最新的。你可以使用包管理器来更新它,例如在Debian/Ubuntu上使用
sudo apt update && sudo apt upgrade iptables。
- 首先,确保你的iptables是最新的。你可以使用包管理器来更新它,例如在Debian/Ubuntu上使用
-
默认策略:
- 设置默认策略为DROP,这意味着所有未经明确允许的流量都将被丢弃。
sudo iptables -P INPUT DROP sudo iptables -P FORWARD DROP sudo iptables -P OUTPUT ACCEPT
- 设置默认策略为DROP,这意味着所有未经明确允许的流量都将被丢弃。
-
允许必要的流量:
- 允许SSH连接(假设使用默认端口22):
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT - 允许HTTP/HTTPS流量:
sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT
- 允许SSH连接(假设使用默认端口22):
-
限制连接数:
- 为了防止DDoS攻击,可以限制每个IP地址的连接数:
sudo iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 5 -j DROP
- 为了防止DDoS攻击,可以限制每个IP地址的连接数:
-
保存规则:
- 保存iptables规则以确保它们在重启后仍然有效。不同的发行版有不同的方法来保存规则,例如在Debian/Ubuntu上可以使用
iptables-persistent:sudo apt install iptables-persistent sudo netfilter-persistent save sudo netfilter-persistent reload
- 保存iptables规则以确保它们在重启后仍然有效。不同的发行版有不同的方法来保存规则,例如在Debian/Ubuntu上可以使用
使用firewalld
-
安装firewalld:
- 如果尚未安装,可以使用包管理器进行安装,例如在Debian/Ubuntu上:
sudo apt update && sudo apt install firewalld
- 如果尚未安装,可以使用包管理器进行安装,例如在Debian/Ubuntu上:
-
启动并启用firewalld:
- 启动firewalld服务并设置为开机自启:
sudo systemctl start firewalld sudo systemctl enable firewalld
- 启动firewalld服务并设置为开机自启:
-
配置默认区域:
- 设置默认区域为drop,并允许必要的流量:
sudo firewall-cmd --set-default-zone=drop sudo firewall-cmd --permanent --zone=trusted --add-interface=lo sudo firewall-cmd --permanent --zone=trusted --add-source=127.0.0.1 sudo firewall-cmd --reload
- 设置默认区域为drop,并允许必要的流量:
-
允许SSH连接:
sudo firewall-cmd --permanent --zone=trusted --add-service=ssh sudo firewall-cmd --reload -
允许HTTP/HTTPS流量:
sudo firewall-cmd --permanent --zone=trusted --add-service=http sudo firewall-cmd --permanent --zone=trusted --add-service=https sudo firewall-cmd --reload -
限制连接数:
- firewalld本身不直接支持连接数限制,但可以通过其他工具(如fail2ban)来实现。
其他安全措施
- 使用fail2ban:fail2ban可以监控日志文件并自动封禁恶意IP地址。
- 定期更新系统:确保操作系统和所有软件都是最新的,以修补已知的安全漏洞。
- 使用强密码和多因素认证:增强账户安全性。
- 监控和日志记录:定期检查系统日志和安全日志,以便及时发现异常活动。
通过这些步骤,你可以显著提高Linux系统的安全性,有效阻止恶意攻击。