防火墙
ping(网络测试工具,测试主机之间的可达性)原理: 发送一些小的网络数据包(ICMP数据包)到目标主机,并等待目标主机返回一个响应(通常是回显应答 Echo Reply)。
ssh(一种安全的远程访问协议)原理: 连接到远程主机时,SSH客户端和服务器之间会进行密钥交换以建立一个安全的通道,SSH使用公钥加密和私钥解密
来确保通信的保密性和完整性
一、包过滤防火墙规则配置实验
实验目标:
内部网络(IP:192.168.110.0/24)可以PING外部设备(192.168.100.0/24),但是外部设备不能PING内部设备。
使用iptables
ExterNet:192.168.100.110
Firewall:
192.168.100.1
192.168.110.1
IntraNet:192.168.110.110
Chain INPUT :如果数据包的目的地址是本机,则系统将数据包送往Input链。如果通过规则检查,则该包被发给相应的本地进程处理;如果没有通过规则检查,系统就会将这个包丢掉。
Chain FORWARD :如果数据包的目的地址不是本机,也就是说,这个包将被转发,则系统将数据包送往Forward链。如果通过规则检查,则该包被发给相应的本地进程处理;
如果没有通过规则检查,系统就会将这个包丢掉。
Chain OUTPUT :如果数据包是由本地系统进程产生的,则系统将其送往Output链。如果通过规则检查,则该包被发给相应的本地进程处理;如果没有通过规则检查,系统就会将这个包丢掉。
拒绝请求包或者拒绝响应包即可
拒绝请求包
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROPiptables -A FORWARD -p ICMP --icmp-type 8 -s 192.168.110.0/24 -d 192.168.100.0/24 -j ACCEPT
iptables -A FORWARD -p ICMP --icmp-type 0 -s 192.168.100.0/24 -d 192.168.110.0/24 -j ACCEPT
iptables -A FORWARD -p ICMP --icmp-type 8 -s 192.168.100.0/24 -d 192.168.110.0/24 -j DROPiptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP拒绝响应包
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROPiptables -A FORWARD -p ICMP --icmp-type 8 -s 192.168.110.0/24 -d 192.168.100.0/24 -j ACCEPT
iptables -A FORWARD -p ICMP --icmp-type 0 -s 192.168.100.0/24 -d 192.168.110.0/24 -j ACCEPT
iptables -A FORWARD -p ICMP --icmp-type 0 -s 192.168.110.0/24 -d 192.168.100.0/24 -j DROP
思考题:
若在实验步骤6中,设置默认规则,将ICMP出入报文设置为Accept放行,如何实现该功能?请设计实验,完成实验并记录。
只使用转发链,INPUT 与 OUTPUT 链不受 ping 的影响
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A FORWARD -p ICMP --icmp-type 8 -s 192.168.110.0/24 -d 192.168.100.0/24 -j ACCEPT
iptables -A FORWARD -p ICMP --icmp-type 0 -s 192.168.100.0/24 -d 192.168.110.0/24 -j ACCEPT
iptables -A FORWARD -p ICMP --icmp-type 8 -s 192.168.100.0/24 -d 192.168.110.0/24 -j DROP
二、防火墙NAT路由转换配置实验
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPTiptables -t nat -A POSTROUTING -s 192.168.110.0/24 -j MASQUERADE
或
iptables -t nat -A PREROUTING -p tcp -d 192.168.100.1 --dport 22 -j DNAT --to-destination 192.168.110.110:22vim /etc/ssh/ssh_config
注释掉 PermitRootLogin
重启ssh服务命令 service sshd restart内部设备访问外部设备:
ssh root@192.168.100.110
连接成功后查看ssh连接发起方IP:
who
外部设备访问内部设备:
ssh root@192.168.100.1
连接成功后查看SSH连接到的设备IP:
ip addrservice iptables save
service iptables restart
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -t nat -A POSTROUTING -s 192.168.110.0/24 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -d 192.168.100.1 --dport 22 -j DNAT --to-destination 192.168.110.110:22