25个常⽤的防⽕墙规则
本⽂将给出25个iptables常⽤规则⽰例,这些例⼦为您提供了些基本的模板,您可以根据特定需求对其进⾏修改调整以达到期望。 格式iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型] 参数
1. -P 设置默认策略:iptables -P INPUT (DROP|ACCEPT)
2. -F 清空规则链
3. -L 查看规则链
4. -A 在规则链的末尾加⼊新规则
5. -I num 在规则链的头部加⼊新规则
6. -D num 删除某⼀条规则
7. -s 匹配来源地址IP/MASK,加叹号"!"表⽰除这个IP外。
8. -d 匹配⽬标地址
9. -i ⽹卡名称 匹配从这块⽹卡流⼊的数据
10. -o ⽹卡名称 匹配从这块⽹卡流出的数据
11. -p 匹配协议,如tcp,udp,icmp
12. --dport num 匹配⽬标端⼝号
13. --sport num 匹配来源端⼝号
⽰例
1. 删除已有规则
在开始创建iptables规则之前,你也许需要删除已有规则。
1. 命令如下:
2. iptables -F
3. (or)
4. iptables –flush
2.设置链的默认策略
链的默认政策设置为”ACCEPT”(接受),若要将INPUT,FORWARD,OUTPUT链设置成”DROP”(拒绝),命令如下:
1. iptables -P INPUT DROP
2. iptables -P FORWARD DROP
3. iptables -P OUTPUT DROP
当INPUT链和OUTPUT链都设置成DROP时,对于每⼀个防⽕墙规则,我们都应该定义两个规则。例如:⼀个传⼊另⼀个传出。在下⾯所有的例⼦中,由于我们已将DROP设置成INPUT链和OUTPUT链的默认策略,每种情况我们都将制定两条规则。当然,如果你相信你的内部⽤户,则可以省略上⾯的最后⼀⾏。例如:默认不丢弃所有出站的数据包。在这种情况下,对于每⼀个防⽕墙规则要求,你只需要制定⼀个规则——只对进站的数据包制定规则。
3. 阻⽌指定IP地址
例:丢弃来⾃IP地址的包
1. iptables -A INPUT - -j DROP
2. 注:当你在log⾥发现来⾃某ip地址的异常记录,可以通过此命令暂时阻⽌该地址的访问以做更深⼊分析
例:阻⽌来⾃IP地址 eth0 tcp的包
1. iptables -A INPUT -i eth0 - -j DROP
2. iptables -A INPUT -i eth0 -p tcp - -j DROP
4. 允许所有SSH的连接请求
例:允许所有来⾃外部的SSH连接请求,即只允许进⼊eth0接⼝,并且⽬标端⼝为22的数据包
1. iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
2. iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
5. 仅允许来⾃指定⽹络的SSH连接请求
例:仅允许来⾃于192.168.100.0/24域的⽤户的ssh连接请求
1. iptables -A INPUT -i eth0 -p tcp -s 19mysql无法连接到服务器
2.168.100.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
2. iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
6.允许http和https的连接请求
例:允许所有来⾃web - http的连接请求
1. iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
2. iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
例:允许所有来⾃web - https的连接请求
1. iptables -A INPUT -i eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
2. iptables -A OUTPUT -o eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
7. 使⽤multiport 将多个规则结合在⼀起
允许多个端⼝从外界连⼊,除了为每个端⼝都写⼀条独⽴的规则外,我们可以⽤multiport将其组合成⼀条规则。如下所⽰: 例:允许所有ssh,http,https的流量访问
1. iptables -A INPUT -i eth0 -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
2. iptables -A OUTPUT -o eth0 -p tcp -m multiport --sports 22,80,443 -m state --state ESTABLISHED -j ACCEPT
8. 允许从本地发起的SSH
1. iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
2. iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
请注意,这与允许ssh连⼊的规则略有不同。本例在OUTPUT链上,我们允许NEW和ESTABLISHED状态。在INPUT链上,我们只允许ESTABLISHED状态。ssh连⼊的规则与之相反。
9. 仅允许从本地发起到⼀个指定的⽹络域的SSH请求
例:仅允许从内部连接到⽹域192.168.100.0/24
1. iptables -A OUTPUT -o eth0 -p tcp -d 19
2.168.100.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
2. iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
10. 允许从本地发起的HTTPS连接请求
下⾯的规则允许输出安全的⽹络流量。如果你想允许⽤户访问互联⽹,这是⾮常有必要的。在服务器上,这些规则能让你使⽤wget从外部下载⼀些⽂件
1. iptables -A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
2. iptables -A INPUT -i eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
注:对于HTTP web流量的外联请求,只需要将上述命令中的端⼝从443改成80即可。
11. 负载平衡传⼊的⽹络流量
使⽤iptables可以实现传⼊web流量的负载均衡,我们可以传⼊web流量负载平衡使⽤iptables防⽕墙规则。 例:使⽤iptables nth将HTTPS流量负载平衡⾄三个不同的ip地址。
mybatis实现原理 动态代理
1. iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j
DNAT --to-destination 192.168.1.101:443
2. iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 1 -j
onkeydown参数DNAT --to-destination 192.168.1.102:443
3. iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 2 -j
DNAT --to-destination 192.168.1.103:443
12. 允许外部主机ping内部主机
1. iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
2. iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
13. 允许内部主机ping外部主机
1. iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
2. iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
14. 允许回环访问
例:在服务器上允许127.0.0.1回环访问。
1. iptables -A INPUT -i lo -j ACCEPT
2. iptables -A OUTPUT -o lo -j ACCEPT
15. 允许内部⽹络域外部⽹络的通信
防⽕墙服务器上的其中⼀个⽹卡连接到外部,另⼀个⽹卡连接到内部服务器,使⽤以下规则允许内部⽹络与外部⽹络的通信。此例中,eth1连接到外部⽹络(互联⽹),eth0连接到内部⽹络(例如:192.168.1.x)。
1. iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
16. 允许出站的DNS连接
1. iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT
2. iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT
17. 允许NIS连接
如果你使⽤NIS管理⽤户帐户,你需要允许NIS连接。如果你不允许NIS相关的ypbind连接请求,即使SSH连接请求已被允许,⽤户仍然⽆法登录。NIS的端⼝是动态的,先使⽤命令rpcinfo –p来知道端⼝号,此例中为853和850端⼝。 rpcinfo -p | grep ypbind 例:允许来⾃111端⼝以及ypbind使⽤端⼝的连接请求
1. iptables -A INPUT -p tcp --dport 111 -j ACCEPT
2. iptables -A INPUT -p udp --dport 111 -j ACCEPT
3. iptables -A INPUT -p tcp --dport 853 -j ACCEPT
4. iptables -A INPUT -p udp --dport 853 -j ACCEPT
span标签全称
5. iptables -A INPUT -p tcp --dport 850 -j ACCEPT
6. iptables -A INPUT -p udp --dport 850 -j ACCEPT
注:当你重启ypbind之后端⼝将不同,上述命令将⽆效。有两种解决⽅案:1)使⽤你NIS的静态IP 2)编写shell脚本通过“rpcinfo -
p”命令⾃动获取动态端⼝号,并在上述iptables规则中使⽤。
18. 允许来⾃指定⽹络的rsync连接请求
例:允许来⾃⽹络192.168.101.0/24的rsync连接请求
1. iptables -A INPUT -i eth0 -p tcp -s 19
下列关于源码补码的叙述正确的是2.168.101.0/24 --dport 873 -m state --state NEW,ESTABLISHED -j ACCEPT
ipad上c语言编程软件2. iptables -A OUTPUT -o eth0 -p tcp --sport 873 -m state --state ESTABLISHED -j ACCEPT
19. 允许来⾃指定⽹络的MySQL连接请求
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论