Linux Iptables:如何阻止或打开 HTTP/Web 服务端口 80 和 443
默认情况下,Apache Web 服务器监听端口 80(http)和端口 443(https,即安全 http)。Apache Web 服务器使用 TCP 协议在服务器和浏览器之间传输信息/数据。默认 Iptables 配置不允许入站访问 Web 服务器使用的 HTTP(80)和 HTTPS(443)端口。本文介绍如何在 Linux 下允许入站和出站访问 Web 服务。
您可以在 RHEL / CentOS / Fedora Linux 下编辑 /etc/sysconfig/iptables 文件。添加以下几行,确保它们出现在 RH-Firewall-1-INPUT 链的最终 LOG 和 DROP 行之前,以打开端口 80 和 443:
-A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
最后,重新启动防火墙:
# service iptables restart
如果您有自己的 shell 脚本,请尝试:
/sbin/iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT /sbin/iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
允许端口 80 传入 http/web 流量
SERVER_IP="202.54.10.20" iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d $SERVER_IP --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp -s $SERVER_IP --sport 80 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
允许端口 443 传入 https/安全网络流量
SERVER_IP="202.54.10.20" iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d $SERVER_IP --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp -s $SERVER_IP --sport 443 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
允许传出 http/web 服务流量到端口 80
SERVER_IP="202.54.10.20" iptables -A OUTPUT -p tcp -s $SERVER_IP --sport 1024:65535 -d 0/0 --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp -s 0/0 --sport 80 -d $SERVER_IP --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
允许传出 https/安全 Web 服务流量到端口 443
SERVER_IP="202.54.10.20" iptables -A OUTPUT -p tcp -s $SERVER_IP --sport 1024:65535 -d 0/0 --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp -s 0/0 --sport 443 -d $SERVER_IP --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT