咨询热线:4006-75-4006
售前:9:00-23:30 备案:9:00-18:00 技术:7*24h
欢迎来到蓝队云技术小课堂,每天分享一个技术小知识。
在 Ubuntu 系统中配置 iptables 防火墙,实际上是通过一系列步骤来控制网络流量的进出,确保系统的安全性。下面我将详细讲解如何安装、配置以及确保防火墙生效的过程。
1. 检查是否安装 iptables
首先,检查系统中是否已经安装了 iptables:
whereis iptables
如果输出了相关信息,说明已经安装了。如果没有安装,可以通过以下命令进行安装:
sudo apt-get install iptables
2. 编辑 iptables 策略
iptables 的规则可以通过编辑 /etc/iptables.rules 文件来进行配置。在这个文件中,我们可以设置允许和拒绝的网络流量。例如,常见的规则设置如下:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# 允许常用端口
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT # 允许 HTTP
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT # 允许 HTTPS
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT # 允许 SSH
# 允许本地回环接口
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
# 允许 ICMP 请求(即 ping)
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT
# 允许已建立连接的流量
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 其他未明确允许的流量一律拒绝
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
在上述规则中,我们开放了 HTTP (80)、HTTPS (443) 和 SSH (22) 端口,同时确保本地回环接口 (lo) 不受限制。此外,我们允许 ICMP 请求(即 ping)并确保已建立的连接能够正常通信。
3. 加载并生效规则
编辑完成规则文件后,可以通过以下命令加载并使规则生效:
sudo iptables-restore < /etc/iptables.rules
使用 iptables -L -n 命令可以查看当前的防火墙规则,确认配置是否生效。
4. 确保防火墙开机自启
为了确保防火墙配置在系统重启后自动加载,我们需要做以下操作:
创建软链接,确保防火墙规则在系统启动时加载:
sudo ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/
编辑 /lib/systemd/system/rc-local.service 文件,在 [Install] 部分添加以下内容:
[Install]
WantedBy=multi-user.target
编辑并创建 /etc/rc.local 文件,添加防火墙启动命令:
sudo vi /etc/rc.local
在文件中加入:
iptables-restore < /etc/iptables.rules
给 /etc/rc.local 文件添加执行权限:
sudo chmod +x /etc/rc.local
最后,启用并启动服务:
sudo systemctl start rc-local.service
sudo systemctl enable rc-local.service
5. 常见命令和操作
查看现有规则:
sudo iptables -L -n
清空现有规则并设置默认策略:
sudo iptables -P INPUT ACCEPT
sudo iptables -F
sudo iptables -X
sudo iptables -Z
允许来自本地回环接口的数据包:
sudo iptables -A INPUT -i lo -j ACCEPT
开放常用端口:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许 SSH
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许 HTTP
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 允许 HTTPS
拒绝来自特定 IP 的请求:
sudo iptables -I INPUT -s 192.168.1.100 -j DROP
保存规则:
sudo service iptables save
蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。