歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

Linux單網卡架設VPN並NAT共享上網

服務器使用shorewall作為防火牆,實際上shorewall只是作為iptables的一個配置程序而已,實際上防火牆還是iptables;
首先是建立VPN,使用軟件包PPTPD,這樣做的好處是方便認證,也支持windows,安全性不如openvpn,但是簡單實用;

服務器環境:
OS:ubuntu server 8.10
firewall: shorewall
IP:192.168.2.100
安裝:

sudo apt-get install pptpd

修改配置文件:/etc/pptpd.conf

修改localip  remoteip

localip 192.168.250.1
remoteip 192.168.250.234-238,192.168.250.245

這裡隨便找了個IP段localip相當於撥號後的服務器地址,可以寫成本機IP,或者和remoteip的IP段相同的一個IP地址

remoteip是客戶機分配的IP段,這裡分配了12個IP地址,也就只允許12個機器同時通過VPN連接,再增加就不能分配到IP地址了

修改配置文件:/etc/ppp/chap-secrets

這個文件裡面設置登陸用的賬號密碼等信息

設置格式是:

# client        server  secret                  IP addresses

abc       *            123456

第一個是用戶名  然後是服務器地址   然後是登陸所用的密碼  最後是為客戶撥號後分配的IP地址,不指定的話就是系統自動分配

以上過程之後,咱的PPTPD就配置好了哈

由於服務器采用了shorewall防火牆,需要開放端口1723,47和gre協議

編輯/etc/shorewall/rules

增加:

ACCEPT          net             $FW             gre
ACCEPT          net             $FW             tcp     1723
ACCEPT          net             $FW             tcp     47

然後重啟下shorewall:

sudo shorewall restart

開始測試在windows上VPN撥號吧

windows下VPN連接建立方法就不多說了哈

OK,測試VPN可以撥通了,但是還不能通過服務器的網絡連接互聯網,可能你會發現,除了訪問服務器,其他你什麼都干不了

下面來做NAT,不過這個地方我也沒做得很好,還有點缺陷,希望以後能解決這個問題

撥通VPN後,在服務器上使用ifconfig可以看到多了一個PPP*的網絡連接,例如我這裡是ppp0

做NAT我也使用shorewall來做

修改/etc/shorewall/interface

增加:

ppp0   ipv4

修改/etc/shorewall/zones

增加:

ppp    ppp0

修改/etc/shorewall/masq

增加:

eth0                    ppp0

OK,然後重啟shorewall

sudo shorewall restart

NAT配置好了

這裡要注意的是ppp0一定要存在,否則shorewall要報錯,這個就是shorewall不足的地方了,不夠靈活。

如果你不用shorewall 防火牆,直接使用iptables指令進行dnat操作,就不會因為沒有ppp0連接而報錯了

Copyright © Linux教程網 All Rights Reserved