当前位置:   article > 正文

防火墙规则编写_防火墙规则怎么写

防火墙规则怎么写

防火墙规则编写

系统的INPUT和OUTPUT默认策略为DROP;
试验环境搭建
  • 内部主机IP:10.0.1.22
  • 外网主机IP:内网IP:10.0.1.1 外网IP:192.168.23.99
  • 公网主机IP:公网IP:192.168.23.100

1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服务器仅允许响应报文离开本机;

  • 方法一:在内网web服务器上写过滤规则
    • (1)iptables -P INPUT DROP: 设置INPUT链的默认策略为DROP
    • (2)iptables -P OUTPUT DROP: 设置OUTPUT链的默认策略为DROP
    • (3)iptables -A OUTPUT -s 10.0.1.22 -p tcp --sport 80 -m string --algo kmp ! --string "admin" -m state --state ESTABLISHED -j ACCEPT : web服务器包含了admin字符串的页面不允许访问,web服务器仅允许响应报文离开本机
    • (4)iptables -A INPUT -d 10.0.1.22 -p tcp -m time ! --weekdays 1 -m limit --limit 100/second -j ACCEPT :限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒
    • 注意:要匹配string,一定要将规则设置在OUTPUT链上
  • 方法二:在外网主机(防火墙主机上)上写过滤规则 (在FORWARD链上写规则)
    • (1)iptables -A FORWARD -s 10.0.1.22 -p tcp --sport 80 -m string --algo kmp ! --string "admin" -m state --state ESTABLISHED -j ACCEPT :web服务器包含了admin字符串的页面不允许访问;web服务器仅允许响应报文离开本机
    • (2)iptables -A FORWARD -d 10.0.1.22 -p tcp -m time ! --weekdays 1 -m limit --limit 100/second -j ACCEPT:限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒
  • 方法三:将方法一和方法二的规则都写上

2、在工作时间,即周一到周五的8:30-18:00,开放本机的ftp服务给192.168.0.0网络中的主机访问;数据下载请求的次数每分钟不得超过5个;

  • 方法一:在内网ftp服务器上写过滤规则(测试结果不对)
    • iptables -A INPUT -d 10.0.1.22 -p tcp -m time ! - -weekdays 1 —timestart 08:30:00 —timestop 18:00:00 -m iprange - -src-range 192.168.0.0-192.168.255.255 -m limit - -limit 5/minute -m state - -state NEW,RELATED,ESTABLISHED -j ACCEPT
    • iptables -A OUTPUT -s 10.0.1.22 -m state --state ESTABLISHED -j ACCEPT

3、开放本机的ssh服务给192.168.x.1-192.168.x.100中的主机,x为你的座位号,新请求建立的速率一分钟不得超过2个;仅允许响应报文通过其服务端口离开本机;

  • 个人觉得这个题目出的不好,由于每一次C/S模型的连接都需要通过建立TCP的虚连接,TCP就需要三次连接了,这里一分钟才两个,如果这样的话,无法建立虚连接
  • iptables -A INPUT -d 10.0.1.22 -p tcp --dport 22 -m iprange --src-range 192.168.23.1-192.168.23.100 -m limit --limit 2/minute -j ACCEPT
  • iptables -A OUTPUT -s 10.0.1.22 -p tcp -m state --state ESTABLISHED -j ACCEPT

4、拒绝TCP标志位全部为1及全部为0的报文访问本机;

  • iptables -A INPUT -s 10.0.1.22 -p tcp --tcp-flags ALL ALL -j REJECT
  • iptables -A INPUT -s 10.0.1.22 -p tcp --tcp-flags ALL NONE -j REJECT

5、允许本机ping别的主机;但不开放别的主机ping本机;

  • iptables -A OUTPUT -s 10.0.1.22 -p icmp --icmp-type 8 -j ACCEPT
  • iptables -A INPUT -d 10.0.1.22 -p icmp --icmp-type 0 -j ACCEPT

6、判断下述规则的意义:
# iptables -N clean_in
新建一条名为clean_in的自定义链
# iptables -A clean_in -d 255.255.255.255 -p icmp -j DROP
在名为clean_in的自定义链上丢弃目标IP为 255.255.255.255 且 协议为icmp的报文
# iptables -A clean_in -d 172.16.255.255 -p icmp -j DROP
在名为clean_in的自定义链上丢弃目标IP为 172.16.255.255 且 协议为icmp的报文
# iptables -A clean_in -p tcp ! –syn -m state –state NEW -j DROP
在名为clean_in的自定义链上丢弃tcp报文首部的标志位syn不是1,且 请求连接追踪状态为NEW的报文
# iptables -A clean_in -p tcp –tcp-flags ALL ALL -j DROP
在名为clean_in的自定义链上丢弃TCP报文首部的标志位都是1的报文
# iptables -A clean_in -p tcp –tcp-flags ALL NONE -j DROP
在名为clean_in的自定义链上丢弃TCP报文首部的标志位都是0的报文
# iptables -A clean_in -d 172.16.100.7 -j RETURN
在名为clean_in的自定义链上如果有报文的目标IP为172.16.100.7,则直接返回到调用此自定义链的内置链上
# iptables -A INPUT -d 172.16.100.7 -j clean_in
如果INPUT链上匹配到了目标地址为172.16.100.7的报文就直接调用自定义链clean_in
# iptables -A INPUT -i lo -j ACCEPT
在INPUT链上指定入栈报文经由名为lo的接口设备上流入的放行
# iptables -A OUTPUT -o lo -j ACCEPT
在OUTPUT链上指定出栈报文经由名为lo的接口设备上流出的放行
# iptables -A INPUT -i eth0 -m multiport -p tcp –dports 53,113,135,137,139,445 -j DROP
在INPUT链上指定入栈报文为tcp协议的,且目标端口为53,113,135,137,139,445的经由接口设备名为eth0的丢弃
# iptables -A INPUT -i eth0 -m multiport -p udp –dports 53,113,135,137,139,445 -j DROP
在INPUT链上指定入栈报文为udp协议的,且目标端口为53,113,135,137,139,445的经由接口设备名为eth0的丢弃
# iptables -A INPUT -i eth0 -p udp –dport 1026 -j DROP
在INPUT链上将协议为udp且目标端口为1026的经由接口设备名为eth0流入的入栈报文丢弃
# iptables -A INPUT -i eth0 -m multiport -p tcp –dports 1433,4899 -j DROP
在INPUT链上将协议为tcp且目标端口为1433,4899的经由接口设备名为eth0流入的入栈报文丢弃
# iptables -A INPUT -p icmp -m limit –limit 10/second -j ACCEPT
在INPUT链上放行协议为icmp且最大新建连接为10个每秒

  • 以上所有的规则意义都写在了规则后面

7、通过tcp_wrapper控制vsftpd仅允许192.168.0.0/255.255.0.0网络中的主机访问,但192..168.23.100除外;对所被被拒绝的访问尝试都记录在/var/log/tcp_wrapper.log日志文件中;

  • 在/etc/hosts.allow文件中编辑
    • vsftpd:192.168.0.0/255.255.0.0 EXCEPT 192.168.23.100
  • 在/etc/hosts.deny文件中编辑
    • vsftpd: ALL :spawn /bin/echo $(date) login attemp from %c to %s, %d >> /var/log/tcp_wrapper.log
    • tcp_wrapper.log文件中也包含192.168.23.100主机拒绝登入的信息
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/631872
推荐阅读
相关标签
  

闽ICP备14008679号