首先添加规则有两个参数:-A和-I,其中-A是添加到规则的末尾;-I能够插入到指定位置,没有指定位置的话默认插入到规则的首部,因为匹配规则是从上往下,依次查找的,可能出现配置的规则冲突致使后续的规则不起效ubuntu

保存iptables规则vim

sudo iptables-save

保存ipv6 的iptables规则服务器

sudo ip6tables-save

查看iptables规则ssh

sudo iptables -L

查看iptables规则,以数字形式tcp

sudo iptables -L -n

查看iptables规则的序号,用于删除规则参考工具

sudo iptables -L -n --line-numbers

清除全部iptables预设表filter里的全部规则oop

sudo iptabels -F

清除预设表filter中使用者自定链中的规则post

sudo iptables -X

清除单条iptables规则.net

sudo iptables -D INPUT(链) 3(规则对应的序号)

修改单条iptables规则,使用 -R,修改INPUT链序号为3的规则为容许,第4条规则为拒绝,丢弃rest

sudo iptables -R INPUT 3 -j ACCEPT
sudo iptables -R INPUT 4 -j DROP

容许已经创建的链接发送和接收数据,以避免设置链为DROP时远程ssh断开

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

保证VPS能够运行的时候,能够为loopback网卡添加运行规则,插到第一行

sudo iptables -I INPUT 1 -i lo -j ACCEPT

容许某段IP访问本机的全部类型的全部端口

sudo iptables -I INPUT -s 192.168.2.0/24 -p all -j ACCEPT
sudo iptables -I INPUT -s 192.168.0.0/16 -p all -j ACCEPT

容许本机127.0.0.1访问自身全部端口

sudo iptables -I INPUT -s 127.0.0.1 -p all -j ACCEPT

容许某段IP访问本机的TCP 3306端口

sudo iptables -I INPUT -s 192.168.2.0/24 -p tcp --dport 3306 -j ACCEPT

容许某段IP访问本机的某段TCP端口

sudo iptables -I INPUT -s 192.168.2.0/24 -p tcp --dport 3306:65525 -j ACCEPT

向全部IP开放ssh的远程链接,这里是已经更改了的19515端口,默认为22端口

sudo iptables -A INPUT -p tcp --dport 19515 -j ACCEPT

默认INPUT OUTPUT FORWORD 链都是所有接受,须要改成拒绝 确保ssh远程链接端口已经添加进 IPUNT 容许规则中,不然执行如下命令将可能会断开远程

sudo iptables -A INPUT -p tcp --dport 19515 -j ACCEPT #这里ssh端口为19515
sudo iptables -P INPUT DROP

可选项,需保证SSH端口已经添加各链的容许规则,不然会断开SSH链接并没有法远程链接

sudo iptables -P OUTPUT DROP
sudo iptables -P FORWORD DROP

iptables规则配置后,没法访问外网,没法接收返回的数据,进行如下配置,并保证OUTPUT状态为ACCEPT,会使iptables容许由服务器自己请求的数据经过

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables 的持久化,因为重启ubuntu会致使iptables规则消失,须要持久化 1.安装iptables-persistent工具帮助咱们持久化

sudo apt-get update
sudo apt-get install iptables-persistent -y

执行命令持久化

sudo netfilter-persistent save
sudo netfilter-persistent reload

2.将iptables规则存入文件,随网卡状态进行加载,保存 将iptables保存的规则保存入当前用户的文件

sudo iptables-save > /home/user/iptables.rules

在/etc/network/interfaces 网卡配置文件里加入相应内容

vim /etc/network/interfaces
添加内容
pre-up iptables-restore < /home/user/iptables.rules
post-down iptables-save > /home/user/iptables.rules

用到的参数解释: pre-up: 网卡启用前的动做 up: 启用时候的动做 post-up: 启用后的动做 pre-down: 关闭前的动做 down: 关闭时动做 post-down: 关闭后动做

iptables的关闭,使用清除规则来实现

sudo iptables-save > /home/user/iptables.rules
sudo iptables -X  清除默认filter表里的自定义规则
sudo iptables -t nat -F   清除nat表里的规则
sudo iptables -t nat -X
sudo iptables -t mangle -F  清除nat表里的规则
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT   将INPUT链默认更改成所有接受
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P  FORWORD ACCEPT
 
转自:http://www.javashuo.com/article/p-qfmzfrlp-ny.html