作者 主題: 在RHEL4上架設PPTPD VPN  (閱讀 23919 次)

0 會員 與 1 訪客 正在閱讀本文。

dandy

  • 懷疑的國中生
  • **
  • 文章數: 76
    • 檢視個人資料
    • http://11way.com/joom 失憶小站--失憶防止記錄器
在RHEL4上架設PPTPD VPN
« 於: 2005-09-24 04:50 »
*****************************************************
在RHEL4上架設PPTPD VPN
            --written by Dandy
*****************************************************

1.前言

VPN(Virtual Private Network)是近年來以Public Net(WAN)為基礎所發展出來的一種虛擬網路架構,其原理當然就在"虛擬"這兩個字,當幾台Client端的電腦,透過"實體"連接,有可能使用Dialup,ADSL,Leased-Line,FramRelay,Firewall....等方式連上Internet或IPLC,透過"虛擬"的方式,就可以把這些機器視為同一個LAN下的機器,這跟一些高階Switch所提供的VLAN有點類似,但當然在網管規劃中不是屬於同樣的用法.
再來簡單談一下原理,其實可以想像成--在已建立好的TCP/IP環境下打通一個tunnel,讓你可以跟VPN server連接,連接後利用一些編碼加密的方式將你的pocket編碼,送到Server後再來解碼,好用的地方
個人覺得如下:
場景<1>公司內提供許多作業環境,有file server,Workflow,ERP...,且建有firewall,這些資源在外出差或者回到家的人並無法使用,或者在使用上必須打通firewall,造成安全上的困擾,這時vpn就可以派上用場

場景<2>做為一個MIS,通常都有幫許多user服務的時候,在LAN裡面,可以透過remote control來做,不必跑到user座位去,但您一定遇過某位大哥三更半夜也要你去他家處理的時候,這時候,您可以請他連上公司的vpn,
您也連上,就可以在家裡遙控他的電腦,這就是讓我想寫這篇的動力,原因是因為我找不到一個簡單好用又可以穿透兩個防火牆的remote control軟體,不管是rdp,vnc,anywhere,ra或是netop,都起碼要去設定gateway.請注意,在家裡面用adsl上網時,如果透過ip分享器,也算是類似防火牆的環境--要從pirvate ip來masq成public ip

場景<3>公司可能有大大小小的分公司遍布在全球,所能提供的線路也只能依照當地的環境來建立,像在泰國,越南,小小一個辦事處,總不能拉條幾MB的IPLC在處理,這時建立VPN是一個也算可行的方式,有許多的
硬體的VPN device可以作為參考,便宜又簡單


所以我們瞭解到了vpn client端可以是user的電腦,以winxp來說,本身內建了pptp的虛擬私人網路,不需安裝任何軟體,只要一組ip/帳號就可以教user連上vpn;也可以是類似switch的硬體設備,那server呢?當然也有很多選擇,像是去買vpn設備,或是直接將你的linux架上vpn,這也有多種選擇,像swan/ipsec,vpnd,pptpd,或是open vpn...等,一般我個人比較偏愛不須動到太多東西的安裝,不管是server也好,client端也好,動到的部份越多,能照著做的成功率越低,所以對照了一下環境後,覺得pptpd比較適合,因為1.windows本身就支援,2.設定不用改太多.

2.環境
ppptpd全名是PoPToP(pptpd)是在Linux上建置VPN的其中一種方法,可以參考

http://www.moretonbay.com/con/pptp.html

安裝環境 --Redhat Linux Enterprise 4.0 Advance Server (Kernel 2.6.9-5.EL)

在windows建立完一個vpn的撥號環境後,其中有一個"安全性"的頁面,裡面有一個"要求資料加密"的選項,這部份牽涉到PPTP所需要安裝的加密環境必須要Kernel及ppp支援MPPE(Microsoft Point-To-Point Encryption Protocol),而且還有一個MPPC(Microsoft Point-to-Point Compression)所以必須將Kernel patch成mppe/mppc的版本,RH內建的kernel是不支援mppe/mppc的,你可以選擇重新compile kernel,也可以選擇patch kenel,但對我而言,能不去動到最好還是不去動到,畢竟從雲觀時代以來研究kernel的精神早就沒有了,最後一次compile kernel是十幾年前了....所以,還好有個叫Matt Domsch的,寫了個dkms(Dynamic Kernel Module Support)的東西,使得kenel增加功能不是那麼困難.
http://linux.dell.com/dkms/dkms.html

