修改iptables开放端口

IPTables基本命令
通过“-L”参数来查看下当前系统的所有IPTables规则:
sudo iptables -L
可以看到Linux中都有的3个常用默认链(INPUT、OUTPUT和FORWARD),同时也可以看到每个链的缺省策略(每个链对默认策略都是接受)。

查看每个链的默认规则,可以使用“-S”参数:
sudo iptables -S

如果IPTables里面已经有规则了,并希望取消这些规则后重新更配置话,可以使用“-F”参数来清空已有的规则集:
sudo iptables -F

虽然“-F”参数可以清空并刷新链中所有的现有规则集,但并不会对链的默认策略进行更改。因此,如果你是在更改远程VPS防火墙策略的话需要在“-F”清空所有规则时先将INPUT和OUTPUT链的默认策略恢复到ACCEPT,以免规则清空后SSH连接被阻断。要做到这一点可执行如下命令:
sudo iptables -P INPUT ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F
在配置好允许SSH连接后(下面介绍),再将INPUT和OUTPUT链的默认规则更改为DROP即可。

创建自已的IPTables规则
配置服务器允许SSH连接。
sudo iptables -A INPUT -m conntrack –ctstate ESTABLISHED,RELATED -j ACCEPT

sudo iptables -A INPUT -p tcp –dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp –dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp –dport 3306 -j ACCEPT

通信会利用到一个名叫loopback的伪网卡将流量引导回自己。因此,我们还需要为loopback网卡添加一条允许规则。
sudo iptables -I INPUT 1 -i lo -j ACCEPT

前面我们已经为INPUT链接定义了一些允许规则,但默认INPUT链是允许所有包,所以我们现在需要将INPUT链的默认规则更改为“Drop”即丢弃。通过如下命令完成更改:
sudo iptables -P INPUT DROP

IPTables的配置是立即生效的。但这个生效过程其实是临时的,系统在重启之后便会丢失。因此,我们还需要将这些配置添加到配置文件当中,以保证系统在下次重启后会自动载入我们的IPTables防火墙规则。
sudo apt-get update
sudo apt-get install iptables-persistent
该命令脚本下载执行后会询问我们是否对IPTables配置进行保存,如果确定的话选择“是”即可。保存后下次重启系统也不会造成配置丢失了。

=================================
iptables -L #查看防火墙配置信息
vi /etc/iptables/rules.v4
添加以下内容(备注:80是指web服务器端口,3306是指MySQL数据库链接端口,22是指SSH远程管理端口.)
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:syn-flood – [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT
-A INPUT -p tcp -m state –state NEW -m tcp –dport 80 -j ACCEPT
-A INPUT -p tcp -m state –state NEW -m tcp –dport 443 -j ACCEPT
-A INPUT -p icmp -m limit –limit 100/sec –limit-burst 100 -j ACCEPT
-A INPUT -p icmp -m limit –limit 1/s –limit-burst 10 -j ACCEPT
-A INPUT -p tcp -m tcp –tcp-flags FIN,SYN,RST,ACK SYN -j syn-flood
-A INPUT -j REJECT –reject-with icmp-host-prohibited
-A syn-flood -p tcp -m limit –limit 3/sec –limit-burst 6 -j RETURN
-A syn-flood -j REJECT –reject-with icmp-port-unreachable
COMMIT

# iptables-restore < /etc/iptables/rules.v4 #使防火墙规则生效 # vi /etc/network/if-pre-up.d/iptables #创建文件,添加以下内容,使防火墙开机启动 #!/bin/bash iptables-restore < /etc/iptables/rules.v4 # chmod +x /etc/network/if-pre-up.d/iptables #添加执行权限 # iptables -L -n查看规则是否生效.

Leave a comment

Your email address will not be published. Required fields are marked *