接上一节
备份和还原
iptables-save > /opt/iptables.bak
iptables-restore < /opt/iptables.bak
snat和dnat
snat源地址转换
内网到外网 内网ip转换成可以访问外网的ip
内网的多个主机可以只有一个有效的公网ip地址访问外部网络
dnat 目的地址转发
外部用户,可以通过一个公网地址访问服务内部的私网服务。
私网的ip和公网ip做一个映射
snat源地址转换
iptables -t nat -A POSTROUTING -s 192.168.233.0/24 -o ens36 -j SNAT --to 10.0.0.10
-A POSTROUTING用于在包路由之后修改源地址(当包从内部网络路由到外部网络时)
-t nat 指定表为nat表
-A POSTROUTING A添加 离开本机之后规则
-s 指定源ip
-o指定输出网络设备
-j 控制类型 SNAT源地址
--to 指定整个网段 192.168.233.0/24 从ens36出去时做源地址转换 成 10.0.0.10
DNAT 目的地址转换
iptables -t nat -A PREROUTING -d 11.0.0.11 -i ens36 -p tcp --dport 80 -j DNAT --to 192.168.233.10
-A PREROUTING在路由决策之前修改目标地址
-d 11.0.0.11 指定做为目的地址转换的ip地址
-i从指定的设备进入本机
-p指定协议
--dport指定端口
-j DNAT使用目的地址转换
--to 192.168.233.10
外网想要访问内网的192.168.233.10:80的这个web服务。只需要访问11.0.0.11就可以访问内网的web服务。
12.0.0.100 > 11.0.0.11 > 192.168.233.10
linux当中如何抓包:
tcpdump linux自带的抓包工具 完全安装自带 最小化安装需要自己安装
静态和动态抓包
静态:
tcpdump tcp -i ens33 -t -s0 -c 10 and dst port 80 and src net 192.168.233.0/24 -w /opt/target.cap
tcp 指定抓包的协议 (tcp udp icmp) 第一个参数 可以不指定协议
-i 只抓经过指定设备(ens33)的包
-t:不显示时间戳
-s0:抓完整的数据包
-c10:抓几个数据包
dst port :指定抓包的目的端口
src net 192.168.233.0/24 :指定抓包的ip地址
写net代表网段
host代表主机(ip地址)
-w 保存指定路径
使用sz target.cap 把文件下载下来 可以直接用实体机 wireshark软件打开 分析
注意 如果要用wireshark对数据包进行分析, tcpdump在抓包时,要使用-s0,抓取完整格式, 否则wireshark无法分析。
动态抓包
tcpdump -i ens33 -s0 -w /opt/ens33.cap
firewalld
firewalld是centos7自带的 7以前的默认是iptables
firewalld是按照区域来进行划分 包过滤防火墙
public 公共区域(默认区域) 默认配置了ssh以及DHCPv6预定服务放通,其他拒绝
trusted 信任区域 允许所有的数据包放通
block 限制区域 拒绝所有
drop 丢弃区域 丢弃所有数据包
dmz 非军事区域 默认只允许ssh
home 家庭区域 默认只允许ssh
internal 内部区域 和home一样
external 外部区域 默认只允许ssh
work 工作区域 默认放通ssh