3.所有相關的套件
http://sourceforge.net/project/showfiles.php?group_id=44827

請下載下列幾個套件
dkms-2.0.5-1.noarch.rpm
kernel_ppp_mppe-0.0.5-2dkms.noarch.rpm
ppp-2.4.3-5.rhel4.i386.rpm
pptpd-1.3.0-0.i386.rpm

4.安裝dkms
#rpm -ivh dkms-2.0.5-1.noarch.rpm

5.安裝kernel的ppp mppe模組
#rpm -ivh kernel_ppp_mppe-0.0.5-2dkms.noarch.rpm

<研究kernel是一件非常值得鼓勵的事>

6.測試一下MPPE module可不可以載入
#modprobe ppp-compress-18 && echo success

7.安裝PPP--原有RHEL4的PPP版本為ppp-2.4.2-6.4,要安裝pptp 1.3.0必需是ppp >= 2.4.3 is needed by pptpd-1.2.3-1.i386
#rpm -qa|grep ppp
rp-pppoe-3.5-22
ppp-2.4.2-6.4.RHEL4

所以將原有的ppp-2.4.2-6.4.RHEL4昇級成ppp-2.4.3-5.rhel4.i386.rpm

#rpm -Uvh ppp-2.4.3-5.rhel4.i386.rpm

8.安裝pptpd

#rpm -ivh pptpd-1.3.0-0.i386.rpm

9.設定帳號
#vi /etc/ppp/chap-secrets

# Secrets for authentication using CHAP
# client        server   secret                IP addres
vpn              *          1234                  *

10.設定/etc/pptpd.conf
加入下列:(使用 /etc/ppp/options.pptp,原本的option /etc/ppp/options.pptpd保留)

debug
option /etc/ppp/options.pptp
logwtmp
localip 192.168.254.1
remoteip 192.168.254.50-100

<說明>pptpd的原理跟撥號網路類似,由pptpd做為daemon,接通後起一個ppp0的interface,所以會用到ppp的設定,這時需考慮到彼此的網路規劃,一般adsl的ip分享器用的是192.168.0.x或192.168.1.x,
所以如果你的內部網路用的也是192.168.1.x或192.168.0.x,雖然不會衝突,可是路由不知會往哪邊跑,如下圖,你必須知道eth0,eth1,ppp0所代表的意思,將eth1跟ppp0設成一樣的ip,是為了iptables的方便設定,
也就是由192.168.254.x連過來的vpn都視為192.168.254.1所路由的ip,另外localip和remoteip的最大連接數為50-100=50個,超過的話,將會忽略連接要求


11.設定/etc/ppp/options.pptp ,可參考options.pptpd

#vi /etc/ppp/options.pptp

lock
debug
auth
proxyarp
+chap
#-----MPPE/MPPC------
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-wins 192.168.254.1
ms-dns 192.168.254.1

 
<p.s.1>由於ppp的編碼方式有基於BSD licensed跟 OpenSSL licensed這兩種的方式,所需設定的參數也有不同,所以您可能需要注意一下所使用的ppp套件是使用哪一種,以上所使用ppp-2.4.3-5.rhel4.i386.rpm是
BSD licensed的套件,所以chapms,chapms-v2,mppe-40,mppe-128,mppe-stateless等參數並不適用.其中
refuse-="-"
require-="+"
所以,要使用MPPE,就加入require-mppe-128,可以寫成+mppe-128,要注意一點的是不使用mschap-v2的驗證,是無法使用mppe-128的加密的
<p.s.2>
檢查ppp有無支援mppe
#strings `which pppd`|grep -i mppe|wc --lines
46   <------只要不等於0,大於30就有支援
檢查ppp有無支援mppc
#strings `which pppd`|grep -i mppc|wc --lines
0      <------等於0表示不支援
在此說明一下不支援的原因,原來MPPC是一種有版權的壓縮演算法,所以大家也不敢太公開使用,網頁上大調查目前共有七種解(說)法:
<1>Cisco's description of MPPC, showing the protocol code.
<2>Mail on [pptp-server] mailing list saying that you don't need MPPC anyway, and nobody has written it for Linux. [link no longer valid]
<3>FreeBSD supports it, somehow. However investigations by Frank show the code is not present.
<4>A book mentions ppp-mppc in contents listing, implying existence.
<5>Mail saying that MPPC would need licensing from STAC Electronics.
<6>The ppp package README confirms the above, where it says:
Compression methods.
**************************
This package supports two packet compression methods: Deflate and BSD-Compress. Other compression methods which are in common use include Predictor, LZS, and MPPC. These methods are not supported for two reasons - they are patent-encumbered, and they cause some packets to expand slightly, which pppd doesn't currently allow for. BSD-Compress is also patent-encumbered (its inclusion in this package can be considered a historical anomaly :-) but it doesn't ever expand packets. Neither does Deflate, which uses the same algorithm as gzip.  
<7>Jan Dubiec's implementation of MPPC, which may be a violation of the patent but we've not checked.
第七種也就是大家最常翻到的Jan Dubiec的解法,這下大家知道他語焉不詳的原因了吧---we've not checked.
http://mppe-mppc.alphacron.de/
http://www.polbox.com/h/hs001/

