iptables 菜鸟变大虾

运维 系统运维
本文为新手从头到脚的分析下iptables,给大家讲下iptables的概念、参数、配置、规则等。

我为大家整理出来iptables的所以知识,不用大家翻其他资料了!

  iptables简介

  iptables是基于内核的防火墙,功能非常强大,iptables内置了filter,nat和mangle三张表。

  filter负责过滤数据包,包括的规则链有,input,output和forward;

  nat则涉及到网络地址转换,包括的规则链有,prerouting,postrouting和output;

  mangle表则主要应用在修改数据包内容上,用来做流量整形的,默认的规则链有:INPUT,OUTPUT,NAT,POSTROUTING,PREROUTING;

  input匹配目的IP是本机的数据包,forward匹配流经本机的数据包,prerouting用来修改目的地址用来做DNAT,postrouting用来修改源地址用来做SNAT。

  iptables主要参数

  -A 向规则链中添加一条规则,默认被添加到末尾

  -T指定要操作的表,默认是filter

  -D从规则链中删除规则,可以指定序号或者匹配的规则来删除

  -R进行规则替换

  -I插入一条规则,默认被插入到首部

  -F清空所选的链,重启后恢复

  -N新建用户自定义的规则链

  -X删除用户自定义的规则链

  -p用来指定协议可以是tcp,udp,icmp等也可以是数字的协议号,

  -s指定源地址

  -d指定目的地址

  -i进入接口

  -o流出接口

  -j采取的动作,accept,drop,snat,dnat,masquerade

  --sport源端口

  --dport目的端口,端口必须和协议一起来配合使用

  注意:所有链名必须大写,表明必须小写,动作必须大写,匹配必须小写

#p#

  iptable配置实例

  iptable基本操作

  iptables -L 列出iptables规则

  iptables -F 清除iptables内置规则

  iptables -X 清除iptables自定义规则

  设定默认规则

  在iptables规则中没有匹配到规则则使用默认规则进行处理

  iptables -P INPUT DROP

  iptables -P OUTPUT ACCEPT

  iptables -P FORWARD DROP

  配置SSH规则

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

  iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT 如果你把OUTPUT 设置成DROP,就需要加上这个规则,否则SSH还是不能登录,因为SSH服务职能进不能出。

  只允许192.168.0.3的机器进行SSH连接

  iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j ACCEPT

  如果要允许,或限制一段IP地址可用 192.168.0.0/24 表示192.168.0.1-255端的所有IP.

  允许loopback回环通信

  IPTABLES -A INPUT -i lo -p all -j ACCEPT

  IPTABLES -A OUTPUT -o lo -p all -j ACCEPT

  目的地址转换,映射内部地址

  iptables -t nat -A PREROUTING -i ppp0 -p tcp --dprot 81 -j DNAT --to 192.168.0.2:80

  iptables -t nat -A PREROUTING -i ppp0 -p tcp --dprot 81 -j DNAT --to 192.168.0.1-192.168.0.10

  源地址转换,隐藏内部地址

  iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 1.1.1.1

  iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 1.1.1.1-1.1.1.10

  地址伪装,动态ip的NAT

  iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

  masquerade和snat的主要区别在于,snat是把源地址转换为固定的IP地址或者是地址池,而masquerade在adsl等方式拨号上网时候非常有用,因为是拨号上网所以网卡的外网IP经常变化,这样在进行地址转换的时候就要在每次都要修改转换策略里面的ip,使用masquerade就很好的解决了这个问题,他会自己去探测外网卡获得的ip地址然后自动进行地址转换,这样就算外网获得的ip经常变化也不用人工干预了。

  开启转发功能

  iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT 只允许已建连接及相关链接对内转发

  ptables -A FORWARD -i eth1 -o eh0 -j ACCEPT 允许对外转发

  过滤某个MAC

  iptables -A FORWARD -m mac --mac -source MAC地址 -j DROP

  报文经过路由后,数据包中原有的MAC信息会被替换,所以在路由后的iptables中使用mac匹配没有意义。

  数据包整流

  iptables -A FORWARD -d 192.168.0.1 -m limit --limit 50/s -j ACCEPT

  iptables -A FORWARD -d 192.168.0.1 -j DROP

  多端口匹配

  用以一次匹配多个端口

  iptables -A INPUT -p tcp -m muliport --dport s 21,22,25,80,110 -j ACCEPT

  丢弃非法连接

  iptables -A INPUT -m state --state INVALID -j DROP

  iptables -A OUTPUT -m state --state INVALID -j DROP

  iptables-A FORWARD -m state --state INVALID -j DROP

  存储于恢复iptables规则

  iptables-save > somefile

  iptables-restore < somefile

通过上文的介绍,我们都清楚的知道的了iptables一些知识。希望本文对大家有帮助!

【编辑推荐】

  1. iptables 端口转发
  2. iptables nat 技术笔记
  3. iptables+NAT+端口映射
  4. 如何查看iptables关于nat的日志
  5. RedHat 9上用iptables做NAT网和记录日志
  6. iptables下开放ftp连接
  7. Linux iptables将nat中内网多台ftp服务器映射出去
  8. Linux Iptables 内核添加time模块

 

责任编辑:赵鹏 来源: 网络转载
相关推荐

2011-02-22 13:02:53

vsFTPd

2011-03-08 15:01:08

Proftpd

2017-07-13 13:27:00

容器

2019-12-24 12:24:34

人工智能深度学习AI

2009-06-04 13:32:57

菜鸟面试主考官

2009-06-04 13:16:20

主考官面试菜鸟

2011-03-17 17:19:24

iptables

2011-03-18 09:26:13

Iptables规则

2011-03-15 09:59:59

iptables实例

2011-02-24 11:16:23

Konqueror

2011-03-16 11:17:56

IptablesICMP

2011-03-17 17:45:45

iptables规则

2011-03-15 13:39:14

iptablesstun

2011-03-14 14:40:11

iptables编译

2011-03-15 14:01:13

2011-03-15 16:34:36

Iptables性能

2011-03-15 16:26:46

iptablesnat

2011-03-15 09:46:31

2013-12-04 10:31:22

iPhone 6大屏幕iPhonePrimeSense

2011-03-15 14:50:03

使用IPTables
点赞
收藏

51CTO技术栈公众号