爛泥:open***雙網卡客戶端與內網機器通訊

前段時間寫了一篇有關open***搭建與內網機器通訊的文章,那篇文章是基於服務器單網卡進行配置的,文章連接爲《爛泥:open*** tun模式下客戶端與內網機器通訊》。ubuntu

這篇文章咱們再來介紹下雙網卡open***客戶端與內網機器通訊的配置。centos

1、需求說明安全

爲何要寫open***雙卡的配置?服務器

是由於通常IDC機房都是提供多網卡服務器,同時目前比較流行的雲服務器阿里雲提供的也是雙網卡,而騰訊雲以及亞馬遜的aws都是單網卡。各個雲服務器商的網卡配置個數,以下圖:tcp

clip_p_w_picpath001[4]

clip_p_w_picpath002[4]

clip_p_w_picpath003[4]

2、業務要求ide

如今IDC機房那邊有一臺服務器配A配置的是雙網卡,一塊配置的是公網IP(173.33.141.50),一塊配置的是內網IP(10.10.1.17)。另外在這個IDC機房內的其餘服務器,爲了安全起見,配置都是的內網IP10.10.1.0/24網段的。測試

如今要求很簡單,經過服務器A管理內網的其餘服務器。阿里雲

3、解決方案spa

爲了達到上述要求,咱們能夠在服務器A上搭建open***服務,而後客戶端經過這臺open***服務器做爲跳板機管理內網服務器。3d

open***的搭建很簡單,能夠參考這篇文章《爛泥:ubuntu 14.04搭建Open×××服務器》。

這裏有個難點就是客戶端與內網服務器通訊的問題。

open***客戶端與內網服務器通訊問題,若是是單網卡的話,咱們只須要按照《爛泥:open*** tun模式下客戶端與內網機器通訊》這篇文章進行操做便可。

那麼服務器雙網卡如何配置呢?

其實雙網卡的配置,其實和單網卡的配置差很少,都是要修改open***服務的配置文件和配置iptables規則。只是iptables規則改變下了而已,下面咱們實際配置下。

4、open***具體配置

open***服務配置文件內容以下:

grep -vE '^;|^$|^#' /etc/open***/server.conf

port 1194

proto tcp

dev tun

ca ca.crt

cert ilanni.crt

key ilanni.key # This file should be kept secret

dh dh2048.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "route 10.10.1.0 255.255.255.0"

push "dhcp-option DNS 223.5.5.5"

client-to-client

duplicate-cn

keepalive 10 120

comp-lzo

persist-key

persist-tun

status open***-status.log

log open***.log

verb 3

clip_p_w_picpath004[4]

上述open***服務配置文件中,push "route 10.10.1.0 255.255.255.0"這條命令必定要有,它是推送給客戶端的路由配置。

5、IPtables配置

open***配置完畢後,咱們如今開始配置open***服務器的IPtables規則。

如今服務器的網卡配置以下:

ifconfig

clip_p_w_picpath005[4]

經過上圖,咱們能夠看到網卡em2是和內網進行通訊的,咱們如今須要作的就是把全部從open***客戶端(10.8.0.0/24)請求到10.10.1.0/24網段的數據所有假裝成網卡em2(10.10.1.17)發出的。也就是說須要在iptables上作一個NAT規則。

命令以下:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o em2 -j SNAT --to-source 10.10.1.17

iptables -nL -t nat

上述命令的意思是把全部來自10.8.0.0/24網段的請求假裝成10.10.1.17這個IP地址,而後經過em2這個網卡發出。

clip_p_w_picpath006[4]

也能夠直接修改iptables的配置文件,以下:

-A POSTROUTING -s 10.8.0.0/24 -o em2 -j SNAT --to-source 10.10.1.17

clip_p_w_picpath007[4]

而後從新加載iptables規則。

若是是centos系統的話,直接使用/etc/init.d/iptables restart命令重啓iptables。

若是是ubuntu系統的話,使用sudo iptables-restore /home/Ubuntu/iptables.rule

6、測試通訊狀況

open***服務與iptables規則都配置完畢後,如今咱們切換到客戶端進行測試。

客戶端鏈接open***服務器,以下:

open*** --config lianzhou.o*** &

clip_p_w_picpath008[4]

clip_p_w_picpath009[4]

經過上圖,咱們能夠很明顯的看出客戶端已經正確鏈接open***服務器,而且得到10.8.0.6這個IP地址。

如今咱們再來測試它與10.10.1.0/24網段的連通狀況,以下:

ping 10.10.1.12

clip_p_w_picpath010[4]

經過上圖,咱們能夠很明顯的看到客戶端已經能夠與10.10.1.12正常通訊。

如今咱們再來嘗試鏈接下10.10.1.12這臺機器,以下:

telnet 10.10.1.12 22

clip_p_w_picpath011[4]

經過上圖,咱們能夠很明顯的看出客戶端已經能夠鏈接10.10.1.12這臺服務器。

若是客戶端在鏈接內網服務器中出現以下的錯誤提示:

telnet: Unable to connect to remote host: No route to host

clip_p_w_picpath012[4]

這個通常是open***服務器的iptables規則不正確致使的,建議是先使用iptables –F命令清除iptables規則保留nat規則進行調試。

相關文章
相關標籤/搜索