赞
踩
局域网主机共享单个公网IP地址接入Internet ,私有IP不能在Internet中正常路由
源地址转换
修改数据包的源地址
局域网各主机已正确设置IP地址、子网掩码、默认网关地址
Linux网关开启IP路由转发
echo 1 >/proc/sys/net/ipv4/ip_forward
或
sysctl -w net.ipv4.ip forward=1
vim /etc/ sysctl. conf
net. ipv4.ip_ forward = 1 ###将此行写入配置文件
sysctl -P ###读取修改后的配置
#配置SNAT策略,实现snat功能,将所有192.168.100.0这个网段的ip的源ip改为10.0.0.1
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j SNAT --to 10.0.0.1
可换成单独IP 出站外网网卡 外网IP
或
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j SNAT --to-source 10.0.0.1-10.0.0.10
内网IP 出站外网网卡 外网IP或地址池
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
实验准备
web服务器ip:192.168.100.102(nat1)、关闭防火墙和selinux、开启http服务
网关服务器内网ip:192.168.100.100(nat1);外网ip:12.0.0.1(nat2)、关闭防火墙和selinux、开启http服务
win10客户端ip:12.0.0.100(nat2)
VMware的虚拟网络编辑器中默认nat模式网段:192.168.100.0,nat2模式网段:12.0.0.0
在Internet中发布位于局域网内的服务器
修改数据包的目的地址
局域网的服务器能够访问Internet
网关的外网地址有正确的DNS解析记录
Linux网关开启IP路由转发
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysct1 -p
#把从ens33进来的要访问web服务的数据包目的地址转换为 192.168.100.102
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp--dport 80 -j DNAT --to 192.168.100.102
或
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp--dport 80-j DNAT --to-destination 192.168.100.102
入站 外网网卡 外网ip 内网服务器ip
#发布局域网内部的OpenSSH服务器, 外网主机需使用250端口进行连接
iptables-t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp--dport 250-jDNAT --to 192.168.100.102:22
#在内网上安装httpd并开启服务
[root@localhost yum.repos.d]# yum install -y httpd
[root@localhost yum.repos.d]# systemctl start httpd
#关闭防火墙和selinux
[root@localhost yum.repos.d]# systemctl stop firewalld.service
[root@localhost yum.repos.d]# setenforce 0
#先清空规则
[root@localhost yum.repos.d]#iptables -F -t nat
#添加规则
[root@localhost yum.repos.d]#iptables -t nat -A PREROUTING -i ens38 -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to 192.168.100.102
#查看规则
[root@localhost yum.repos.d]#iptables -nL -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp – 0.0.0.0/0 12.0.0.1 tcp dpt:80 to:192.168.100.102
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
#在外网服务器上
[root@localhost ~]# curl 12.0.0.1
#在内网服务器上
[root@localhost yum.repos.d]# tail /etc/httpd/logs/access_log
127.0.0.1 - - [02/Nov/2021:18:05:31 +0800] "GET / HTTP/1.1" 403 4897 "-" "curl/7.29.0"
12.0.0.100 - - [02/Nov/2021:18:19:45 +0800] "GET / HTTP/1.1" 403 4897 "-" "curl/7.29.0"
主机型防火墙主要使用INPUT、OUTPUT链,设置规则时一般要详细的指定到端口;
网络型防火墙主要使用FORWARD链,设置规则时很少去指定到端口,一般指定到IP地址或者到网段即可
防火墙规则的备份和还原
备份的原因:命令行设置防火墙规则之后,重启后失效,规则被清空,则直接导出备份文件即可
导出(备份)所有表的规则.
iptables-save > /opt/ipt.txt
导入:
iptables-restore < /opt/ipt.txt
截取服务器的网络后,下载到本地,双击自动打开wireshark查看详细信息
【上传rz,下载sz ;工具:yum -y install lrzsz】
tcpdump tcp -i ens33 -t -s 0 -C 100 and dst port ! 22 and src net 192.168.110/24 -w ./target.cap
(1)tcp: ip icmp arp rarp和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
(2)-i ens33 :只抓经过接口ens33的包
(3)-t :不显示时间翟戳
(4)-s 0:抓取数据包时默认抓取长度为68字节。加上-s0后可以抓到完整的数据包
(5)-c 100:只抓取100个数据包
(6)dst port ! 22 :不抓取目标端口是22的数据包
(7)src net 192.168.1.0/24 :数据包的源网络地址为192.168.1.0/24
(8)-w ./target.cap :保存成cap文件,方便用ethereal (即wireshark)分析
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。