linux

如何用iptables设置Linux防火墙

小樊
43
2025-12-12 12:19:56
栏目: 智能运维

使用iptables设置Linux防火墙可以帮助你控制网络流量,保护系统免受未经授权的访问。以下是一些基本的iptables命令和示例,用于设置常见的防火墙规则:

1. 清空现有规则

首先,你可以清空现有的iptables规则,以确保从一个干净的状态开始:

sudo iptables -F
sudo iptables -X

2. 设置默认策略

你可以设置默认策略,例如拒绝所有传入流量,允许所有传出流量:

sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT 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连接(默认端口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

6. 允许HTTP和HTTPS连接

如果你需要允许HTTP(80)和HTTPS(443)连接:

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

7. 允许特定IP地址访问

如果你想允许特定IP地址访问你的服务器,可以使用以下命令:

sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT

8. 保存规则

iptables规则在系统重启后会丢失,因此你需要保存规则。不同的Linux发行版可能有不同的方法来保存iptables规则。以下是一些常见的方法:

在Debian/Ubuntu上:

sudo iptables-save > /etc/iptables/rules.v4

在CentOS/RHEL上:

sudo service iptables save

或者

sudo iptables-save > /etc/sysconfig/iptables

9. 恢复规则

如果你已经保存了规则,可以使用以下命令恢复它们:

在Debian/Ubuntu上:

sudo iptables-restore < /etc/iptables/rules.v4

在CentOS/RHEL上:

sudo service iptables restart

或者

sudo iptables-restore < /etc/sysconfig/iptables

10. 查看当前规则

你可以使用以下命令查看当前的iptables规则:

sudo iptables -L -v -n

通过这些基本步骤,你可以设置一个基本的iptables防火墙来保护你的Linux系统。根据你的具体需求,你可能需要添加更多的规则和配置。

0
看了该问题的人还看了