iptables案例、iptables的nat表

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介:

iptables小案例
vi /usr/local/sbin/iptables.sh //加入如下内容
#! /bin/bash
ipt="/usr/sbin/iptables"
$ipt -F
$ipt -P INPUT DROP //外面ping不通本地
$ipt -P OUTPUT ACCEPT
$ipt -P FORWARD ACCEPT
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT //为了更顺利的连接 ESTABLISHED已经连接。RELATED一个边缘的状态。(比如客户端和服务器端建立连接之后,会有一些而外的链接出来。没有这个可能其他的连接被禁掉) 
$ipt -A INPUT -s 192.168.133.0/24 -p tcp --dport 22 -j ACCEPT //让自己人通过
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT //允许80端口对外访问
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT

icmp示例
iptables -I INPUT -p icmp --icmp-type 8 -j DROP //禁ping,自己人可以ping通。ping外面的通,ping本机不通(ACCEPT里面可以被外面ping通)

nat表应用
A机器两块网卡ens33(192.168.133.130)、ens37(192.168.100.1),ens33可以上外网,ens37仅仅是内部网络,B机器只有ens37(192.168.100.100),和A机器ens37可以通信互联。

步骤:
1.准备两台机器
2.A机器关机点击》编辑虚拟机
3.添加》网络适配器,
4.下一步》自定义(不选)。默认nat。
5.在虚拟机设置处,点击网络适配器2》选择lan区段(把网卡连到内网的交换机上,window连接不上,那么这台机器和那台连上同一个内网交换机)。
6.点击lan区段按钮。在点击添加自定义名字。点击确定。完成
7.B机器点击编辑虚拟机
8.点击nat,连接状态勾选去掉。
9.重复3-6步骤。Lan区段必须相同
10.启动AB机器

给A机器手动设置ip
Ifconfig 网卡名字 192.168.100.1/24 要想永久存在需要拷贝其他网卡的文件

B机器把外网
ifdown 外网网卡
Ifconfig 网卡名字 192.168.100.100/24 
pingA机器出现问题
排查:A机器ping自己是否通
B机器mii-tool 网卡名 看网线是否连接
设置的lan区段设备状态要钩上
查看手动设置ip是否消失

需求1:可以让B机器连接外网
A机器上打开路由转发 echo "1">/proc/sys/net/ipv4/ip_forward //打开端口转发。需要修改内核参数默认为0,表示没有开启内核转发
A上执行 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eno16777728 -j MASQUERADE //实现上网。-o后面网卡不是手动设置的网卡

B上设置网关为192.168.100.1 //route -n //查看网关。默认没有任何网关的
route add default gw 192.168.100.1
可以ping通A机器外网
vi /etc/resolv.conf //设置网关
可ping网关和外网,但是外网ping不通B机器

此步骤最好完整的从10.12开始。防止B机器ping不通外网。
iptables要打开,FORWARD也要打开

需求2:C机器只能和A通信,让C机器可以直接连通B机器的22端口
Window无法pingB机器,终端操作不方便,如何远程登录?通过连接A机器跳转到B机器,就是端口映射。B机器的端口映射出来,A机器的端口已经有了22,可以把B机器映射出来的端口改成别的。访问A机器的122端口就是访问B机器的22端口。
上面的A(就是图上B机器)B机器是(C机器)。下面的A(window)。
A不能直接连接C机器,只能通过B机器连接C机器22端口。
iptables案例、iptables的nat表

B上打开路由转发echo "1">/ proc/sys/net/ipv4/ip_forward (已做过)
iptables -t nat -D POSTROUTING -s 192.168.100.0/24 -o ens16777728 -j MASQUERADE //删除之前的规则
iptables -t nat -nvL

B上执行iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22 //就是把进来的包源ip是window133.1 目标ip是133.130 目标--dport是1122。端口转发到100.100 的22端口,133.130是B机器
B上执行iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130 //从100.100回来的包经过B机器在做一个SNAT操作把目标地址改成133.130。这个目标地址也是B机器发出去的源ip地址。

C上设置网关为192.168.100.1(已做过)

远程连接工具连接B机器192.168.133.130 1122端口。
Window(A机器)无法直接ping(c机器)。



本文转自 虾米的春天 51CTO博客,原文链接:http://blog.51cto.com/lsxme/2045920,如需转载请自行联系原作者

相关文章
|
6月前
|
Linux
centos使用iptables实现nat端口转发
centos使用iptables实现nat端口转发
245 4
|
10月前
|
网络协议 Docker 容器
docker启动报错 (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9876 -j DNAT --
docker启动报错 (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9876 -j DNAT --
286 0
|
5月前
|
网络安全 Docker 容器
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule
|
8月前
|
运维 网络安全 Docker
docker报错ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule
docker报错ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule
296 0
|
网络协议 Linux
iptables之SNAT与DNAT(二)
iptables之SNAT与DNAT(二)
iptables之SNAT与DNAT(二)
|
网络协议 Linux 网络安全
|
负载均衡 监控 网络虚拟化
Cisco双ISP双链路NAT接入案例
Cisco双ISP双链路NAT接入案例
263 1
Cisco双ISP双链路NAT接入案例
|
网络协议 网络虚拟化 网络架构
多出口NAT策略路由案例
配置思路: 基础拓扑搭建. 划分VLAN,配置access/trunk/SVI,IP 地址 配置内网路由(汇聚于核心跑OSPF) 规划外网路由与NAT
92 0
多出口NAT策略路由案例
|
网络架构
【计算机网络】网络层 : NAT 网络地址转换 ( 私有 IP 地址不被路由器转发 | NAT 转换表 )
【计算机网络】网络层 : NAT 网络地址转换 ( 私有 IP 地址不被路由器转发 | NAT 转换表 )
436 0