当前位置: 首页 > news >正文

NAT网络地址转换

SNAT - 源地址转换

SNAT主要用于内网访问外网,将内网私有IP转换为公网IP。

# 基础SNAT配置
iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -j SNAT --to-source 172.8.7.1# 多IP负载均衡
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 202.96.1.1-202.96.1.5# 指定出口接口的SNAT
iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j SNAT --to-source 172.8.7.1# 基于端口的SNAT
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -p tcp -j SNAT --to-source 172.8.7.1:1024-65535

DNAT - 目标地址转换

DNAT主要用于外网访问内网服务,实现端口映射和负载均衡。

# Web服务器映射
iptables -t nat -I PREROUTING -d 172.8.7.1 -p tcp --dport 80 -j DNAT --to-destination 10.1.1.2:80
iptables -t nat -I PREROUTING -d 172.8.7.1 -p tcp --dport 443 -j DNAT --to-destination 10.1.1.2:443# 数据库服务映射
iptables -t nat -A PREROUTING -d 172.8.7.1 -p tcp --dport 3306 -j DNAT --to-destination 10.1.1.3:3306# 负载均衡配置
iptables -t nat -A PREROUTING -d 172.8.7.1 -p tcp --dport 80 -m statistic --mode nth --every 2 --packet 0 -j DNAT --to-destination 10.1.1.2:80
iptables -t nat -A PREROUTING -d 172.8.7.1 -p tcp --dport 80 -j DNAT --to-destination 10.1.1.3:80# 配置对应的SNAT(DNAT通常需要配套SNAT)
iptables -t nat -A POSTROUTING -s 10.1.1.0/24 -j SNAT --to-source 172.8.7.1

MASQUERADE - 动态源地址转换

MASQUERADE适用于动态IP环境,自动使用出口网卡的IP地址。

# 基础MASQUERADE配置
iptables -t nat -I POSTROUTING -s 10.1.1.0/24 -o ens33 -j MASQUERADE# 多网段配置
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth1 -j MASQUERADE# 基于协议的MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -p tcp -o ens33 -j MASQUERADE

REDIRECT - 本地端口重定向

# HTTP到HTTPS重定向
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080# 透明代理配置
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 3128# 端口映射
iptables -t nat -A PREROUTING -p tcp --dport 8000 -j REDIRECT --to-ports 80# 注意:REDIRECT只能用于PREROUTING和OUTPUT链

现代防火墙管理 - firewalld

firewalld基础操作

# 查看防火墙状态
systemctl status firewalld
firewall-cmd --state# 查看当前区域
firewall-cmd --get-default-zone
firewall-cmd --get-active-zones# 查看网卡所在区域
firewall-cmd --get-zone-of-interface=ens33# 列出当前区域配置
firewall-cmd --list-all
firewall-cmd --zone=public --list-all

服务和端口管理

# 添加服务(临时)
firewall-cmd --add-service=http
firewall-cmd --add-service=https
firewall-cmd --add-service=ssh# 添加服务(永久)
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=mysql --permanent# 添加端口
firewall-cmd --add-port=80/tcp
firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --add-port=3000-3010/tcp --permanent# 删除服务和端口
firewall-cmd --remove-service=ftp --permanent
firewall-cmd --remove-port=8080/tcp --permanent# 重载配置
firewall-cmd --reload

高级firewalld配置

# 富规则配置
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept' --permanent# 端口转发
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 --permanent# IP伪装(相当于MASQUERADE)
firewall-cmd --add-masquerade --permanent# 区域管理
firewall-cmd --new-zone=dmz-servers --permanent
firewall-cmd --zone=dmz-servers --add-service=http --permanent

Ubuntu防火墙 - ufw

# 启用ufw
ufw enable
ufw disable# 基础规则
ufw allow 22/tcp
ufw allow 80,443/tcp
ufw deny 23/tcp# 基于IP的规则
ufw allow from 192.168.1.0/24
ufw deny from 10.0.0.100# 查看状态
ufw status
ufw status verbose

SELinux安全子系统

SELinux基础概念

SELinux (Security-Enhanced Linux) 是Linux内核的安全模块,提供强制访问控制(MAC)机制。

SELinux工作模式

Enforcing   # 强制模式,违反策略的操作被阻止
Permissive  # 宽容模式,违反策略的操作被记录但不阻止  
Disabled    # 禁用模式,SELinux功能完全关闭

SELinux配置管理

# 查看SELinux状态
sestatus
getenforce# 临时修改模式
setenforce 0    # 设置为Permissive模式
setenforce 1    # 设置为Enforcing模式# 永久配置文件
vi /etc/selinux/config# 配置选项:
SELINUX=enforcing     # 启用强制模式
SELINUX=permissive    # 宽容模式  
SELINUX=disabled      # 禁用SELinux(推荐)

SELinux实际应用

# 查看文件SELinux上下文
ls -Z /etc/passwd
ls -Z /var/www/html/# 查看进程SELinux上下文  
ps -eZ# 修改文件SELinux上下文
chcon -t httpd_exec_t /usr/local/apache/bin/httpd
restorecon -v /var/www/html/index.html# SELinux策略查询
getsebool -a | grep httpd
setsebool -P httpd_can_network_connect on
http://www.dtcms.com/a/523592.html

相关文章:

  • 【自然语言处理】预训练01:词嵌入(word2vec)
  • 利用inscode帮我用前端页面展示分析博客数据
  • 「赤兔」Chitu 框架深度解读(十):任务调度与并发控制策略
  • Java CompletableFuture 详解与实战:让异步编程更优雅
  • 建设外贸网站要多少钱建设局办的焊工证全国通用吗
  • Linux_基础IO(2)
  • Docker 中使用Nginx 一个端口启动多个前端项目
  • S9 顺序队列
  • 函数绑定器 std::bind
  • STM32基本定时器
  • 第9部分-性能优化、调试与并发设计模式
  • 编程素养提升之EffectivePython(Builder篇)
  • Vue 3 + TypeScript 项目性能优化全链路实战:从 2.1MB 到 130KB 的蜕变
  • 网站首页图腾讯 云上做网站教程
  • Ubuntu(Linux)安装更好用的中文输入法
  • 《算法闯关指南:优选算法--二分查找》--23.寻找旋转排序数组中的最小值,24.点名
  • 【ssh密钥】--- 当密钥密码遇见 Git 服务器:一场关于 “信任” 的浪漫喜剧
  • kotlin 数据类的get和set 问题
  • 爱站网功能左旗网站建设
  • 中国企业跨境云组网指南:低延迟访问德国AWS云做数据分析的实操方案
  • 从单机阅读到云端协作:KoodoReader+cpolar构建知识管理新范式
  • 设计模式之:命令模式
  • EulerOS(NPU)安装llamafactory
  • Ubuntu卸载snap
  • STP(生成树协议)与 RSTP(快速生成树协议)核心知识
  • 数据结构:顺序表讲解(2)
  • 建设一个网站需要考虑什么海口h5公司
  • 高端广告公司网站建设wordpress插件 stock
  • 第二章、全局配置项目主题色(主题切换+跟随系统)
  • 彻底清理:Vue项目中移除static文件夹的完整指南