iptables实现内网服务发布和访问外网

目录

一、介绍

二、准备工作

三、实现:在防火墙上配置iptables规则

四、测试:


一、介绍

基于snat和dnat技术,利用iptables编写规则,实现对内网服务(ssh)发布,以及内网能够访问外网

SNAT
开通内网机器的外网访问权限,是指在数据包从网卡发送出去的时候,把数据包中的源地址部分替换为指定的IP,这样,接收方就认为数据包的来源是被替换的那个IP的主机,MASQUERADE是用发送数据的网卡上的IP来替换源IP,因此,对于那些IP不固定的场合,比如拨号网络或者通过dhcp分配IP的情况下,就得用MASQUERADE


DNAT

发布内网服务,让外网能访问到,就是指数据包从网卡发送出去的时候,修改数据包中的目的IP,表现为如果你想访问A,可是因为网关做了DNAT,把所有访问A的数据包的目的IP全部修改为B,那么,你实际上访问的是B,因为路由是按照目的地址来选择的。因此,DNAT是在PREROUTING链上来进行的,而SNAT是在数据包发送出去的时候才进行,因此是在POSTROUTING链上进行的

iptables

基于内核netfilter实现的,可以制定一些规则(rules)来对主机收到的数据包进行处理,规则其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息 包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。配置防火墙的 主要工作就是添加、修改和删除这些规则。

二、准备工作

设计网络拓扑图如下:

 两台Linux虚拟机:一台做防火墙,一台做shh服务器

防火墙配置:

 准备两块网卡ens36和ens33:

[root@router network-scripts]# cat ifcfg-ens33 
BOOTPROTO=none
NAME=ens33
UUID=b6b1e7a7-fe47-4fec-890a-1a939b5bcaaa
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.31.133
GATEWAY=192.168.31.1
NETMASK=255.255.255.0
DNS1=114.114.114.114
[root@router network-scripts]# cat ifcfg-ens36 
BOOTPROTO="none"
NAME="ens36"
DEVICE="ens36"
ONBOOT="yes"
IPADDR=192.168.204.101
PREFIX=24
[root@router network-scripts]# 

ssh服务器配置:

 一块ens33网卡:

[root@ssh network-scripts]# cat ifcfg-ens33 
BOOTPROTO=none
NAME=ens33
UUID=b6b1e7a7-fe47-4fec-890a-1a939b5bcaaa
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.204.100
GATEWAY=192.168.204.101
NETMASK=255.255.255.0
DNS1=114.114.114.114

三、实现:在防火墙上配置iptables规则

[root@router ~]# cat iptables.sh 
#!/bin/bash
iptables -F
iptables -t nat -F

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

iptables -t nat -A POSTROUTING -s 192.168.204.0/24 -o ens33 -j SNAT --to-source 192.168.31.133

iptables -t nat -A PREROUTING -i ens33 -d 192.168.31.133 -p tcp --dport 2233 -j DNAT --to-destination 192.168.204.100:22

四、测试:

1、ssh服务器访问路由器:成功

 2、用户访问内网ssh服务:成功

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值