snat、dnat和firewalld

目录

概述

SNAT源地址转换

DANT目的地址转换

抓包

firewalld

端口管理


概述

snat :源地址转换

内网------外网 内网ip转换成可以访问外网的ip

也就是内网的多个主机可以只有一个有效的公网ip地址访问外部网络

DNAT:目的地址转发

外部用户,可以通过一个公网地址访问服务内部的私网服务

也就是私网的IP和公网IP做一个映射

SNAT源地址转换

步骤:

1.修改路由器ens33的IP地址,改成内网网关

2.修改路由器ens36的IP地址,改成外网网关

3.修改外网的IP地址和网关

4.修改内网的网关

5.配置路由器的内核参数文件

6.设置nat表的规则

-t nat 指定表为nat表

-A POSTROUING 离开本机 -A添加

-s 指定源IP

-o 指定输出网络设备

-j 控制类型

--to 指定整个网段192.168.233.0/24 从ens36出去时,做源地址转换,转换成10.0.0.10

7.重启网卡 systemctl restart network

8.查看外网的日志

DANT目的地址转换

1.路由器设置规则

-d 11.0.0.11 指定做为目的地址转换的IP地址

-i 从指定的设备进入本机

-p指定协议

-j DNAT 使用目的地址转换

--to 192.168.233.10

外网想要访问内网的192.168.233.10:80的这个web服务,只需要访问11.0.0.11就可以访问内网的web服务

bash 复制代码
iptables -t nat -A PREROUTING -d 10.0.0.10 -i ens36 -p tcp --dport 80 -j DNAT --to 20.0.0.10:80

抓包

在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 指定抓包的协议 udp icmp 第一个参数,可以不指定协议

-i 只抓经过指定设备的包

-t 不显示时间戳

-s0 抓完整的数据包

-c 10 指定抓包的目的端口

dst port 指定抓包的目的端口

src net 192.168.233.0/24 指定抓包的IP地址

net 网段

host 主机(IP地址)

-w 保存指定路径

bash 复制代码
tcpdump tcp -i ens33 -t -s0 -c 10 and dst port 80 and src net 20.0.0.0/24 -w /opt/target.cap

动态

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

如果要用wireshark对数据包进行分析,tcpdump在抓包时,要使用-s0抓取完整格式,否则wireshark无法分析

bash 复制代码
tcpdump -i ens33 

firewalld

ubantu的不同 ufw ubantu firewalld开启防火墙 ufw ubantu firewalld 关闭防火墙

它是按照区域来划分的

firewall-config

public:公共区域,默认配置了ssh以及DHCPv6预定服务是放通的,其他全部都是拒绝,默认区域

trusted:信任区域,允许所有的数据包放通

block:限制区域,拒绝所有

drop:丢弃区域,丢弃所有数据包

dmz:非军事区域,默认只运行ssh通过

home:家庭区域。默认只允许ssh通过

internal:内部区域,和home一模一样

external:外部区域,也是默认允许ssh通过,其他全部拒绝

work:工作区域,默认允许ssh通过

firewall-cmd 命令行工具

firewall-cmd --get-default-zone 查看当前系统的默认区域

firewall-cmd --list-all 查看当前区域设定的规则

firewall-cmd --set-default-zone=block 切换区域

firewall-cmd --list-services 查看区域内允许访问的服务

dhcpv6-client 获取ipv6的地址

interfaces: ens33 该区域默认使用的网卡设备

firewall-cmd --zone=pulic --change-interface=ens36 修改区域使用的网卡设备

firewall-cmd --add-service=http --zone=pulic 添加服务

firewall-cmd --add-servicr={ftp,nfs,http} --zone=pulic --permanent 添加多个服务并且永久生效

firewall-cmd --remove-servicr={ftp,nfs,http} --zone=pulic --permanent 删除多个服务

firewall-cmd --reload 重启

查看当前系统的默认区域

bash 复制代码
firewall-cmd --get-default-zone

查看当前区域设置的规则

bash 复制代码
firewall-cmd --list-all

切换当前系统的默认区域

bash 复制代码
firewall-cmd --set-default-zone=block
firewall-cmd --set-default-zone=drop

查看区域内允许访问的服务

bash 复制代码
firewall-cmd --list-service
firewall-cmd --list-services
#两个都行,效果一样

修改区域默认使用的网络设备

bash 复制代码
firewall-cmd --zone=public --change-interface=ens36
firewall-cmd --zone=home --remove-interface=ens36

添加服务到默认域中

bash 复制代码
firewall-cmd --add-service=http --zone=public

多个服务,永久添加

bash 复制代码
firewall-cmd --add-service={ftp,nfs,http} --zone=public --permanent
#--permanent 永久添加

删除服务

bash 复制代码
firewall-cmd --remove-service=http --zone=public

重新加载

bash 复制代码
firewall-cmd --reload

端口管理

firewall-cmd --zone=pulic --add-port=80/tcp 添加端口

firewall-cmd --zone=pulic --add-port=80/tcp --permanent 永久生效

fierwall-cmd --add-source=192.168.233.20 添加源地址

添加端口到默认域中

bash 复制代码
firewall-cmd --zone=public --add-port=80/tcp

添加端口并指定协议,端口在前协议在后,用 / 分割

bash 复制代码
firewall-cmd --zone=public --add-port={80,21,3306,22}/tcp

删除端口

bash 复制代码
firewall-cmd --zone=public --remove-port=80/tcp

添加源IP

bash 复制代码
firewall-cmd --zone=block --add-source=192.168.233.20
firewall-cmd --get-active-zone
相关推荐
zzzzzz31019 小时前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode19 小时前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220701 天前
如何搭建本地yum源(上)
运维
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz4 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工4 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
网络研究院5 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智5 天前
ARP代理--工作原理
运维·网络·arp·arp代理