linux防火墙iptables常用规则屏蔽IP地址禁用ping协议设置NAT与转发负载平衡自定义链Word文档格式.docx
《linux防火墙iptables常用规则屏蔽IP地址禁用ping协议设置NAT与转发负载平衡自定义链Word文档格式.docx》由会员分享,可在线阅读,更多相关《linux防火墙iptables常用规则屏蔽IP地址禁用ping协议设置NAT与转发负载平衡自定义链Word文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
INPUT,FORWARD和OUTPUT。
默认的链策略是ACCEPT,你可以将它们设置成DROP。
iptables-PINPUTDROP
iptables-PFORWARDDROP
iptables-POUTPUTDROP
你需要明白,这样做会屏蔽所有输入、输出网卡的数据包,除非你明确指定哪些数据包可以通过网卡。
屏蔽指定的IP地址
以下规则将屏蔽BLOCK_THIS_IP所指定的IP地址访问本地主机:
BLOCK_THIS_IP="
x.x.x.x"
iptables-AINPUT-ieth0-s"
$BLOCK_THIS_IP"
-jDROP
(或者仅屏蔽来自该IP的TCP数据包)
iptables-AINPUT-ieth0-ptcp-s"
允许来自外部的ping测试
iptables-AINPUT-picmp--icmp-typeecho-request-jACCEPT
iptables-AOUTPUT-picmp--icmp-typeecho-reply-jACCEPT
允许从本机ping外部主机
iptables-AOUTPUT-picmp--icmp-typeecho-request-jACCEPT
iptables-AINPUT-picmp--icmp-typeecho-reply-jACCEPT
允许环回(loopback)访问
iptables-AINPUT-ilo-jACCEPT
iptables-AOUTPUT-olo-jACCEPT
二、iptables:
协议与端口设定
允许所有SSH连接请求
本规则允许所有来自外部的SSH连接请求,也就是说,只允许进入eth0接口,并且目的端口为22的数据包
iptables-AINPUT-ieth0-ptcp--dport22-mstate--stateNEW,ESTABLISHED-jACCEPT
iptables-AOUTPUT-oeth0-ptcp--sport22-mstate--stateESTABLISHED-jACCEPT
允许从本地发起的SSH连接
本规则和上述规则有所不同,本规则意在允许本机发起SSH连接,上面的规则与此正好相反。
iptables-AOUTPUT-oeth0-ptcp--dport22-mstate--stateNEW,ESTABLISHED-jACCEPT
iptables-AINPUT-ieth0-ptcp--sport22-mstate--stateESTABLISHED-jACCEPT
仅允许来自指定网络的SSH连接请求
以下规则仅允许来自192.168.100.0/24的网络:
iptables-AINPUT-ieth0-ptcp-s192.168.100.0/24--dport22-mstate--stateNEW,ESTABLISHED-jACCEPT
上例中,你也可以使用-s192.168.100.0/255.255.255.0作为网络地址。
当然使用上面的CIDR地址更容易让人明白。
仅允许从本地发起到指定网络的SSH连接请求
以下规则仅允许从本地主机连接到192.168.100.0/24的网络:
iptables-AOUTPUT-oeth0-ptcp-d192.168.100.0/24--dport22-mstate--stateNEW,ESTABLISHED-jACCEPT
允许HTTP/HTTPS连接请求
#1.允许HTTP连接:
80端口
iptables-AINPUT-ieth0-ptcp--dport80-mstate--stateNEW,ESTABLISHED-jACCEPT
iptables-AOUTPUT-oeth0-ptcp--sport80-mstate--stateESTABLISHED-jACCEPT
#2.允许HTTPS连接:
443端口
iptables-AINPUT-ieth0-ptcp--dport443-mstate--stateNEW,ESTABLISHED-jACCEPT
iptables-AOUTPUT-oeth0-ptcp--sport443-mstate--stateESTABLISHED-jACCEPT
允许从本地发起HTTPS连接
本规则可以允许用户从本地主机发起HTTPS连接,从而访问Internet。
iptables-AOUTPUT-oeth0-ptcp--dport443-mstate--stateNEW,ESTABLISHED-jACCEPT
iptables-AINPUT-ieth0-ptcp--sport443-mstate--stateESTABLISHED-jACCEPT
类似的,你可以设置允许HTTP协议(80端口)。
-mmultiport:
指定多个端口
通过指定-mmultiport选项,可以在一条规则中同时允许SSH、HTTP、HTTPS连接:
iptables-AINPUT-ieth0-ptcp-mmultiport--dports22,80,443-mstate--stateNEW,ESTABLISHED-jACCEPT
iptables-AOUTPUT-oeth0-ptcp-mmultiport--sports22,80,443-mstate--stateESTABLISHED-jACCEPT
允许出站DNS连接
iptables-AOUTPUT-pudp-oeth0--dport53-jACCEPT
iptables-AINPUT-pudp-ieth0--sport53-jACCEPT
允许NIS连接
如果你在使用NIS管理你的用户账户,你需要允许NIS连接。
即使你已允许SSH连接,你仍需允许NIS相关的ypbind连接,否则用户将无法登陆。
NIS端口是动态的,当ypbind启动的时候,它会自动分配端口。
因此,首先我们需要获取端口号,本例中使用的端口是853和850:
rpcinfo-p|grepypbind
然后,允许连接到111端口的请求数据包,以及ypbind使用到的端口:
iptables-AINPUT-ptcp--dport111-jACCEPT
iptables-AINPUT-pudp--dport111-jACCEPT
iptables-AINPUT-ptcp--dport853-jACCEPT
iptables-AINPUT-pudp--dport853-jACCEPT
iptables-AINPUT-ptcp--dport850-jACCEPT
iptables-AINPUT-pudp--dport850-jACCEPT
以上做法在你重启系统后将失效,因为ypbind会重新指派端口。
我们有两种解决方法:
1.为NIS使用静态IP地址
2.每次系统启动时调用脚本获得NIS相关端口,并根据上述iptables规则添加到filter表中去。
允许来自指定网络的rsync连接请求
你可能启用了rsync服务,但是又不想让rsync暴露在外,只希望能够从内部网络(192.168.101.0/24)访问即可:
iptables-AINPUT-ieth0-ptcp-s192.168.101.0/24--dport873-mstate--stateNEW,ESTABLISHED-jACCEPT
iptables-AOUTPUT-oeth0-ptcp--sport873-mstate--stateESTABLISHED-jACCEPT
允许来自指定网络的MySQL连接请求
你可能启用了MySQL服务,但只希望DBA与相关开发人员能够从内部网络(192.168.100.0/24)直接登录数据库:
iptables-AINPUT-ieth0-ptcp-s192.168.100.0/24--dport3306-mstate--stateNEW,ESTABLISHED-jACCEPT
iptables-AOUTPUT-oeth0-ptcp--sport3306-mstate--stateESTABLISHED-jACCEPT
允许Sendmail,Postfix邮件服务
邮件服务都使用了25端口,我们只需要允许来自25端口的连接请求即可。
iptables-AINPUT-ieth0-ptcp--dport25-mstate--stateNEW,ESTABLISHED-jACCEPT
iptables-AOUTPUT-oeth0-ptcp--sport25-mstate--stateESTABLISHED-jACCEPT
允许IMAP与IMAPS
#IMAP:
143
iptables-AINPUT-ieth0-ptcp--dport143-mstate--stateNEW,ESTABLISHED-jACCEPT
iptables-AOUTPUT-oeth0-ptcp--sport143-mstate--stateESTABLISHED-jACCEPT
#IMAPS:
993
iptables-AINPUT-ieth0-ptcp--dport993-mstate--stateNEW,ESTABLISHED-jACCEPT
iptables-AOUTPUT-oeth0-ptcp--sport993-mstate--stateESTABLISHED-jACCEPT
允许POP3与POP3S
#POP3:
110
iptables-AINPUT-ieth0-ptcp--dport