12.要將ip_forward打開(若是有用到iptables的,應該已經有做這個動作)
#echo 1 > /proc/sys/net/ipv4/ip_forward

13.啟動pptpd
#/etc/rc.d/init.d/pptpd start

14.若有設定iptables的server,請開放 port 1723和port 47,在/etc/sysconfig/iptables加入下列:
-A INPUT -d 220.130.205.22 -i eth0 -p tcp -m tcp --dport 1723 -j ACCEPT
-A INPUT -d 220.130.205.22 -i eth0 -p tcp -m tcp --dport 47 -j ACCEPT

注意/var/log/messages有無錯誤訊息

15.剩下的就是Client端的設定,在此不再贅述.本文只簡單說明在RHEL下的pptpd vpn使用mppe的做法,留有兩個issue,日後再行補充,一是MPPC的做法,除了Jan Dubiec外還有沒有更簡單一點的,不需動到kernel的,二是linux的vpn client設定,以上如有謬誤,還請見諒.
http://11way.com/joom 失憶小站--失憶防止記錄器

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
在RHEL4上架設PPTPD VPN
« 回覆 #1 於: 2005-09-25 12:56 »
我有2個小問題:
1. 可以提供多台client從外面同時連線嗎?!
2. 當多人同時連線時,假如有某人斷線,會不會所有人一起斷線?!

dandy

  • 懷疑的國中生
  • **
  • 文章數: 76
    • 檢視個人資料
    • http://11way.com/joom 失憶小站--失憶防止記錄器
在RHEL4上架設PPTPD VPN
« 回覆 #2 於: 2005-09-25 13:12 »
引述: "duncanlo"
我有2個小問題:
1. 可以提供多台client從外面同時連線嗎?!
2. 當多人同時連線時,假如有某人斷線,會不會所有人一起斷線?!


Ans.
1.可以,當每一個client從外面連線,會再起一個ppp的interface

26614 ?        Ss     0:00 /usr/sbin/pptpd
25204 ?        S      0:00  \_ pptpd [x.x.x.x:4000 - 0080]
25205 ?        S      0:00  |   \_ /usr/sbin/pppd localfile /etc/ppp/options.pp
25254 ?        S      0:00  \_ pptpd [x.x.x.x:0982 - 0100]
25255 ?        S      0:00      \_ /usr/sbin/pppd local file /etc/ppp/options.pp

而由ppp給他一個ip,當然這ip是由你的options.pptp而定
ppp0      Link encap:Point-to-Point Protocol
          inet addr:192.168.254.1  P-t-P:192.168.254.50  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1396  Metric:1
          RX packets:72 errors:0 dropped:0 overruns:0 frame:0
          TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:11739 (11.4 KiB)  TX bytes:4473 (4.3 KiB)

ppp1      Link encap:Point-to-Point Protocol
          inet addr:192.168.254.1  P-t-P:192.168.254.51  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1396  Metric:1
          RX packets:54 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:5720 (5.5 KiB)  TX bytes:1884 (1.8 KiB)

2.答案你應該知道了.
http://11way.com/joom 失憶小站--失憶防止記錄器

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
在RHEL4上架設PPTPD VPN
« 回覆 #3 於: 2005-09-25 20:25 »
了,真是太讚了...比FreeBSD上架的好用多了...

dandy

  • 懷疑的國中生
  • **
  • 文章數: 76
    • 檢視個人資料
    • http://11way.com/joom 失憶小站--失憶防止記錄器
在RHEL4上架設PPTPD VPN
« 回覆 #4 於: 2005-09-26 00:11 »
場景<4>當你想提供ftp/telnet或其他service給親朋好友使用,然後想使用tcp wrapper來確認來源ip,卻總是遇到一些動態ip的user,這時拼命加進hosts.allow也不是辦法,但是這時候卻可以請他們連上vpn後再來使用

