你好,游客 登录 注册 搜索
背景:
阅读新闻

iptables使用范例详解

[日期:2014-03-30] 来源:Linux社区  作者:wfnygah [字体: ]
示例;放行来自于172.16.0.0/16网络的主机对本机ssh服务的请求;下面这个示例是一对出现的;
172.16.34.30允许所有来自172.16.0.0/16网段发送ssh服务的请求
iptables -A INPUT -s 172.16.0.0/16 -d 172.16.34.30 -p tcp --dport 22 -j ACCEPT
172.16.34.30主机的ssh服务,只允许响应给172.16.0.0/16这个网段
iptables -A OUPOUT -s 172.16.34.30 -d 172.16.0.0/16 -p tcp --sport 22 -j ACCEPT
设置默认策略,拒绝所有未知的服务,仅放行规则所匹配的服务
iptables -P INPUT DROP
iptables -P OUTPUT DROP
 
输入这两条件命令我的主机并没有中断,是因为上面事先写好了两条允许本机的ssh服务规则,所没有中断,但是本机的其它服务,别的主机是访问不了的。
放行本机的80端口给172.16.0.0/16的所有地址访问 (这时明确了所有地址,因此在写规则时源地址省略不写,直接写上目标地址即可)
iptables -A INPUT -d 172.16.34.30 -p tcp --dport 80 -j ACCEPT只写这一条的话,访问的报文可以进来,但是无法响应给客户,因此还有写一条响兴给客户端主机的规则

iptables -A OUTPUT -s 172.16.34.30 -p tcp --sport 80 -j ACCEPT此时的源地址是172.16.34.30是向客户端主机响应

 

-p icmp

--icmp-type
8: ping请求 0:ping响应
例子:放行ping其它主机
iptables -A OUTPUT -s 172.16.100.7 -p icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -d 172.16.100.7 -p icmp --icmp-type 0 -j ACCEPT
放行其它主机ping本机
iptables -A INPUT -d 172.16.100.1 -P icmp --icmp-type 8 -j ACCEPT
iptables -A OUTPUT -s 172.16.100.7 -p icmp --icmp-type 0 -j ACCEPT

 

-p udp

--dport
--sport
放行本机的tftp服务:(还有两条tcp的没有写)
iptables -A INPUT -s 172.16.0.0/16 -d 172.16.100.7 -p udp --dport 69 -j ACCEPT
iptables -A OUTPUT -s 172.16.100.7 -d 172.16.0.0/16 -p udp --sport 69 -j ACCEPT
放行本机dns服务:(DNS总共有八条规则,还有tcp的四条没有写)
iptables -A INPUT -s 172.16.0.0/16 -d 172.16.100.7 -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -s 172.16.100.7 -d 172.16.0.0/16 -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -s 172.16.100.7 -p udp --dport 53 -j ACCEPT

iptables -A INPUT -d 172.16.100.7 -p udp --sport 53 -j ACCEPT

 

 


显示扩展

规则命令;
iptables -D INPUT 2 表示删除input链上的第二条规则 记住如果删除了第二条而原来的的第三条会自动变成第二条
iptables -I 插入规则
iptables -I INPUT 2 -i lo -j ACCEPT 表示将规则插入到第二行
iptables -R INPUT 1 -s 172.16.0.0/16 -d 172.16.34.30 -i eth0 -p tcp --dport 22 -j ACCEPT 完整替换第一条规则
明确规定172.16网段连接目标地址的22号服务必须从eth0网卡进来

iptables -S INPUT 显示指定的链的规则

 

 


显示扩展;必须明确指定的扩展模块;

-m 扩展模块名称 --专用选项1 --专用选项2
multiport;多端口匹配,一次指定多个(15个以内)离散端口
--source-ports, 源端口
--destinatil-ports 目标端口
--ports
示例;开放本机的22,80两个端口;(由于这里一次性开放多个端口所有这里得使用-m选项)
iptables -I INPUT -d 172.16.34.30 -p tcp -m multiport --dports 22,80 -j ACCEPT
这里只是input让用户可能发送请求而目标主机 没有得到响应,所有写上一条output出站规则,已此来响应给客户端口。(写上这两条规则前面写的那两条单独写的规则则可以删除(这条规则用了 "-I" 选项插入规则 ),这样也达到了规则优化的效果)

iptables -I OUTPUT -s 172.16.34.30 -p tcp -m multiport --sports 22,80 -j ACCEPT

 

iptables -A INPUT -i eth0 -m multiport -p tcp --dports 53,113,135,137,139,445 -j DROP 本机通过这个eth0网卡进来的端口都被拒绝
iptables -A INPUT -i eth0 -m multiport -p udp --dports 53,113,135,137,139,445 -j DROP
iptables -A INPUT -i eth0 -p udp --dport 1026 -j DROPiptables -A INPUT -i eth0 -m multiport -p tcp --dports 3389,4899 -j DROP

 

示例;允许本机的telnet服务给指定的主机ip
iptables -A INPUT -d 172.16.34.30 -p tcp --dport 23 -m iprange --src-range 172.16.34.10-172.16.34.20 -j ACCEPT
iptables -A OUTPUT -s 172.16.34.30 -p tcp --sport 23 -m iprange --dst-range 172.16.34.10-172.16.34.20 -j ACCEPT


time;匹配指定时间范围 结束时间大于起始时间 结束日期于于起始日期
--datestart 起始日期 YYYY[-MM[-DD[Thh[:mm[:ss]]]]]
--datestop 结束日期 YYYY[-MM[-DD[Thh[:mm[:ss]]]]]
--timestart hh:mm[:ss] 起始时间
--timestop hh:mm[:ss] 结束时间
--weekdays day [Mon, Tue, Wed, Thu, Fri, Sat, Sun ]也可以是1-7 以周为日期格式做规则
示例;限制本机901端口只允许在工作时间内(周一至周五)的08点到18点才可访问;
iptables -A INPUT -d 172.16.34.30 -p tcp --dport 901 -m time --weekdays Mon,Tue,Wed,Thu,Fri --timestart 08:00:00 -timestop 18:00:00 -j ACCEPT
由于做了限制客户的进站访问规则,因此客户只有规定的工作日才能访问,因此下面这条规则就可以简写。
(服务器可以随时放行用户的请求,但是客户不是随时可以访问的。)
iptables -A OUTPUT -s 172.16.34.30 -p tcp --sport 901 -j ACCEPT

 

string;对字符串匹配
--algo {bm|kmp}; 字符匹配查找时使用的算法
--string "STRING"; 要查找的字符串
示例;如果客户端口访问的网页当中有规则里定义的字符串则不显示给客户
安装httpd服务,新建两个首页文件,写上不一样的内容,其中一个首页文件里的内容须有你需要匹配的字符串如“hello".测试这个web服务的两个首页在没有写规则前都可以正常访问。对其中一个web网页做字符串匹配。

1
iptables -I OUTPUT -s 172.16.34.30 -p tcp --sport 80 -m string --algo kmp --string "hello" -f DROP

写完这个匹配字符串的规则后再次访问时显示是无法打开被匹配到的网页

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款