SNAT:局域網共享一個公網IP接入lnternel。mysql
意義:linux
一、保護內網用戶安全,能被外界掃描的只有防火牆這一臺機器,這樣就減小了被攻擊的可能。nginx
二、Ipv4地址匱乏,不少公司只有一個ipv4地址,可是卻有幾百個用戶須要上網,這個時候就須要使用SNAT。web
三、節約成本,公網地址須要付費,使用SNAT只須要一個公網ip就能夠知足幾百人同時上網。sql
DNAT:向internel發佈內網服務器數據庫
意義:vim
在內網中有服務器,若是想讓公網用戶訪問有有兩種方法。安全
1.MASQUERADE(地址假裝)策略 --》適合與外網口動態得到ip地址的場景bash
1、SNAT
1.準備三臺虛擬機,一臺配置兩塊網卡,其中第二個網卡配置hostonly(僅主機)模式
網絡配置
服務器
2、配置好ip,網關和dns服務器,router機器開啓路由功能。
(1)route機器
在 /etc/sysconfig/network-script 下修改ens33配置
刷新網卡
ifdown ens33 ifup ens33
由於新配置的第二塊網卡沒有相應的配置文件,因此咱們要手動去新建一個ifcfg-ens37
刷新網卡
ifdown ens37 ifup ens37 #再查看ip地址 ip add
#開啓路由功能 --》成爲路由器 #臨時開啓 echo 1 >/proc/sys/net/ipv4/ip_forward 1表示開啓 0 關閉 默認是0 #永久生效的話,須要修改sysctl.conf: vim /etc/sysctl.conf # 添加 net.ipv4.ip_forward = 1 sysctl -p # 讓內核從新讀取/etc/sysctl.conf配置文件裏的內容,開啓路由功能 #net.ipv4.ip_forward = 1
3、配置snat策略,開啓snat功能
# route機器上 #臨時開啓路由功能 echo 1 >/proc/sys/net/ipv4/ip_forward #在iptables裏添加一條snat的轉發策略,讓內網 192.168.82.0的網絡從ens33接口出去,出去的時候將源ip地址轉換爲192.168.0.159 iptables -t nat -A POSTROUTING -s 192.168.82.0/24 -o ens33 -j SNAT --to-source 192.168.0.159
2、DNAT實驗
一.內網準備一臺 web和mysql服務器
mysql機器上安裝數據庫 mariadb或mysql
yum install nginx mariadb mariadb-server service mariadb start
受權一個能夠遠程鏈接的mariadb的帳戶
mysql -uroot -p #回車鍵mariadb默認是不須要輸入密碼的 MariaDB [(none)]> grant all on *.* to 'wangsy'@'%' identified by '123456'; Query OK, 0 rows affected (0.001 sec)
2、在linux網關服務器上
1.開啓路由功能
2.添加DNAT策略
腳本文件
#!/bin/bash #清除原來的規則 iptables -F iptables -t nat -F #臨時開啓路由功能 echo 1 >/proc/sys/net/ipv4/ip_forward #dnat策略-mysql iptables -t nat -A PREROUTING -i ens33 -d 192.168.0.159 -p tcp --dport 3306 -j DNAT --to-destination 192.168.82.129 # dnat -web iptables -t nat -A PREROUTING -i ens33 -d 192.168.0.159 -p tcp --dport 80 -j DNAT --to-destination 192.168.82.129
運行腳本。
3、驗證
在sqlyog上能鏈接新建的用戶就成功了