-
通过路由转发配置网络型防火墙
主机名 | 网卡、IP地址、网关设置 |
---|---|
host10 | ens32:192.168.1.10,网关指向防火墙外网IP:192.168.1.100 |
iptables | ens32内网IP:192.168.0.40,ens34外网IP:192.168.1.100 |
web-11 | ens32:192.168.0.11,网关指向防火墙内网IP:192.168.0.40 |
-
防火墙主机添加网卡并设置IP,IP设置为:192.168.0.100/24
nmtui 修改网卡IP地址(交互) #开启路由转发功能 [root@iptables ~]# echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf [root@iptabels ~]# sysctl -p //加载配置立即生效 net.ipv4.ip_forward = 1 #查看路由转发 [root@iptables ~]# cat /proc/sys/net/ipv4/ip_forward 1
-
第二台服务器提供网站服务:web26将网关指向192.168.0.11
#安装httpd服务 [root@web26 ~]# yum -y install httpd #修改默认首页 [root@web26 ~]# echo web26 > /var/www/html/index.html [root@web26 ~]# systemctl start httpd [root@web26 ~]# systemctl status httpd
-
第三台为客户端:client将IP修改为192.168.1.24网段,将网关指向防火墙主机的第二块网卡:192.168.1.100
-
访问测试:curl http://192.168.0.26
-
防火墙主机配置规则:拒绝192.168.1.10访问80端口
[root@iptables ~]# iptables -I FORWARD -s 192.168.1.10 -p tcp --dport 80 -j DROP #客户端192.168.1.30访问测试: curl http://192.168.0.20 #拒绝所有客户端地址访问内网80端口 [root@iptables ~]# iptables -t filter -I FORWARD -p tcp --dport 80 -j REJECT [root@iptables ~]# iptables -F
防火墙扩展
-
命令格式:iptables 选项 链名 -m 扩展模块 --具体扩展条件 -j 动作
#根据MAC地址封锁主机,安装nmap扫描获取地方IP的MAC地址 [root@iptables ~]# yum -y install nmap #扫描对方主机IP [root@iptables ~]# nmap 192.168.28 Starting Nmap 6.40 ( http://nmap.org ) at 2020-09-25 17:12 CST Nmap scan report for 192.168.0.111 Host is up (0.00044s latency). //当前主机状态 MAC Address: 00:0C:29:CA:87:81 (VMware) //MAC地址 Nmap done: 1 IP address (1 host up) scanned in 4.05 seconds #通过MAC地址限制对方访问 [root@iptables ~]# iptables -t filter -I FORWARD -p tcp --dport 80 -m mac --mac-source 00:0C:29:D5:29:0F -j REJECT
基于多端口设置过滤规则
[root@iptables ~]# iptables -t filter -I FORWARD -p tcp -m multiport --dports 20,21,80,443 -j ACCEPT #multiport :多端口模块 #根据IP范围设置封锁规则 [root@iptables ~]# iptables -t filter -I FORWARD -p tcp --dport 80 -m iprange --src-range 192.168.1.20-192.168.1.30 -j REJECT #iprange模块:ip范围模块 #--src-range:源IP #--dst-range:目标IP
配置SNAT实现共享上网
-
通过防火墙规则,允许局域网中的主机访问外网
主机名 | 网卡、IP地址、网关 |
---|---|
内部主机:client25 | ens32:192.168.1.25,网关:192.168.1.100 |
内部防火墙:iptables | ens32外网IP:192.168.0.80,ens34内网IP:192.168.1.100 |
外部主机:web26 | ens32:192.168.0.26,网关:192.168.0.80 |
#实现192.168.1.25转换为192.168.0.80 [root@iptables ~]# iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -p tcp -j SNAT --to-source 192.168.0.80 #POSTROUTING:路由后链 #-s:指定源地址为192.168.1.0网段的地址 #-p:想要通过tcp协议 #--dport:访问目标的80端口时 #-j:SNAT转换 #--to-source:转换源地址为192.168.0.26 #web1动态查看访问日志 [root@web26 ~]# tail -f /var/log/httpd/access_log client 192.168.1.25访问网站 curl http://192.168.0.26 #所有iptables规则都是临时规则,如果需要永久保留规则需要执行如下命令 [root@iptables ~]# service iptables save