iptables实验步骤

一.包过滤实验
   
操作概述:为了应用iptables的包过滤功能,首先我们将filter链表的所有链规则清空,并设置链表默认策略为DROP(禁止)。通过向 INPUT规则链插入新规则,依次允许同组主机icmp回显请求、Web请求,最后开放信任接口eth0iptables操作期间需同组主机进行操作验 证。
   
1)清空filter链表所有规则链规则。
      iptables
命令   
iptables -t filter -F 
   
2)同组主机使用/opt/ExpNIS/NetAD-Lab/Tools/portscan/nmap工具对当前主机进行端口扫描。
      nmap
端口扫描命令 
nmap -sS -T5 同组主机IP   
    
「说明」 nmap具体使用方法可查看实验13|练习一|实验原理。

    3)查看INPUTFORWARDOUTPUT链默认策略。
    iptables
命令 
iptables -t filter -L    
   
4)将INPUTFORWARDOUTPUT链默认策略均设置为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包过滤规则,并应用日志生成工具ULOGiptables捕获的网络事件进行响应。
    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  
   
3iptables添加新规则(状态检测)——仅禁止新建网络会话请求。
    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:”界面时,暂停登录操作。
   
6iptables添加新规则(状态检测)——仅禁止已建网络会话请求。

iptables命令            iptables -A INPUT -m state --state ESTABLISHED -j DROP   

                iptables -I INPUT -m state --state ESTABLISHED -j DROP