VPS 上配置 iptables 防火墙

jopen 10年前

1.打开iptables文件:
sudo vi /etc/sysconfig/iptables

2.配置内容

# 允许本地回环 127.0.0.1  iptables -A INPUT -i lo -p all -j ACCEPT    # 允许已经建立的所有连接  iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT    # 允许所有向外发起的连接  iptables -A OUTPUT -j ACCEPT    # 拒绝 ping  iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j REJECT    # 允许 SSH 服务端口  iptables -A INPUT -p tcp --dport 22 -j ACCEPT    # 允许 Web 服务端口  iptables -A INPUT -p tcp --dport 80 -j ACCEPT    # 拒绝其他所有未被允许的连接  iptables -A INPUT -j REJECT  iptables -A FORWARD -j REJECT

这些规则必须要保存,否则下次重启服务器后,规则会丢失。CentOS 和 Debian 的 iptables 保存各有区别:

# CentOS

service iptables save # 保存  service iptables restart # 重启  chkconfig iptables on # 确认服务会随开机自动启动

# Debian

iptables-save > /etc/firewall.conf # 保存规则到一个文件  echo '#!/bin/sh' > /etc/network/if-up.d/iptables # 创建一个开机启动项文件  echo 'iptables-restore < /etc/firewall.conf' >> /etc/network/if-up.d/iptables # 同上,继续添加内容  chmod +x /etc/network/if-up.d/iptables # 修改启动项文件的执行属性

如果不满意以上配置的规则,可以使用以下命令来清空全部规则:

iptables -F  iptables -X  iptables -Z

到此,全部结束。