网站所需的主要功能,WordPress判断设备,北京100强公司排行榜,手机网站模板代码一、现状说明
在上一节中#xff0c;我们将两个网段的机器#xff0c;通过中间机器的网络转发#xff0c;能达到互通。再来回顾一下这个网络连接的图 这一节#xff0c;我们将通过设置机器B的iptables规则#xff0c;来做一些防火墙实验 机器A模拟公网的一台服务器#…一、现状说明
在上一节中我们将两个网段的机器通过中间机器的网络转发能达到互通。再来回顾一下这个网络连接的图 这一节我们将通过设置机器B的iptables规则来做一些防火墙实验 机器A模拟公网的一台服务器机器C模拟我们内网的一台机器。机器B充当路由器的角色
二、前置条件
2.1 三台机器的firewalld关闭以免影响实验
[rootlocalhost ~]# systemctl stop firewalld systemctl disable firewalld2.2 为了不影响实验效果我们先把机器B的iptables规则全清空
[rootlocalhost ~]# iptables -F
[rootlocalhost ~]# iptables -nvL
Chain INPUT (policy ACCEPT 239 packets, 29542 bytes)pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 6 packets, 504 bytes)pkts bytes target prot opt in out source destination 2.3 机器A安装httpd
由于开始我们的主机C设置的是一个hostOnly网络是连不上互联网的所以我们先连上互联网。把httpd安装上。先把主机A关机。添加一个nat网卡
这里的enp0s3就是nat网卡通过启用enp0s3就可以连上外网了 可以用浏览器试着访问百度发现网络已经通了 安装httpd
[rootlocalhost ~]# yum install httpd
[rootlocalhost ~]# systemctl restart httpd
[rootlocalhost ~]# curl -X GET http://localhost安装好httpd以后禁用enp0s3的网卡 2.4 启动主机C的网络服务
由于重启了主机所以重新把C-A的路由再设置一下
route add -net 192.168.56.0/24 gw 10.1.0.11把主机B的iptables先清空避免存在的规则影响实验 [rootlocalhost ~]# iptables -F 清空B的规则后可以尝试用主机C ping A,可以发现其实是通的
三、连通性实验
先试一下A和C互ping是不是通的保证网络通畅的前提下执行下面的操作 3.1 先拒绝所有转发 在主机B中FORWARD链的末端添加一条默认拒绝的规则然后将”放行规则”设置在这条”默认拒绝规则”之前即可
[rootlocalhost ~]# iptables -A FORWARD -j REJECT这时候主机A和主机C已经不能互通了 A-Cping 不通A-B 能ping通因为有交换机直连
C-Aping 不通C-B 能ping通因为有交换机直连 3.2 设置主机B转发流量 如果我们想要使内部的主机C能够访问外部主机A10.1.0.10的web服务我们应该怎样做呢没错我们需要在FORWARD链中放行内部主机对外部主机的web请求只需如下配置即可
iptables -A FORWARD -j REJECT
iptables -I FORWARD -s 10.1.0.0/16 -p tcp --dport 80 -j ACCEPT
iptables -I FORWARD -s 10.1.0.0/16 -p tcp --dport 22 -j ACCEPT
iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT从主机C(10.1.0.10)访问主机A(192.168.56.104) curl -X GET http://192.168.56.104:80 通了
四、总结
#如果想要iptables作为网络防火墙iptables所在主机开启核心转发功能以便能够转发报文。
#使用如下命令查看当前主机是否已经开启了核心转发0表示未开启1表示已开启
cat /proc/sys/net/ipv4/ip_forward
#使用如下两种方法均可临时开启核心转发立即生效但是重启网络配置后会失效。
方法一echo 1 /proc/sys/net/ipv4/ip_forward
方法二sysctl -w net.ipv4.ip_forward1
#使用如下方法开启核心转发功能重启网络服务后永久生效。
配置/etc/sysctl.conf文件centos7中配置/usr/lib/sysctl.d/00-system.conf文件在配置文件中将 net.ipv4.ip_forward设置为1#由于iptables此时的角色为网络防火墙所以需要在filter表中的FORWARD链中设置规则。
#可以使用白名单机制先添加一条默认拒绝的规则然后再为需要放行的报文设置规则。
#配置规则时需要考虑方向问题针对请求报文与回应报文考虑报文的源地址与目标地址源端口与目标端口等。
#示例为允许网络内主机访问网络外主机的web服务与sshd服务。iptables -A FORWARD -j REJECT
iptables -I FORWARD -s 10.1.0.0/16 -p tcp --dport 80 -j ACCEPT
iptables -I FORWARD -d 10.1.0.0/16 -p tcp --sport 80 -j ACCEPT
iptables -I FORWARD -s 10.1.0.0/16 -p tcp --dport 22 -j ACCEPT
iptables -I FORWARD -d 10.1.0.0/16 -p tcp --sport 22 -j ACCEPT#可以使用state扩展模块对上述规则进行优化使用如下配置可以省略许多回应报文放行规则。iptables -A FORWARD -j REJECT
iptables -I FORWARD -s 10.1.0.0/16 -p tcp --dport 80 -j ACCEPT
iptables -I FORWARD -s 10.1.0.0/16 -p tcp --dport 22 -j ACCEPT
iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT