linux防火墙iptables常用规则_第1页
linux防火墙iptables常用规则_第2页
linux防火墙iptables常用规则_第3页
linux防火墙iptables常用规则_第4页
linux防火墙iptables常用规则_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、linux防火墙iptables常用规则(屏蔽IP地址、禁用ping、协议设置、NAT与转发、负载平衡、自定义链)一、iptables:从这里开始删除现有规则iptables -F(OR)iptables -flush设置默认链策略iptables的filter表中有三种链:INPUT, FORWARD和OUTPUT。默认的链策略是ACCEPT,你可以将它们设置成DROP。iptables -P INPUT DROPiptables -P FORWARD DROPiptables -P OUTPUT DROP你需要明白,这样做会屏蔽所有输入、输出网卡的数据包,除非你明确指定哪些数据包可以通过网

2、卡。屏蔽指定的IP地址以下规则将屏蔽BLOCK_THIS_IP所指定的IP地址访问本地主机:BLOCK_THIS_IP=""iptables -A INPUT -i eth0 -s "$BLOCK_THIS_IP" -j DROP(或者仅屏蔽来自该IP的TCP数据包iptables -A INPUT -i eth0 -p tcp -s "$BLOCK_THIS_IP" -j DROP允许来自外部的ping测试iptables -A INPUT -p icmp -icmp-type echo-request -j ACCEPTiptab

3、les -A OUTPUT -p icmp -icmp-type echo-reply -j ACCEPT允许从本机ping外部主机iptables -A OUTPUT -p icmp -icmp-type echo-request -j ACCEPTiptables -A INPUT -p icmp -icmp-type echo-reply -j ACCEPT允许环回(loopback)访问iptables -A INPUT -i lo -j ACCEPTiptables -A OUTPUT -o lo -j ACCEPT二、iptables:协议与端口设定允许所有SSH连接请求本规则允许

4、所有来自外部的SSH连接请求,也就是说,只允许进入eth0接口,并且目的端口为22的数据包iptables -A INPUT -i eth0 -p tcp -dport 22 -m state -state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp -sport 22 -m state -state ESTABLISHED -j ACCEPT允许从本地发起的SSH连接本规则和上述规则有所不同,本规则意在允许本机发起SSH连接,上面的规则与此正好相反。iptables -A OUTPUT -o eth0 -p tcp -

5、dport 22 -m state -state NEW,ESTABLISHED -j ACCEPTiptables -A INPUT -i eth0 -p tcp -sport 22 -m state -state ESTABLISHED -j ACCEPT仅允许来自指定网络的SSH连接请求以下规则仅允许来自的网络:iptables -A INPUT -i eth0 -p tcp -dport 22 -m state -state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp -sport 22 -m state -st

6、ate ESTABLISHED -j ACCEPT上例中,你也可以使用作为网络地址。当然使用上面的CIDR地址更容易让人明白。仅允许从本地发起到指定网络的SSH连接请求以下规则仅允许从本地主机连接到的网络:iptables -A OUTPUT -o eth0 -p tcp -dport 22 -m state -state NEW,ESTABLISHED -j ACCEPTiptables -A INPUT -i eth0 -p tcp -sport 22 -m state -state ESTABLISHED -j ACCEPT允许HTTP/HTTPS连接请求# 1.允许HTTP连接:80端

7、口iptables -A INPUT -i eth0 -p tcp -dport 80 -m state -state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp -sport 80 -m state -state ESTABLISHED -j ACCEPT# 2.允许HTTPS连接:443端口iptables -A INPUT -i eth0 -p tcp -dport 443 -m state -state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p

8、tcp -sport 443 -m state -state ESTABLISHED -j ACCEPT允许从本地发起HTTPS连接本规则可以允许用户从本地主机发起HTTPS连接,从而访问Internet。iptables -A OUTPUT -o eth0 -p tcp -dport 443 -m state -state NEW,ESTABLISHED -j ACCEPTiptables -A INPUT -i eth0 -p tcp -sport 443 -m state -state ESTABLISHED -j ACCEPT类似的,你可以设置允许HTTP协议80端口。-m multi

9、port:指定多个端口通过指定-m multiport选项,可以在一条规则中同时允许SSH、HTTP、HTTPS连接:iptables -A INPUT -i eth0 -p tcp -m multiport -dports 22,80,443 -m state -state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp -m multiport -sports 22,80,443 -m state -state ESTABLISHED -j ACCEPT允许出站DNS连接iptables -A OUTPUT -p udp

10、 -o eth0 -dport 53 -j ACCEPTiptables -A INPUT -p udp -i eth0 -sport 53 -j ACCEPT允许NIS连接如 果你在使用NIS管理你的用户账户,你需要允许NIS连接。即使你已允许SSH连接,你仍需允许NIS相关的ypbind连接,否则用户将无法登陆。 NIS端口是动态的,当ypbind启动的时候,它会自动分配端口。因此,首先我们需要获取端口号,本例中使用的端口是853和850:rpcinfo -p | grep ypbind然后,允许连接到111端口的请求数据包,以及ypbind使用到的端口:iptables -A INPUT

11、 -p tcp -dport 111 -j ACCEPTiptables -A INPUT -p udp -dport 111 -j ACCEPTiptables -A INPUT -p tcp -dport 853 -j ACCEPTiptables -A INPUT -p udp -dport 853 -j ACCEPTiptables -A INPUT -p tcp -dport 850 -j ACCEPTiptables -A INPUT -p udp -dport 850 -j ACCEPT以上做法在你重启系统后将失效,因为ypbind会重新指派端口。我们有两种解决方法:1.为NIS

12、使用静态IP地址2.每次系统启动时调用脚本获得NIS相关端口,并根据上述iptables规则添加到filter表中去。允许来自指定网络的rsync连接请求你可能启用了rsync服务,但是又不想让rsync暴露在外,只希望能够从内部网络访问即可:iptables -A INPUT -i eth0 -p tcpdport 873 -m state -state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp -sport 873 -m state -state ESTABLISHED -j ACCEPT允许来自指定网络的MySQ

13、L连接请求你可能启用了MySQL服务,但只希望DBA与相关开发人员能够从内部网络直接登录数据库:iptables -A INPUT -i eth0 -p tcpdport 3306 -m state -state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp -sport 3306 -m state -state ESTABLISHED -j ACCEPT允许Sendmail, Postfix邮件服务邮件服务都使用了25端口,我们只需要允许来自25端口的连接请求即可。iptables -A INPUT -i eth0 -p

14、 tcp -dport 25 -m state -state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp -sport 25 -m state -state ESTABLISHED -j ACCEPT允许IMAP与IMAPS# IMAP:143iptables -A INPUT -i eth0 -p tcp -dport 143 -m state -state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp -sport 143 -m state -s

15、tate ESTABLISHED -j ACCEPT# IMAPS:993iptables -A INPUT -i eth0 -p tcp -dport 993 -m state -state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp -sport 993 -m state -state ESTABLISHED -j ACCEPT允许POP3与POP3S# POP3:110iptables -A INPUT -i eth0 -p tcp -dport 110 -m state -state NEW,ESTABLISHE

16、D -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp -sport 110 -m state -state ESTABLISHED -j ACCEPT# POP3S:995iptables -A INPUT -i eth0 -p tcp -dport 995 -m state -state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp -sport 995 -m state -state ESTABLISHED -j ACCEPT防止DoS攻击iptables -A INPUT -p t

17、cp -dport 80 -m limit -limit 25/minute -limit-burst 100 -j ACCEPT· -m limit: 启用limit扩展· limit 25/minute: 允许最多每分钟25个连接· limit-burst 100: 当到达100个连接后,才启用上述25/minute限制三、转发与NAT允许路由如果本地主机有两块网卡,一块连接内网(eth0),一块连接外网(eth1),那么可以使用下面的规则将eth0的数据路由到eht1:iptables -A FORWARD -i eth0 -o

18、 eth1 -j ACCEPTDNAT与端口转发以下规则将会把来自422端口的流量转发到22端口。这意味着来自422端口的SSH连接请求与来自22端口的请求等效。# 1.启用DNAT转发iptables -t nat -A PREROUTING -p tcp -d 7 -dport 422 -j DNAT -to-destination 7:22# 2.允许连接到422端口的请求iptables -A INPUT -i eth0 -p tcp -dport 422 -m state -state NEW,ESTABLISHED -j ACCE

19、PTiptables -A OUTPUT -o eth0 -p tcp -sport 422 -m state -state ESTABLISHED -j ACCEPT假设现在外网网关是,那么如果我们希望把HTTP请求转发到内部的某一台电脑,应该怎么做呢?iptables -t nat -A PREROUTING -p tcp -i eth0 -d -dport 8888 -j DNAT -to :80iptables -A FORWARD -p tcp -i eth0 -d -dport 80 -j ACCEPT当该数据包到达后,需要将该数据包转

20、发给的80端口,事实上NAT所做的是修改该数据包的目的地址和目的端口号。然后再将该数据包路由给对应的主机。但是iptables会接受这样的需要路由的包么?这就由FORWARD链决定。我们通过第二条命令告诉iptables可以转发目的地址为:80的数据包。再看一下上例中422端口转22端口,这是同一IP,因此不需要设置FORWARD链。SNAT与MASQUERADE如下命令表示把所有网段的数据包SNAT成的ip然后发出去:iptables -t natsnat 对于snat,不管是几个地址,必须明确的指定要snat的IP。假设我们的电脑使用ADSL拨号方式上网,那么外网IP是动态的,这时候我们可以考虑使用MASQUERADEiptables -t nat负载平衡可以利用iptables的-m nth扩展,及其参数counter 0 every 3 packet x,进行DNAT路由设置-A PREROUTING -j DNAT to-destination,从而将负载平均分配给3台服务器:iptables -A PREROUTING -i eth0 -p tcp -dport 443 -m state -state NE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论