iptables规则配置说明-nat举例
iptables是一个用于操作Netfilter回调函数的用户程序和命令行工具。iptables在概念上是基于规则和链的概念。规则是用于匹配信息包的一小段逻辑。链是按顺序检查每个包的一系列规则。包最终会在一组预定义的目标中结束,这些目标将决定对包执行什么操作。关键目标是接受包或丢弃包1。每个规则都定义了在数据包匹配时“跳转”到哪里;
这可以是另一个链或目标。如果规则不匹配,则根据链中的下一个规则检查包。每个链都有一个策略,如果到达链的末端而没有匹配任何规则,则目标包将跳转到该策略。
文章图片
image.png netfilter模块通过对网络层加一个hook,触发iptables规则
iptables规则组成
组成部分:四张表+五条链(hook point) + 规则
四张表: filter个,nat表, mangle表, raw表
五条链: INPUT OUTPUT FORWARD PREROUTING POSTROUTING
文章图片
image.png
文章图片
image.png
文章图片
image.png
文章图片
image.png 举例:
文章图片
image.png SNAT 配置规则
iptables -t nat -A POSTROUTING -s 10.10.177.0/24 -o ens224 -j SNAT --to-source 10.10.188.232把内网10.110.177.0/24网段加入SNAT, 内网可以通过10.10.188.232访问互联网
当配置nat时,forward链需要允许,参与如下配置。
vim /etc/sysconfig/iptables
# Generated by iptables-save v1.4.21 on Mon Sep 23 18:15:59 2019
*nat
:PREROUTING ACCEPT [1:40]#开启
:INPUT ACCEPT [0:0]#开启
:OUTPUT ACCEPT [0:0]#开启
:POSTROUTING ACCEPT [0:0]#开启
-A POSTROUTING -s 10.10.177.0/24/24 -o ens224 -j SNAT --to-source10.10.188.232
*filter
:INPUT ACCEPT [0:0]#开启
:FORWARD ACCEPT [0:0]#开启
:OUTPUT ACCEPT [0:0]#开启
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
同时需要开启转发功能
vim /etc/sysconfig.conf
net.ipv4.ip_forward = 1sysctl -p
DNAT 【iptables规则配置说明-nat举例】DNAT,也叫服务器映射,把内网的服务器映射到公网
iptables-t nat -I PREROUTING -d 10.10.188.232 -p tcp --dport 2222 -j DNAT --to-destination 192.168.1.200:22
iptables-t nat -I PREROUTING -d 10.10.188.232 -p tcp --dport 4433 -j DNAT --to-destination 192.168.1.200:443把内网 10.10.177.232:443映射到公网10.10.188.232 4433端口进行访问
把内网 10.10.177.232:22映射到公网10.10.188.232 2222端口进行访问
推荐阅读
- vue-cli|vue-cli 3.x vue.config.js 配置
- 难道你仅会钻规则的漏洞吗()
- 从战略性的角度可以配置股票
- 缓存有关的配置和属性
- Spring|Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件
- SwiftUI|SwiftUI iOS 瀑布流组件之仿CollectionView不规则图文混合(教程含源码)
- Vagrant|Vagrant (三) - 网络配置
- java|java b2b2c shop 多用户商城系统源码- config 修改配置
- CentOS7 阿里云镜像配置方法
- 整理大部分Eslint规则