iptables实验步骤
一.包过滤实验
操作概述:为了应用iptables的包过滤功能,首先我们将filter链表的所有链规则清空,并设置链表默认策略为DROP(禁止)。通过向 INPUT规则链插入新规则,依次允许同组主机icmp回显请求、Web请求,最后开放信任接口eth0。iptables操作期间需同组主机进行操作验 证。
(1)清空filter链表所有规则链规则。
iptables命令 iptables -t filter -F
(2)同组主机使用/opt/ExpNIS/NetAD-Lab/Tools/portscan/nmap工具对当前主机进行端口扫描。
nmap端口扫描命令 nmap -sS -T5 同组主机IP
「说明」 nmap具体使用方法可查看实验13|练习一|实验原理。
(3)查看INPUT、FORWARD和OUTPUT链默认策略。
iptables命令 iptables -t filter -L
(4)将INPUT、FORWARD和OUTPUT链默认策略均设置为DROP。
iptables命令 iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
同组主机利用nmap对当前主机进行端口扫描,查看扫描结果,并利用ping命令进行连通性测试。
(5)利用功能扩展命令选项(ICMP)设置防火墙仅允许ICMP回显请求及回显应答。
ICMP回显请求类型 8 ;代码 0 。
ICMP回显应答类型 0 ;代码 0 。
iptables命令 iptables -I INPUT -p icmp --icmp-type 8/0 -j ACCEPT
iptables -I OUTPUT -p icmp --icmp-type 0/0 -j ACCEPT
利用ping指令测试本机与同组主机的连通性。
(6)对外开放Web服务(默认端口80/tcp)。
iptables命令 iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I OUTPUT -p tcp --dport 80 -j ACCEPT
同组主机利用nmap对当前主机进行端口扫描,查看扫描结果。
(7)设置防火墙允许来自eth0(假设eth0为内部网络接口)的任何数据通过。
iptables命令 iptables -A INPUT -i eth0 -j ACCEPT
iptables -A OUTPUT -i eth0 -j ACCEPT
同组主机利用nmap对当前主机进行端口扫描,查看扫描结果。
二.事件审计实验
操作概述:利用iptables的日志功能检测、记录网络端口扫描事件,日志路径 /var/log/iptables.log。
(1)清空filter表所有规则链规则。
iptables命令 iptables -F
(2)根据实验原理(TCP扩展)设计iptables包过滤规则,并应用日志生成工具ULOG对iptables捕获的网络事件进行响应。
iptables命令iptables -I INPUT -p tcp --tcp-flag ALL SYN -j ULOG--ulog-prefix “SYN Request”
(3)同组主机应用端口扫描工具对当前主机进行端口扫描,并观察扫描结果。
三.状态检测实验
操作概述:分别对新建和已建的网络会话进行状态检测。
1.对新建的网络会话进行状态检测
(1)清空filter规则链全部内容。
iptables命令 iptables -F
(2)设置全部链表默认规则为允许。
iptables命令 iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
(3)设置规则禁止任何新建连接通过。
iptables命令 iptables -A INPUT -m state --state NEW -j DROP
(4)同组主机对当前主机防火墙规则进行测试,验证规则正确性。
2.对已建的网络会话进行状态检测
(1)清空filter规则链全部内容,并设置默认规则为允许。
(2)同组主机首先telnet远程登录当前主机,当出现“login:”界面时,暂停登录操作。
telnet登录命令 telnet 同组主机IP
(3)iptables添加新规则(状态检测)——仅禁止新建网络会话请求。
iptables命令 iptables -A INPUT -m state --state NEW -j DROP
或 iptables -I INPUT -m state --state NEW -j DROP
同组主机续步骤(2)继续执行登录操作,尝试输入登录用户名“guest”及口令“guestpass”,登录是否成功? 成功 。
同组主机启动Web浏览器访问当前主机Web服务,访问是否成功? 不成功。解释上述现象 添加的iptables命令仅对新建会话连接起到阻塞作用,对属于已建立会话连接的数据包不起作用,而telnet会话是已建连接 。
(4)删除步骤(3)中添加的规则。
iptables命令iptables -D INPUT -m state --state NEW -j DROP
或 iptables -D INPUT 1
(5)同组主机重新telnet远程登录当前主机,当出现“login:”界面时,暂停登录操作。
(6)iptables添加新规则(状态检测)——仅禁止已建网络会话请求。
iptables命令 iptables -A INPUT -m state --state ESTABLISHED -j DROP
或 iptables -I INPUT -m state --state ESTABLISHED -j DROP