場景<5>如果您的mail server不想使用auth smtp的話,請在外出差的user連回vpn後再寄信也是一種辦法
http://11way.com/joom 失憶小站--失憶防止記錄器

duncanlo

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 7312
    • 檢視個人資料
在RHEL4上架設PPTPD VPN
« 回覆 #5 於: 2005-09-26 09:01 »
在公司外面又想用notes內的AP時....(不是每個notes ap都可以上web介面?!)

peteryang

  • 憂鬱的高中生
  • ***
  • 文章數: 105
    • 檢視個人資料
在RHEL4上架設PPTPD VPN
« 回覆 #6 於: 2005-10-06 15:07 »
各位先進,小弟可以用pptpd連到server,但是卻不能ping,也不能透過vpn上網,小弟有把使用遠端為預設閘道打勾,但是還是不能上網,而且連ssh也連不上vpn server,ping 其它的ip也不能,會time out,不知道是什麼原因,煩請各位先進不吝指教,謝謝

peteryang

  • 憂鬱的高中生
  • ***
  • 文章數: 105
    • 檢視個人資料
在RHEL4上架設PPTPD VPN
« 回覆 #7 於: 2005-10-06 17:28 »
各位先進,小弟後來把forword的預設改為accept後就可以了,下面是小弟的iptables的設定
代碼: [選擇]
# Generated by iptables-save v1.3.0 on Thu Oct  6 17:18:06 2005
*filter
:FORWARD ACCEPT [0:0]
:INPUT DROP [2:267]
:LOG_ACCEPT - [0:0]
:LOG_ALERT - [0:0]
:LOG_DROP - [0:0]
:LOG_FTP - [0:0]
:LOG_INPUT - [0:0]
:LOG_OUT - [0:0]
:LOG_PPTPD - [0:0]
:OUTPUT DROP [0:0]
:SSH_OUT - [0:0]
-A FORWARD -p tcp -m multiport --dports 135,137,138,139,445 -j DROP
-A FORWARD -p udp -m multiport --dports 135,137,138,139,445 -j DROP
-A FORWARD -i eth1 -p tcp -m tcp --dport 1723 -j ACCEPT
-A FORWARD -i eth1 -p gre -j ACCEPT
-A FORWARD -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -j ACCEPT
-A INPUT -s 211.55.31.5 -i eth1 -j DROP
-A INPUT -s 210.59.18.218 -i eth1 -j DROP
-A INPUT -s 210.34.159.18 -i eth1 -j DROP
-A INPUT -s 200.250.136.41 -i eth1 -j DROP
-A INPUT -s 59.120.171.146 -i eth1 -j DROP
-A INPUT -s 60.248.55.235 -i eth1 -j DROP
-A INPUT -s 61.129.72.97 -i eth1 -j DROP
-A INPUT -s 211.55.31.5 -i eth1 -j DROP
-A INPUT -s 59.120.43.88 -i eth1 -j DROP
-A INPUT -s 193.2.98.200 -i eth1 -j DROP
-A INPUT -s 209.19.0.246 -i eth1 -j DROP
-A INPUT -s 203.228.32.145 -i eth1 -j DROP
-A INPUT -s 61.220.241.6 -i eth1 -j DROP
-A INPUT -s 202.154.208.50 -i eth1 -j DROP
-A INPUT -s 69.10.132.119 -i eth1 -j DROP
-A INPUT -s 194.126.117.202 -i eth1 -j DROP
-A INPUT -s 218.22.97.82 -i eth1 -j DROP
-A INPUT -s 210.118.26.50 -i eth1 -j DROP
-A INPUT -s 199.186.199.2 -i eth1 -j DROP
-A INPUT -s 216.239.37.125 -i eth1 -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -p icmp -m icmp --icmp-type 8 -j LOG_DROP
-A INPUT -i eth1 -p icmp -m icmp --icmp-type 8 -j DROP
-A INPUT -i ! eth0 -p tcp -m tcp --dport 20 -j LOG_FTP
-A INPUT -p tcp -m multiport --dports 20,21 -j ACCEPT
-A INPUT -i ! eth0 -p tcp -m tcp --dport 22 -j LOG_ALERT
-A INPUT -s 192.168.200.0/255.255.255.0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth1 -p gre -j LOG_PPTPD
-A INPUT -p gre -j ACCEPT
-A INPUT -i eth1 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 68 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth1 -p udp -m multiport --dports 135,137,138,139,445 -j DROP
-A INPUT -s 192.168.200.0/255.255.255.0 -p udp -m udp --dport 161 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 1723 -j LOG_PPTPD
-A INPUT -i eth1 -p tcp -m tcp --dport 1723 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
-A INPUT -i eth1 -j LOG_INPUT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A LOG_ACCEPT -j LOG --log-prefix "[IPTABLES ACCEP]:" --log-level 7 --log-tcp-options --log-ip-options
-A LOG_ACCEPT -j RETURN
-A LOG_ALERT -j LOG --log-prefix "[IPTABLES ALERT]:" --log-level 7 --log-tcp-options --log-ip-options
-A LOG_ALERT -j RETURN
-A LOG_DROP -j LOG --log-prefix "[IPTABLES DROP]:" --log-level 7 --log-tcp-options --log-ip-options
-A LOG_DROP -j RETURN
-A LOG_FTP -j LOG --log-prefix "[IPTABLES FTP]:" --log-level 7 --log-tcp-options --log-ip-options
-A LOG_FTP -j RETURN
-A LOG_INPUT -j LOG --log-prefix "[IPTABLES INPUT]:" --log-level 7 --log-tcp-options --log-ip-options
-A LOG_INPUT -j RETURN
-A LOG_OUT -j LOG --log-prefix "[IPTABLES OUT]:" --log-level 7 --log-tcp-options --log-ip-options
-A LOG_OUT -j RETURN
-A LOG_PPTPD -j LOG --log-prefix "[IPTABLES PPTPD]:" --log-level 7 --log-tcp-options --log-ip-options
-A LOG_PPTPD -j RETURN
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -o eth1 -p gre -j ACCEPT
-A OUTPUT -o ! eth0 -p tcp -m tcp --dport 20 -j LOG_FTP
-A OUTPUT -o eth1 -p tcp -m multiport --dports 20,21 -j ACCEPT
-A OUTPUT -o ! eth0 -p tcp -m tcp --dport 22 -j LOG_ALERT
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A OUTPUT -o eth1 -p tcp -m multiport --dports 67,68 -j ACCEPT
-A OUTPUT -o eth1 -p udp -m multiport --dports 67,68 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A OUTPUT -o eth1 -p udp -m udp --dport 123 -j ACCEPT
-A OUTPUT -d 192.168.200.0/255.255.255.0 -o eth0 -p udp -m udp --dport 161 -j ACCEPT
-A OUTPUT -o eth1 -p tcp -m tcp --dport 1723 -j ACCEPT
-A OUTPUT -s ! 192.168.200.0/255.255.255.0 -j LOG_OUT
-A OUTPUT -o eth1 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A SSH_OUT -j LOG --log-prefix "[IPTABLES SSH]:" --log-level 7 --log-tcp-options --log-ip-options
-A SSH_OUT -j RETURN
COMMIT
# Completed on Thu Oct  6 17:18:06 2005
# Generated by iptables-save v1.3.0 on Thu Oct  6 17:18:06 2005
*mangle
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [227811:20303162]
:OUTPUT ACCEPT [227936:20186168]
:POSTROUTING ACCEPT [874:162185]
:PREROUTING ACCEPT [822:136125]
COMMIT
# Completed on Thu Oct  6 17:18:06 2005
# Generated by iptables-save v1.3.0 on Thu Oct  6 17:18:06 2005
*nat
:OUTPUT ACCEPT [24:1691]
:POSTROUTING ACCEPT [24:1691]
:PREROUTING ACCEPT [22:1417]
:ping_death - [0:0]
:port_scan - [0:0]
:syn_flood - [0:0]
-A POSTROUTING -s 192.168.200.0/255.255.255.0 -o eth1 -j MASQUERADE
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j LOG --log-prefix "[IPTABLES NULL-SCAN]:"
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN -j LOG --log-prefix "[IPTABLES SYNFIN-SCAN]:"
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j LOG --log-prefix "[IPTABLES NMAP-XMAS-SCAN]:"
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN -j LOG --log-prefix "[IPTABLES FIN-SCAN]:"
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,PSH,URG -j LOG --log-prefix "[IPTABLES NMAP-ID]:"
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,PSH,URG -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j LOG --log-prefix "[IPTABLES SYN-RST]:"
-A PREROUTING -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
-A PREROUTING -p tcp -m tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW -j LOG --log-prefix "[IPTABLES NEW-WITHOUT-SYN]:"
-A PREROUTING -p tcp -m tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW -j DROP
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -j port_scan
-A PREROUTING -p icmp -m icmp --icmp-type 8 -j ping_death
-A PREROUTING -s 10.0.0.0/255.0.0.0 -i eth1 -j DROP
-A PREROUTING -s 127.0.0.0/255.0.0.0 -i eth1 -j DROP
-A PREROUTING -s 172.16.0.0/255.240.0.0 -i eth1 -j DROP
-A PREROUTING -s 192.168.0.0/255.255.0.0 -i eth1 -j DROP
-A PREROUTING -s 224.0.0.0/240.0.0.0 -i eth1 -j DROP
-A PREROUTING -s 240.0.0.0/248.0.0.0 -i eth1 -j DROP
-A ping_death -m limit --limit 1/sec --limit-burst 4 -j RETURN
-A ping_death -j LOG --log-prefix "[IPTABLES PING-DEATH]:" --log-level 6
-A ping_death -j DROP
-A port_scan -m limit --limit 1/sec --limit-burst 4 -j RETURN
-A port_scan -j LOG --log-prefix "[IPTABLES PORT-SCAN]:" --log-level 6
-A port_scan -j DROP
-A syn_flood -m limit --limit 3/min --limit-burst 3 -j RETURN
-A syn_flood -j LOG --log-prefix "[IPTABLES SYN-FLOOD]:" --log-level 6
-A syn_flood -j DROP
COMMIT
# Completed on Thu Oct  6 17:18:06 2005


