温馨提示×

Ubuntu iptables如何保护服务器

小樊
37
2025-12-27 22:39:37
栏目: 云计算

在Ubuntu系统中,使用iptables可以有效地保护服务器免受外部攻击。以下是一些基本的iptables规则和策略,可以帮助你提高服务器的安全性:

1. 清除现有规则

首先,清除现有的iptables规则,以确保从干净的状态开始配置。

sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

2. 允许必要的流量

允许必要的流量,例如SSH(默认端口22)、HTTP(端口80)和HTTPS(端口443)。

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

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

3. 允许本地回环接口的流量

允许本地回环接口(lo)的流量。

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

4. 允许已建立的连接

允许已建立的连接和相关的数据包通过。

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

5. 限制SSH访问

为了防止暴力破解SSH登录,可以限制SSH访问来源。

sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 5/min -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

6. 允许DNS查询

允许DNS查询(端口53)。

sudo iptables -A INPUT -p udp --dport 53 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p udp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT

7. 允许ICMP请求

允许ICMP请求(ping),但限制速率以防止滥用。

sudo iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
sudo iptables -A INPUT -p icmp -j DROP

8. 保存规则

保存iptables规则,以便在系统重启后仍然有效。

sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload

9. 监控和日志记录

定期监控和记录iptables日志,以便及时发现异常活动。

sudo tail -f /var/log/syslog | grep iptables

通过以上步骤,你可以使用iptables为Ubuntu服务器提供基本的安全保护。请根据实际需求调整规则,并定期审查和更新安全策略。

0