自定义链:iptables还可以做地址转换
SNAT:源地址转换,内网访问外网,内网的IP地址转换成可以和外网通信的IP地址
DNAT:目的地址转换,内部地址映射到一个或者是一组公网地址,将内部私网地址映射成公网地址,公网地址可以直接对外提供访问服务。
SNAT和DNAT核心:就是地址转换
内到外,要换源
外到内,转目的
三台服务器
test1:内网服务器192.168.246.10
test2:网关服务器192.168.246.11
test3:外网服务器12.0.0.10
/etx/sysctl.conf修改内核参数的文件,可以使参数配置立刻生效。
iptables -t nat -A POSTROUTING -s 192.168.246.0/24 -o ens36 -j SNAT --to 10.0.0.10
iptables:固定格式开头
-t nat:使用地址转换表
-A POSTROUTING:数据包离开本机的规则
-s 192.168.246.0/24:整个网段作为源ip地址
-o ens33:数据包流出本机的设备
-j SNAT:做源地址转换
--to:转换成10.0.0.10
iptables -t nat -A PREROUTING -d 11.0.0.11 -i ens36 -ptcp --dport 80 -j DANT --to 192.168.246.10:80
-t nat:使用地址转换表
-A PREROUTING:进入本机之后,数据包做地址转换
-d:指定目的地址:11.0.0.11
-p tcp:指定协议
--dport:目的端口,80
-j DNAT:控制类型,目的地址转换
--to 192.168.246.10:80访问11.0.0.11就等于请求内网192.168.246.10:80的httpd服务。
如何在linux系统中对网络抓包?
tcpdump linux自带的抓包工具
两种方式:
1、静态抓包,指定抓多少个数据包
2、动态抓包,想抓多少抓多少,除非手动停止
tcpdump tcp -i ens33 -t -s0 -c 10 and dst port 80 and src net 192.168.246.0/24 -w /opt/wuke.cap
tcpdump抓包命令
tcp:指定协议
-i ens33:只抓经过ens33的数据包
-t:不显示时间戳
-s0:抓取完整的数据包,默认只抓64字节的数据包
-c 10:只抓10的数据包
dst port 80:抓取的目标端口是80
src net 192.168.246.0/24:抓取数据包的源地址。
-w:指定抓包文件的位置
tcpdump -i ens33 -s0 -w /opt/wuke1.cap
block限制区域,所有流呈都会被拒绝
dmz 隔离区域,也叫非军事区,只会允许预定服务,ssh等系统预设服务,其余都会拒绝
drop丢弃所有传入流量,而且没有任何响应
external外部区域,允许系统预设的服务,ssh,其他的全部拒绝
home家庭区域,只允许预设的服务,其他的全部拒绝
internal内部区域,和家庭区域一样。
public公共区域,也是firewalld默认区域,允许预设服务ssh,其他的全部拒绝
trusted信任区域,允许所有的传入流量
work工作区域,允许预定义服务的流量传入,其他的全部拒绝