小弟把forword預設開啟為accept之後就可以ping vpn裡的主機,也可以用terminal連2003 server,可是小弟有用log來看,但是找不到在vpn裡有用到其它的port,只有看到gre及1723,而且小弟有在forword裡開啟這兩個,但是還是不行,不知各位先進是否知道問題在那,因為小弟真的不知道是那裡有問題了,煩請各位先進不吝指教,謝謝

Yves

  • 可愛的小學生
  • *
  • 文章數: 1
    • 檢視個人資料
在RHEL4上架設PPTPD VPN
« 回覆 #8 於: 2005-10-13 15:24 »
引用
-A INPUT -d 220.130.205.22 -i eth0 -p tcp -m tcp --dport 47 -j ACCEPT

應該是Protocol 47, 不是Port 47

peteryang

  • 憂鬱的高中生
  • ***
  • 文章數: 105
    • 檢視個人資料
在RHEL4上架設PPTPD VPN
« 回覆 #9 於: 2005-10-25 10:40 »
目前小弟先把Forward的預設打開,可以連上VPN了,但是卻不能用網芳的功能及用IP去連,像Win的terminal也不能連,不知是否還有其它的設定要設,還是是小弟的Firewall設定有問題,煩請各位先進不吝指教,謝謝

Audi

  • 可愛的小學生
  • *
  • 文章數: 19
    • 檢視個人資料
