iptables

iptables全局报文流向图:

全局报文流向图

一、增加规则

1.在INPUT链的filter表插入(头插)源IP为192.168.116.1通行的规则

 iptables -I INPUT -t filter -s 192.168.116.1 -j ACCEPT

2.在INPUT 链的 filter 表追加 (尾插) 宿IP为 10.9.62.30 传输层协议为tcp的 拒绝规则

iptables -I INPUT -t filter -p tcp -d 10.9.62.30 -j REJECT

3.将某个规则插入INPUT 链第2条
规则:将宿IP为 10.0.1.56 规则拒绝

iptables -I INPUT 2 -t filter -d 10.0.1.56 -j REJECT

二、查看规则

1.查看 INPUT 链 filter 表详细规则

root@ubuntu:~# iptables -t filter -L INPUT -v -n
Chain INPUT (policy ACCEPT 141 packets, 9701 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   75  9806 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:8080

Chain INPUT (policy ACCEPT 141 packets, 9701 bytes)
上述ACCEPT代表 INPUT的默认规则,即当链中所有规则都没有匹配到的策略,默认放行。
可通过如下命令修改默认策略为DROP

iptables -P INPUT DROP

三、修改规则

前提:有如下规则

root@ubuntu:~# iptables -L INPUT -vn --line
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     tcp  --  *      *       10.1.22.11           0.0.0.0/0            tcp dpt:9090

原规则:源IP:10.1.22.11 协议:tcp 动作:放行
修改后规则:源IP:10.1.22.11 协议:tcp 动作:拒绝
命令:

iptables -R INPUT 1 -t filter -s 10.1.22.11 -p tcp --dport 9090 -j REJECT

结果:

root@ubuntu:~# iptables -L INPUT -vn --line
Chain INPUT (policy ACCEPT 27 packets, 53402 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     tcp  --  *      *       10.1.22.11           0.0.0.0/0            tcp dpt:9090 reject-with icmp-port-unreachable

注意点:修改规则时候一定把源规则所有规则写全,要不然默认规则是0.0.0.0/0,会导致规则非预期变化!

四、删除规则

前提:有如下规则

root@ubuntu:~# iptables -L INPUT -vn --line
Chain INPUT (policy ACCEPT 186 packets, 262K bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     tcp  --  *      *       10.1.22.11           0.0.0.0/0            tcp dpt:9090 reject-with icmp-port-unreachable
2        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            10.9.62.30           reject-with icmp-port-unreachable
3        0     0 REJECT     all  --  *      *       0.0.0.0/0            10.0.1.56            reject-with icmp-port-unreachable
4     1290  100K ACCEPT     all  --  *      *       192.168.116.1        0.0.0.0/0           
5      230 18154 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:8080

1.删除INPUT 链 第二条规则

iptables -D INPUT 2

结果:

root@ubuntu:~# iptables -L INPUT -vn --line
Chain INPUT (policy ACCEPT 17 packets, 1611 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     tcp  --  *      *       10.1.22.11           0.0.0.0/0            tcp dpt:9090 reject-with icmp-port-unreachable
2        0     0 REJECT     all  --  *      *       0.0.0.0/0            10.0.1.56            reject-with icmp-port-unreachable
3     1384  107K ACCEPT     all  --  *      *       192.168.116.1        0.0.0.0/0           
4      257 19678 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:8080

五、匹配规则

1.匹配协议

参数:-p
支持协议类型:

  • centos6: tcp, udp, udplite, icmp, esp, ah, sctp
  • centos7: tcp, udp, udplite, icmp, icmpv6,esp, ah, sctp, mh
    当不使用-p指定协议类型时,默认表示所有类型的协议都会被匹配到,与使用-p all的效果相同。

2.匹配端口

匹配端口属于iptables扩展匹配条件,匹配源宿IP和协议都属于基本匹配条件,在使用端口匹配时候,必须先指定匹配的协议才可以使用!
1.匹配源端口
参数:--sport

iptables -I INPUT -p tcp -m multiport --sport 9090,8080:8090 -j ACCEPT

解释:-m 表示使用扩展模块: multiport进行匹配,这样source-port 就可以指定多个,并且可以指定连续的端口段以及离散的端口组,中间以逗号(,)隔开。
:8080 代表地址段 0-8080
8080: 代表端口段8080-65535(即默认的所有端口段)
2.匹配目的端口
参数:--dport

iptables -I INPUT -p tcp -m multiport --sport 9090,8080:8090 -j ACCEPT

用法同上。

未完待续...

参考:http://www.zsythink.net/archives/1544

六、扩展模块

1、ipset (实现O(1)查找规则)

ipset是iptables的扩展,它允许你创建 匹配整个地址集合的规则。而不像普通的iptables链只能单IP匹配, ip集合存储在带索引的数据结构中,这种结构即时集合比较大也可以进行高效的查找,官网:http://ipset.netfilter.org/

  1. 安装ipset :yum install ipset
  2. 创建一个hash表:ipset create myfilter hash:ip(net) maxelem 100000
    ipset 默认可以存储65536个元素,可以使用maxelem指定数量
  3. 查看已创建的ipset :ipset list
  4. 加入一个黑名单IP:ipset add myfilter 10.1.62.10
  5. 移除一个黑名单IP:ipset del myfilter 10.1.62.10
  6. 创建一个防火墙规则:iptables -I INPUT -m set –match-set myfilter src -p tcp -j DROP

参考:http://www.zsythink.net/archives/1564

七、自定义链

1.创建自定义链
在filter表中创建IN_WEB自定义链
iptables -t filter -N IN_WEB

2、引用自定义链
在INPUT链插入规则,tcp协议且目的端口8080的报文走IN_WEB链处理
iptables -I INPUT -p tcp --dport 8080 -j IN_WEB

3、重命名链名称
iptables -E -t filter IN_WEB WEB

4、删除自定义链
前提:
1、自定义链没有被引用
2、自定义链中没有任何规则
iptables -X WEB
如果链被其他链引用需要先删除其他链上的规则,并且清空自定义链的规则,在执行删除自定义链。
删除INPUT链引用WEB链的规则 :iptables -D INPUT 1
清空WEB链规则:iptables -F WEB

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容

  • Firewall 工作于网络(网络防火墙)或主机(主机防火墙)的边缘(通信报文的进出口),对于进出本网络或主机的报...
    SRE1阅读 1,278评论 0 0
  • 1.常见防火墙选用 硬件防火墙 开源软件:iptables(默认规则改为INPUT DROP) 云服务器:安全组(...
    酷酷的伟阅读 1,118评论 0 2
  • ptables防火墙可以用于创建过滤(filter)与NAT规则。所有Linux发行版都能使用iptables,因...
    CJ的技术日常阅读 507评论 0 0
  • 1.安全技术 (1)入侵检测与管理系统(Intrusion Detection Systems): 特点是不阻断任...
    尛尛大尹阅读 2,438评论 0 2
  • iptables简介 netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防...
    yshenhn阅读 109,870评论 2 77