Iptables的使用语法

一、iptables功能组成

iptables由最基本的几个表格组成,每个表格的用途不一样。在每个表格中又定义了多个链(chain),通过这些链可以设置相应的规则和策略。

    Iptables3种常用的表选项,管理本机数据进出的filter、管理防火墙内部主机的nat、改变不同包及包头内容的mangle

 

二、iptables每个表与其中链的用途:

1filter

Filter表用于信息包过滤,内置了inputoutputforward链。

Inpit:对外部数据包进入linux系统进行信息过滤

Output:对内部linux系统所要发送的数据包进行信息过滤

Forward:将外面过来的数据包传递到内部计算机中

2nat

NAT表用于网络地址转换,包含preroutingpostroutingoutput

Prerouting:在数据包刚到达服务器时,根据需要改变它的目的地址,如DNAT—公网ip转换为内网ip,防火墙改变了目标地址,比便数据包能到达目的主机

Postrouting:在数据包要离开防火墙之前改变其源地址,如SNAT—屏蔽内网的信息

Output:改变了本地产生包的目的地址

3mangle

Mangle表包含一些用于高级路由的信息包的规则,如ttltosmarkmark并没有真正的改动数据包,它只是在为包打一个标记),内置了5个链preroutingpostroutinginputoutputforward

 

Iptables的使用语法

 

三、iptables的执行流程

    当数据包进入linux主机前,首先会经过iptables的过滤,如果数据包满足规则1的制定条件,则不再去匹配下面的规则23······如果数据包不满足规则1,则去匹配下面的规则23等;如果所有规则都不满足的话,就会通过iptables默认的预设规则policy来处理这个数据包的走向。

Iptables的使用语法

 

四、iptables使用语法

1Iptables的启动、重启、停止、状态

Service iptables start/restart/stop/status

/etc/init.d/iptables start/restart/stop/status

2iptables规则的查看与清除

Iptables [-t tables] [-L] [-vn] [-FXZ]

-t:后接tables,如果没有制定表,默认为filter

-L:查看当前表的规则,L(大写)

-v:显示更多的信息

-n:输出结果用ip显示

-F:清空制定表中的所有链

-X:删除用户自定义的tables chain

-Z:将数据包的计数器归零

注:-FXZ可以清除防火墙的所有规则,但不能清除iptables预设的默认规则policy

例:清空所有的防火墙设置

iptables –FXZ

Iptables –t nat –FXZ

Iptables –t mangle –FXZ

 

五、制定防火墙规则

1、设置默认规则policy

Iptables [-t tables ] –P [INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING] [ACCEPT,DRDP]

-P:定义默认策略,P(大写)

例:将INPUT链的默认规则设为DROP

Iptables -P INPUT DROP

2、针对ip/网络、网络接口的过滤规则

Iptables [-t tables ] [-AI ] [-io 网络接口] [-p 协议] [-s ip] [-d 目标ip] –j [ACCEPT|DROP|REJECT|REDIRECT]

-A:增加一个链,放到已有规则的最后面

-I:插入一个链,如果没有设定插入的顺序,则为第一条规则

-i:指定数据包进入的网卡,一般与input配合使用

-o:指定数据包传出的网卡,一般与output配合使用

-p:指定协议,tcpudpicmpall

-s:指定源ip/网络,在指定网络时需加子网掩码,例192.168.1.0/24 192.168.1.0/255.255.255.0,!代表否定

-d:指定目标ip/网络

-j:指定要执行的动作

ACCEPT:接收该数据包

DROP:丢弃该数据包

REJECT:拦截该数据包,并发送封包通知对方;--reject-with  icmp-port-unreachable(针对udp)、tcp-resettcp)、icmp-echo-replyicmp),然后中断连接

REDIRECT:用于nat表中,将数据包的请求重定向到另一个端口,即端口重定向,--to-ports

例:某linux为用ADSL上网的代理服务器,同时运行wwweth0接内网,ppp0Internet

允许内网主机访问代理服务器,但192.168.1.3除外

Iptables –A INPUT –i eth0 –s 192.168.1.3 –j DROP

Iptables –A INPUT –i eth0 –s 192.168.1.0/24 –j ACCEPT

将代理服务器的80端口重定向到8009

Iptables –t nat –A PREROUTING –p tcp –dport 80 –j REDIRECT –-to-ports 8009

3、针对tcpudp的过滤规则

Iptables [-t tables ] [-AI ] [-io 网络接口] [-p 协议] [-s ip] [--sport 端口范围] [-d 目标ip] [--dport 端口范围] –j [ACCEPT|DROP|REJECT|REDIRECT]

--sport:限制源端口,端口号可以是连续的,如1024:65535,指102465535的连续

--dport:限制目标端口

例:允许内网主机8053

Iptables –A INPUT –i ppp0 –p tcp –sport 80 –j ACCEPT

Iptables –A INPUT –i ppp0 –p udp –sport 53 –j ACCEPT

Iptables –A INPUT –i ppp0 –p tcp –sport 53 –j ACCEPT

开放ssh22端口

Iptables –A INPUT –i ppp0 –p tcp –dport 22 –j ACCEPT

4、针对数据状态模块的过滤规则

Iptables –A INPUT –m state/mac NEW/ESTABLISHED/RELATED/INVALLD

-m:模块选项,state状态模块,mac网卡mac地址

--stateNEW表示为第一个包;ESTABLISHED表示已建立的连接,一个连接从NEWESTABLISHED只需接到应答包即可;RELATEDESTABLISHED连接后在产生一个主连接之外的连接,就是RELATED连接;INVALLD表示数据包不能被识别连接状态

例:已建立或相关的数据包允许通过,不能识别或没有任何状态的数据包都丢弃

Iptables –A INPUT –m state –-state RELATED,ESTABLISHED –j ACCEPT

Iptables –A INPUT –m state –-state INVALLD –j DROP

绑定ipmac地址

Iptables –A FORWARD –s 192.168.1.1 –m mac –-mac-source aa:bb:cc:dd:ee:ff –j ACCEPT

 

转载于:https://blog.51cto.com/xiaomaimai/310391

相关文章:

  • 2021-09-07
  • 2021-08-16
  • 2021-06-14
  • 2022-12-23
  • 2021-09-24
  • 2021-10-23
猜你喜欢
  • 2022-12-23
  • 2021-11-19
  • 2022-12-23
  • 2021-12-15
  • 2022-01-08
相关资源
相似解决方案