iptables的源地址、目标地址转换

目录

一、实验准备

二、配置web服务器

三、配置web防火墙网卡

四、配置客户机网卡

五、测试

1、开启防火墙功能,设置源地址转换,通过改变我客户机的地址身份为web服务器同网段来实现访问

2、通过改变目标地址(客户机)的地址为web同网段来实现


一、实验准备

二、配置web服务器

配置网卡2

vim /etc/sysconfig/network-scripts/ifcfg-ens160

TYPE=Ethernet

BO0TPROTO=static

NAME=ens160

DEVICE=ens160

ONB00T=yes

IPADDR=192.168.200.100

PREFIX-24

#########此处不设置网关,应为在下步实验中可以用防火墙的原地址转换来是客户机访问到web

#########如果此处设置了网关,并作为防火墙ens224的IP,那么客户机直接就能访问到web,达不到本次实验的效果

systemctl restart network

安装、测试httpd

三、配置web防火墙网卡

配置网卡一

vim /etc/sysconfig/network-scripts/ifcfg-ens160

TYPE=Ethernet

BOOTPROTO=static

NAME=ens160

DEVICE=ens160

ONBOOT=yes

IPADDR=192.168.115.2 ##此处的IP设为防火墙的ens160的IP,用于客户机能访问防火墙

PREFIX=24

配置网卡二

cp /etc/sysconfig/network-scripts/ifcfg-ens160 /etc/sysconfig/network-scripts/ifcfg-ens224

vim /etc/sysconfig/network-scripts/ifcfg-ens224

TYPE=Ethernet

BOOTPROTO=static

NAME=ens224

DEVICE=ens224

ONBOOT=yes

IPADDR=192.168.200.2

PREFIX=24

重启网络 systemctl restart network

开启路由转发

root@iptables \~# cat << EOF >> /etc/sysctl.conf

> net.ipv4.ip_forward = 1

>

> EOF

root@iptables \~# sysctl -p

net.ipv4.ip_forward = 1

四、配置客户机网卡

vim /etc/sysconfig/network-scripts/ifcfg-ens160

TYPE=Ethernet

BOOTPROTO=static

NAME=ens160

DEVICE=ens160

ONBOOT=yes

IPADDR=192.168.115.100

PREFIX=24

GATEWAY=192.168.115.2

DNS1=192.168.115.2

systemctl restart network

五、测试

测试防火墙能否ping通客户机和web

1、开启防火墙功能,设置源地址转换,通过改变我客户机的地址身份为web服务器同网段来实现访问

systemctl start firewalld.service

iptables -t nat -A POSTROUTING -s 192.168.115.0/24 -o ens224 -j SNAT --to-source 192.168.200.2

##192.168.115.0网段的数据从ens224网卡进入后,把原地址改为192.168.200.2

现在反过来用web来ping客户机,结果是失败的,那么该怎么操作呢?

2、通过改变目标地址(客户机)的地址为web同网段来实现

首先为了体现效果,在客户机上上安装httpd服务

yum -y install httpd

systemctl restart httpd

echo "i am client" > /var/www/html/index.html

######设置防火墙

iptables -t nat -I PREROUTING -d 192.168.200.2 -p tcp --dport 80 -j DNAT --to-destination 192.168.115.100

表示路由前访问192.168.200.2并且目标是tcp 80 端口的都会被转换目标地址为192.168.115.100(也就是我们的客户机)

相关推荐
九英里路1 小时前
protobuf快速上手
网络·c++·中间件·json·谷歌·序列化·protobuf
女神下凡7 小时前
芯参谋(107):杰理AC_中科蓝讯_开发指南
linux·服务器·网络·单片机·嵌入式硬件
爱和冰阔落12 小时前
【Linux网络】TCP 半包粘包怎么解决?从长度报头、JSON 拆包到网络计算器完整实战
linux·运维·网络·tcp/ip
say_fall13 小时前
【Linux网络编程】UDP套接字编程:系统编程组件、基础回显服务、InetAddr与地址转换、翻译服务与线程池聊天室
linux·服务器·网络·udp·vr
我不会插花弄玉1 天前
6.传输层协议UDP【由浅入深-网络】
网络·网络协议·udp
火云代理1 天前
更换网络后为什么会退出登录?分清 IP、Cookie 与会话的关系
服务器·网络·网络协议·tcp/ip·php·ip
xbzb1 天前
容器 IP 每次重建都变?docker network 五种模式与自定义网桥固定地址
网络·docker·容器·ip·network·固定
火云代理1 天前
同一个网站,有的网络能打开、有的打不开?认识 IPv4 与 IPv6 的访问差异
服务器·网络·网络协议·tcp/ip·测试工具·php·状态模式
坤坤子吖1 天前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
火云代理1 天前
Python 使用代理 IP 前,先弄清 Requests 的配置来源与验证方法
网络·python·网络协议·tcp/ip·ip