欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > 6、防火墙二

6、防火墙二

2025/12/14 3:55:18 来源:https://blog.csdn.net/qq_44894108/article/details/144203620  浏览:    关键词:6、防火墙二

自定义链

添加自定义链-N

如:在filter表中创建一个自定义链,链名custom

修改自定义链名-E

如:修改自定义链名custom成zw110

自定义链中加入规则-I

这时候192.168.254.12主机依然可以ping我们主机,说明规则还未生效,说明系统不识别。

插入到系统默认的五链-I

如:我们插入到INPUT链中后,发现规则开始生效了。

删除自定义链-X

删除自定义链,需要先删除五链中的规则,再删除自定义链的规则,最后才能删除自定义链

NAT-地址转换

SNAT和DNAT

SNAT:源地址转换

DNAT:目的地址转换

内网——外网:内网的ip不能直接和公网ip通信,需要要把内网地址转换成可以和公网ip通信的地址。

外网——内网:外网的ip不能直接和内网ip通信,需要要把外网地址转换成可以和内网ip通信的地址。

NAT实操

如我们使用三台虚拟机模拟NAT,zw1是内网,zw3是外网,zw2作为网关服务器,具体配置如下

zw1(内网):192.168.254.11

zw2(网关服务器):ens33(192.168.254.254)  ens36(12.0.0.254)

zw3(外网):12.0.0.10

第一步对zw2的操作:配置zw2的网卡,ens33作为内网网关,ens36作为外网网关,具体操作如下:

配置/etc/sysctl.conf文件:linux的内核的接口文件,修改配置内核的参数使之永久生效。

开启Linux服务器内核转发功能,并使之生效。

sysctl   -p       #立即生效

第二步对zw1的操作:配置zw1(内网)的网卡

          对zw3的操作:配置zw3(外网)的网卡

配置完三台网卡之后,再统一重启网卡和nginx服务,切记每做一步都需要进行检查是否成功。

第三步:

iptables -t nat -A POSTROUTING -s 192.168.254.0/24 -o ens37 -j SNAT --to 10.0.0.10

#从ens37设备出去的数据包且网段属于192.168.254.0,把这个网段地址统一转换成10.0.0.10

这时候,我们在内网主机zw1上访问12.0.0.10,这时候我们在公网主机zw3上查看nginx访问日志,可以看出我们映射的10.0.0.10的访问记录。

iptables -t nat -A PREROUTING -d 11.0.0.11 -i ens37 -p tcp --dport 80 -j DNAT --to 192.168.254.11:80

#所有从ens37进入本机的数据包,统一转换成11.0.0.11,访问端口是80,统一映射为访问192.168.254.11:80

这时候我们使用外网zw3访问11.0.0.11,就是访问内网zw1的nginx。

抓包-tcpdump

静态抓包

tcpdump tcp -i ens33 -t -s0 -c 10 and dst port 80 and src net 192.168.254.0/24 -w /opt/target.cap

  • tcp:协议
  • -i   ens33:指定设备名称,从哪个设备经过的数据包
  • -t:不显示时间戳
  • -s0:默认抓包的长度是68字节,s0就是抓取完整的数据包
  • -c   10:抓取10个数据包
  • and   dst   port   80:目标端口80和80端口相关的数据包
  • and   src   net:源ip是192.168.233.0/24这个网段的ip地址
  • -w:抓包的结果保存到指定目标文件z中
  • .cap:tcpdump只是抓取数据包的内容,不能在linux中查看,需要用wireshark查看

如我们在192.168.254.11主机上抓包,并访问12.0.0.10主机的nginx,这时候会产生一个target.cap文件,我们把它下载到桌面,用wireshark打开查看。

通过抓包可以看出,我们源ip和端口对目的ip和端口的建立连接情况。

动态抓包

tcpdump -i ens33 -s0 -w /opt/ens33.cap

使用动态抓包具体操作和静态一样。

firewalld

firewalld是根据区域来进行配置不同的规则,和硬件防火墙很相似。

区域:

  1. trusted:信任区,所有的流量都可以进入
  2. public:公共区域,默认区,只允许系统默认的规则(ssh和icmp协议),其他流量传入全部拒绝。
  3. external:外部区域,只允许系统默认的规则(ssh和icmp协议),其他流量传入全部拒绝。经过此区域的流量可以将ipv4的地址进行伪装。
  4. home:家庭区域,只允许系统默认的规则(ssh和icmp协议,dhcpv6),其他流量传入全部拒绝。
  5. inertal:内部区域,只允许系统默认的规则(ssh和icmp协议,dhcpv6),其他流量传入全部拒绝。
  6. work:工作区域,只允许系统默认的规则(ssh和icmp协议,dhcpv6),其他流量传入全部拒绝。
  7. block:限制区,拒绝所有流量的传入
  8. drop:丢弃区域,拒绝所有流量的传入,没有回显信息
  9. DMZ:非军事区域,只允许系统默认的规则(ssh),其他流量传入全部拒绝。

首先要下载软件,装了epel-release,才能装nginx。

yum -y install epel-release

yum -y install nginx

查看系统的默认区域

firewall-cmd --get-default-zone

firewall-cmd --list-all

修改默认区域

如修改默认区域,改成block区域

firewall-cmd --set-default-zone=block

添加http协议到公共区域

这样我们在不关闭防火墙情况下,也能访问http协议和ftp协议

从公共区域移除http协议

永久生效

添加端口到公共区域

表示添加tcp80端口到公共区域

表示添加tcp80至3306端口到公共区域

从公共区域移除端口协议

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词