Re: 在RHEL4上架設PPTPD VPN
« 回覆 #10 於: 2005-11-17 23:56 »
引述: "dandy"

10.設定/etc/pptpd.conf
加入下列:(使用 /etc/ppp/options.pptp,原本的option /etc/ppp/options.pptpd保留)

debug
option /etc/ppp/options.pptp
logwtmp
localip 192.168.254.1
remoteip 192.168.254.50-100

<說明>pptpd的原理跟撥號網路類似,由pptpd做為daemon,接通後起一個ppp0的interface,所以會用到ppp的設定,這時需考慮到彼此的網路規劃,一般adsl的ip分享器用的是192.168.0.x或192.168.1.x,
所以如果你的內部網路用的也是192.168.1.x或192.168.0.x,雖然不會衝突,可是路由不知會往哪邊跑,如下圖,你必須知道eth0,eth1,ppp0所代表的意思,將eth1跟ppp0設成一樣的ip,是為了iptables的方便設定,
也就是由192.168.254.x連過來的vpn都視為192.168.254.1所路由的ip,另外localip和remoteip的最大連接數為50-100=50個,超過的話,將會忽略連接要求


可以提供架構圖嗎?謝謝

tcwy

  • 憂鬱的高中生
  • ***
  • 文章數: 93
  • 性別: 男
    • 檢視個人資料
MSN 上不去
« 回覆 #11 於: 2006-04-16 20:10 »
各位先進,

在安裝 pptpd 成功之後,可以順利連線,也可以上 www, ftp .. 但是 msn 上不去說 ..

不過透過 msn 的連線檢查,結果卻是連線正常..

有和我類似狀況的嗎?

以下是我 rc.local 的設定.

modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc

echo "1" > /proc/sys/net/ipv4/ip_forward