防火墙练习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了防火墙练习相关的知识,希望对你有一定的参考价值。

一、iptables主机防火墙练习:

1.INPUT和OUTPUT默认策略为DROP;

答:

# iptables -P INPUT DROP

# iptables -P OUTPUT DROP


# iptables -A INPUT -j DROP

# iptables -A OUTPUT -j DRO


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

答:

# iptables -I INPUT -s 172.16.72.1 -m time ! --weekdays Mon -m limit --limit 100/second -m string ! --string "admin" -o little -j ACCEPT


3.在工作时间,即周一到周五的8:30-18:00,开放本机的samba服务共享的目录给172.16.0.0/16网络中的主机访问;数据访问次数每分钟不得超过10个;

答:

# iptables -I INPUT -s 172.16.0.0/16 -m time --timestart 08:30:00 --timestop 18:00:00 ! --weekdays Sat,Sun -m limit --limit 10/Minute -j ACCEPT

# setsebool -P samba_enable_home_dirs=1


4.开放本机的ssh服务给172.16.0.1-172.16.0.10中的主机,新请求建立的速率一分钟不得超过2个;仅允许响应报文通过其服务端口离开本机;

答:

iptables -I INPUT -p tcp --dport 22 -m iprange --src-range 172.16.0.1-172.16.0.10 -m limit --limit 2/Minute -o little -m recent --set --name SSH


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

答:

# iptables -I INPUT -p tcp --tcp-flags ALL NONE -j DROP


6.允许本机ping别的主机;但不开放别的主机ping本机;

答:


二、iptables网络防火墙练习:

1.给一台Linux安装三块网卡,提供三个网络接口;

2.内网中用户主机所在的网段为172.18.0.0/16,所有服务器所在的网段为172.16.0.0/16,外部网络为192.168.100.0/24网段;服务器所在络中,可以使用一台服务器实现多个服务,也可以使用多台服务器分别实现各个服务,可自行根据你的计算机的性能来决定;并且为内部的所有主机和服务器指定正确的网关;外部主机无需指定网关;

3.要求:

1) 内网用户可以访问所有服务器提供的所有服务(samba,ftp,dns,web(http)),但只有172.18.18.18主机能够使用ssh和telnet协议访问所有内网服务器;

2) 内网用户可以访问外部网络;

3) 内网服务器不得主动访问任何其他网络中的任何主机,只能被访问;

4) 外网用户只能访问内网服务器的web服务;

答:

主机1:172.18.0.2  

主机2:172.18.18.18


内网:

服务器网卡:172.16.72.6

内网网卡:  172.18.0.1

外网网卡:  192.168.100.1


外网:

外网主机外网网卡:192.168.100.2


内外网正常通信:

# ip route add default via  172.18.0.1

# ip route add default via  192.168.100.1

# sysctl -w net.ipv4.ip_forward=1

# sysctl -p


# iptables -A FORWARD -j DROP

# iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# iptables -I FORWARD 3 -s 172.18.0.0/16 -d 192.168.100.0/24 -p tcp -m multiport --dports 20,21,22,80 -m state --state NEW -j ACCEPT 

# curl http://192.168.100.2

# iptables -I FORWARD 4 -s 172.18.0.0/16 -d 192.168.100.0/24 -m state --state NEW -j ACCEPT 


# iptables -I INPUT -s 172.18.0.0/16 -m state --state ESTABLISHED,RELATED -j ACCEPT

# iptables -I INPUT 2 -s 172.18.0.0/16  -p tcp -m multiport --dports 20,21,22,80,139,445 -m state --state NEW -j ACCEPT

# iptables -I INPUT 3 -s 172.18.0.0/16  -p udp -m multiport --dports 137,138 -m state --state NEW -j ACCEPT

# iptables -A INPUT -j DROP

# modprobe nf_conntrack_ftp

# curl http://172.16.72.6

# ftp 172.16.72.6


# smbclient -L 172.16.72.6 -U little

# iptables -R INPUT 3 -s 172.18.0.0/16 -p udp -m multiport --dports 53,137,138 -m state --state NEW -j ACCEPT

# iptables -R INPUT 6 -p tcp -m multiport --dports 22,23 -s 172.18.18.18 -m state --state NEW -j ACCEPT

# iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT

# iptables -A OUTPUT -j DROP

# iptables -I INPUT 2 -s 192.168.100.0/24 -m state --state ESTABLISHED -j ACCEPT

# iptables -I INPUT 3 -s 192.168.100.0/24 -p tcp --dport 80 -m state --state NEW -j ACCEPT

# curl http://172.16.72.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是否匹配,对新连接状态进行匹配,默认规则或最后一条规则拒绝所有主机访问


# iptables -A clean_in -p tcp --tcp-flags ALL ALL -j DROP

 //在clean_in链尾部追加一条规则,查看封装协议为tcp是否匹配,拒绝TCP标志位全部为1的报文访问本机,默认规则或最后一条规则拒绝所有主机访问


# iptables -A clean_in -p tcp --tcp-flags ALL NONE -j DROP

          //在clean_in链尾部追加一条规则,查看封装协议为tcp是否匹配,拒绝TCP标志位全部为1及全部为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链,目的IP地址为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详解和练习

马哥2016全新Linux+Python高端运维班-Iptables 防火墙基础练习,tcp_wrapper

信息安全练习题 2-3

linux9/10练习

Linux 练习

综合练习:请给openlab搭建web网站