iptables的简介及常用设置

Iptables的表,链,及规则:

Iptables3条规则表

  1. filter:设置包过滤
  2. nat:设置地址转换
  3. mangle:网络流量整形应用

Iptables5条规则

  1. PREROUTING:nat,修改目的的地址
  2. FORWARD:filter,匹配穿越本机的数据包
  3. POSTROUTING:nat,修改源地址
  4. INPUT:filter,匹配目的ip是否是本机的数据包,外部数据包要进入我们主机的第一的关卡
  5. OUTPUT:filter,是你的主机的数据送出时要做的过滤

Iptables过滤封包的流程

 

2012081915432543

 

2012081915433774

iptables的默认设置是3个表是ACCEPT的,用iptables -L(不指定表名是,查看filter表,查看指定规则表,如iptables -t nat -L)来查看

iptables的策略有2种设置:

  1. 默认允许,拒绝特别的
  2. 默认拒绝,允许特别的

从安全角度的角度看,第2种比较好一些,可以通过改变设置

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

.基本语法: iptables[-tfilter][-AIINPUT,OUTPUT,FORWARD][-iointerface] [-ptcp,udp.icmp,all][-sip/nerwork][–sportports][-dip/netword][–dportports][-jACCEPTDROP]

  • 新增规则,会成为规则链中最后一条规则:

iptables -A .. .. (Append)

  • 取代现行规则,但顺序不会变

iptables -R… ..(Replace)

  • 插入一条规则,通常是插在最前面,原本该位置上的规则将会往后移动一个顺位

iptables -I .. ..(insert)

  • 删除某规则链中的所有规则

iptables -F .. ..(Flush)

  • 清除表filter中使用者自定链中的规则

chain iptables -X

  • 清除表nat,mangle中的规则链

iptables -F -t nat/mangle

实例:

1.首先,把3个表清空,包括自建的规则的清空

//清空filter表

iptables -F

iptables -X

//清空mangle表

iptables -F -t mangle

iptables -t mangle -X

//清空nat表

iptables -F -t nat

iptables -t nat -X

2.设定iptables的策略,如下:

iptables -P INPUT DROP

iptables -P OUTPUT DROP

iptables? -P FORWARD ACCEPT

3.具体的操作的步骤:

一,先打开”回环地址“即loopback,以免出现不必要的问题

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

//可以用ping 127.0.0.1,来测试这个操作是否生效

二,打开ping功能

iptables -A INPUT -p icmp -j ACCEPT

iptables -A OUTPUT -p icmp -j ACCEPT

三,打开22号端口

iptables -A INPUT -p tcp –dport=22 -j ACCEPT

iptables -A OUTPUT -p tcp –sport=22 -j ACCEPT

四,如果要在本机上访问互联网,浏览网页,就要允许本机能够访问远程的dns服务器的53,和web服务器的80端口:

//允许本机向远程的dns服务器发出请求

iptables -A OUTPUT -p udp –dport 53 -j ACCEPT

//允许本机接收远程dns服务器的响应

iptables -A INPUT -p udp –sport 53 -j ACCEPT

//允许本机本机对远程的web服务器发出访问请求

iptables -A OUTPUT -p tcp –dport 80 -j ACCEPT

//允许本机接收远程的web服务器的对请求的响应

iptables -A INPUT -p tcp –sport 80 -j ACCEPT

五.如果本机是web服务器的话,就要开启默认的80端口

iptables -A INPUT -p tcp –dport 80 -j ACCEPT

iptables -A OUTPUT -p tcp –sport 80 -j ACCEPT

六.其他的:

保存iptable的配置 service iptables save

查看是否打开了80端口 netstat -anp|grep 80

可以对多个端口进行设置,加参数 -m multiport 端口号之间用,区分开

查看iptables的设置

iptables -L(不指定表名时,查看的是filter,查看nat,则是iptables -t nat -L)

以序号标记显示

iptables -L -n –line-number

若要删除INPUT表里序号为8的规则

iptables -D INPUT 8

生产环境下采用的iptables的配置:


iptables -F

iptables -X

iptables -Z

iptables -F -t nat

iptables -X -t nat

iptables -Z -t nat

 

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

 

iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 55555 -j ACCEPT

 

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT ACCEPT

 

iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT

 

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

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

 

iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP

iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP

iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP

iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP

iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP

 

service iptables save

systemctl enable iptables

iptables的简介及常用设置
Scroll to top