设为首页 收藏本站
查看: 1363|回复: 0

[经验分享] linux DNAT & SNAT

[复制链接]

尚未签到

发表于 2019-2-18 07:59:24 | 显示全部楼层 |阅读模式
  iptables  ---   nat(地址转换)
  环境
1.机器一
192.168.1.3(公网)
192.168.183.127(内网)
  2.机器二
192.168.183.128(内网)
  实验前我在vm虚拟机上添加一个网口,有ip地址但是却没有配置文件
可以这么做

nmcli con show (查看设备唯一标识符uuid)
ip addr  (网卡硬件MAC地址)
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
NAME=ens37
UUID=a2d0be5d-0769-48b4-9270-b3eacd1d243e
DEVICE=ens37
ONBOOT=yes
IPADDR=192.168.183.128
NETMASK=255.255.255.0
GATEWAY=192.168.1.3
HWADDR=00:0c:29:ab:38:87

  防火墙规则,调用内核的安全策略。

[root@localhost ~]# iptables -t filter -L  (默认查看filter表里的列)
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   
[root@localhost ~]# iptables -t nat -L  (这次试验使用到的表--nat表)
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

  ssh  登陆转换  dnat(目标地址转换,公网ip--->内网ip,意思就是你想访问目标地址转变了)

机器一:
[root@localhost ~]# vim /etc/ssh/sshd_config  
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
PasswordAuthentication yes  (之前做过证书登陆,这里改成yes)
[root@localhost ~]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter nat      [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
[root@www ipv4]# echo 1 > ip_forward  (立即生效)
[root@www ipv4]# cat ip_forward
1
[root@www ipv4]# pwd
/proc/sys/net/ipv4
[root@www ipv4]# vim /etc/sysctl.conf (永久生效)
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
[root@www ipv4]# sysctl -p (刷新sysctl.conf文件)
net.ipv4.ip_forward = 1

机器二:
[root@localhost ~]# ifdown ens33 (确保不会通过此网卡连接)
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens37
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
NAME=ens37
UUID=a2d0be5d-0769-48b4-9270-b3eacd1d243e
DEVICE=ens37
ONBOOT=yes
IPADDR=192.168.183.128
NETMASK=255.255.255.0
GATEWAY=192.168.1.3   (这里网关指向机器一公网ip)
HWADDR=00:0c:29:ab:38:87
~                           
[root@localhost ~]# iptables -t nat -A PREROUTING -d 192.168.1.3 -p tcp --dport 22 -j DNAT --to-destination
192.168.18.128:22

**测试**: (这里使用的是XSHELL)
Connecting to 192.168.1.3:22...  (登陆的是1.3)
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
Last login: Fri May  4 18:32:54 2018 from 192.168.1.138
[root@localhost ~]# ifconfig   (成功转换到18.128上面)
ens33: flags=4163  mtu 1500
ether 00:0c:29:ab:38:7d  txqueuelen 1000  (Ethernet)
RX packets 350  bytes 37643 (36.7 KiB)
RX errors 0  dropped 1  overruns 0  frame 0
TX packets 124  bytes 18169 (17.7 KiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
ens37: flags=4163  mtu 1500
inet 192.168.18.128  netmask 255.255.255.0  broadcast 192.168.18.255
inet6 fe80::20c:29ff:feab:3887  prefixlen 64  scopeid 0x20
ether 00:0c:29:ab:38:87  txqueuelen 1000  (Ethernet)
RX packets 271  bytes 38878 (37.9 KiB)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 198  bytes 54004 (52.7 KiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73  mtu 65536
inet 127.0.0.1  netmask 255.0.0.0
inet6 ::1  prefixlen 128  scopeid 0x10
loop  txqueuelen 0  (Local Loopback)
RX packets 40  bytes 3448 (3.3 KiB)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 40  bytes 3448 (3.3 KiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

  ssh  登陆转换  snat(源地址转换,内网ip--->公网ip,意思就是你所使用源ip地址转变了)
  这里稍微改下iptbales协议即可
  [root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.18.128 -j SNAT --to-source 192.168.1.3
*(原本192.168.18.128是不可以访问外网的,这里就以ping  www.baidu.com为例。看下效果图即可)
  1.128这台机器resolv.conf文件dns服务器先指定好
2.没添加snat协议时:

3.添加  iptables -t nat -A POSTROUTING -s 192.168.18.128 -j SNAT --to-source 192.168.1.3  协议后:



明天分享下web的搭建。。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-673723-1-1.html 上篇帖子: PXE自动安装Linux 下篇帖子: linux部署项目
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表