iptables内网访问外网 ε=ε=ε=(~ ̄▽ ̄)~

介绍

iptables概述:

netfilter/iptables : IP信息包过滤系统,它实际上由两个组件netfilter 和 iptables 组成。

netfilter/iptables 关系:

netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。

IP地址规划

主机名 eth0 eth1 作用
firewalld 10.0.0.81 172.16.1.81 防火墙
m01 10.0.0.61 172.16.1.61 (ifdown) 批量管理

 m01通过内网网关(访问firewalld内网IP地址)进行地址转换,从而访问外网。

流程图:

防火墙服务安装部署

[root@firewalld ~]# yum install -y iptables-services  

[root@firewalld ~]# systemctl start iptables

修改m01网卡配置

因为是内网访问所以我们无需使用eth0,直接down就可以

[root@m01 ~]#  ifdown  eth0 
[root@m01 ~]#  vim /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth1
UUID=ae935876-ade9-4a88-b7d7-45fb1fc6d690
DEVICE=eth1
ONBOOT=yes
IPADDR=172.16.1.61
PREFIX=24
GATEWAY=172.16.1.81       #网关是firewalld的内网IP地址
DNS1=223.5.5.5            #要有DNS解析,否则无妨上网

修改完需要我们重启eth1网卡:

[root@m01 ~]#  ifdown eth1 && ifup eth1 
Device 'eth1' successfully disconnected.
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9)

修改firewalld的网卡配置

forward 表 负责转发流经主机的数据包,起转发的作用,和NAT关系很大

LVS NAT 模式,net.ipv4.ip_forward=0

[root@firewalld ~]# echo "1"> /proc/sys/net/ipv4/ip_forward   #修改当前系统内存中ip_forward的值,这是开启ip转发
[root@firewalld ~]# cat /proc/sys/net/ipv4/ip_forward 1 
[root@firewalld ~]# sysctl -p


或者: [root@firewalld
~]# vim /etc/sysctl.conf #最后一行加上 net.ipv4.ip_forward = 1 [root@firewalld ~]# sysctl -p

firewalld防火墙配置

POSTROUTING:  表示数据包在从一个接口要流出, 做一个地址映射
PREROUTING:   表示数据包在从一个接口要流入, 做一个地址转换
OUTPUT :  表示将防火墙自身产生的数据流量做地址或者端口转换

[root@firewalld ~]# iptables -t nat -A POSTROUTING  -s  172.16.1.61  -o eth0 -j SNAT  --to-source 10.0.0.81
#将172.16.1.61IP地址转换为10.0.0.81
[root@firewalld ~]# service iptables save  #保存设置,将上面的设置写入文件内

[root@m01
~]# iptables-save #查看内容 # Generated by iptables-save v1.4.21 on Thu Dec 12 11:57:05 2019 *nat :PREROUTING ACCEPT [97:8398] :INPUT ACCEPT [29:3621] :OUTPUT ACCEPT [241:17235] :POSTROUTING ACCEPT [241:17235] -A POSTROUTING -s 172.16.1.61/32 -o eth0 -j SNAT --to-source 10.0.0.81 COMMIT # Completed on Thu Dec 12 11:57:05 2019 # Generated by iptables-save v1.4.21 on Thu Dec 12 11:57:05 2019 *filter :INPUT ACCEPT [3671:291941] :FORWARD ACCEPT [369:29004] :OUTPUT ACCEPT [2777:276150] COMMIT # Completed on Thu Dec 12 11:57:05 2019

m01 进行测试:

[root@m01 ~]# ping  baidu.com
PING baidu.com (220.181.38.148) 56(84) bytes of data.
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=128 time=430 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=128 time=245 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=3 ttl=128 time=457 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=4 ttl=128 time=255 ms

实验完成,最核心的是iptables的配置,需要用到nat表中的POSTROUTING

posted @ 2019-12-12 11:07  kerwin-  阅读(511)  评论(0编辑  收藏  举报