歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

fedora 搭建pptp vpn server

1 首先去sourceforge上下載pptpd的源碼 http://sourceforge.net/projects/poptop/files/?source=navbar \
2 對源碼進行編譯<喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPgouL2NvbmZpZ3VyZSAmYW1wOyZhbXA7IG1ha2UgJmFtcDsmYW1wOyBtYWtlIGluc3RhbGwKPGJyPgoKPHN0cm9uZz4zIL2r1LTC68S/wrzPwrXExeTWw87EvP7Eo7Dmv72xtLW9z7XNs9a4tqjOu9bDPC9zdHJvbmc+Cjxicj4KCjMuMSC/vbG0c2FtcGxlcy9jaGFwLXNlY3JldHO6zXNhbXBsZXMvb3B0aW9ucy5wcHRwtb0vZXRjL3BwcMS/wrzPwgpjcCAuL2NoYXAtc2VjcmV0cyAuL29wdGlvbnMucHB0cCAvZXRjL3BwcAo8YnI+CgozLjIgv72xtHNhbXBsZXMvcHB0cGQuY29uZrW9L2V0Y8S/wrzPwgpjcCAuL3BwdHBkLmNvbmYgL2V0Ywo8YnI+Cgo0ILbUxeTWw87EvP69+NDQ0N64xAo8YnI+Cgo0LjEg0N64xC9ldGMvcHB0cGQuY29uZgogICAgvatwcHRwZC5jb25m1+7PwsPmtcRsb2NhbGlwus1yZW1vdGVpcLXExeTWw9DeuMTOqsjnz8KjrDxicj4KCgo8dGFibGUgY2xhc3M9"ynote_table" border="1" cellpadding="2" cellspacing="0" width="100%"> localip 222.201.139.156 # 本地機器物理IP地址,可以通過ifconfig獲取 remoteip 192.168.0.234-238,192.168.0.245 # 分配給遠程連接過來的機器分配的IP地址空間

4.2 修改/etc/ppp/chap-secrets,是遠程連接時的用戶名和密碼,有了配置模版,一看就明白如何添加 # Secrets for authentication using CHAP # client server secret IP addresses #username pptpd password * ethanshan pptpd 111111 *
4.3 修改/etc/ppp/options.pptpd 在Netwok and Routing這個配置項的下面找到ms-dns這個選項,默認是被注釋掉的,將其修改為如下配置,
ms-dns 222.201.130.30 ms-dns 222.201.130.33 ms-dns後面的domain name system的IP地址可以通過查看/etc/resolv.conf文件獲取。

4.4 修改/etc/sysctl.conf中packet forward配置項 打開文件找到net.ipv4.ip_forward修改為=1

# Kernel sysctl configuration file # # For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and # sysctl.conf(5) for more details.
# Controls IP packet forwarding # Default this conf is 0, I use pptpd, so edit it to 1 net.ipv4.ip_forward = 1
# Controls source route verification net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename. # Useful for debugging multi-threaded applications. kernel.core_uses_pid = 1
# Disable netfilter on bridges. net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0 然後運行如下命令使其立即生效,
sysctl -p
4.5 修改/etc/ppp/ip-up配置文件中的mtu值 打開配置文件,在最後的exit命令前加如下命令
ifconfig $1 mtu 1400

5 如果開啟了iptables防火牆,需要對其添加pptpd的配置,執行如下幾條命令 iptables -A INPUT -i eth0 -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -i eth0 -p gre -j ACCEPT
iptables -A FORWARD -i ppp+ -o p3p1 -j ACCEPT
iptables -A FORWARD -i eth0 -o ppp+ -j ACCEPT
iptables -A OUTPUT -p tcp --dport 1723 -j ACCEPT
iptables -A OUTPUT -p gre -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
6 運行pptpd,通過如下命令使pptpd在前台運行 pptpd -f
7 pptpd運行錯誤 當Client連接是可能pptpd輸出pptpd-logwtmp.so無法找到,解決方法就是在編譯pptpd的目錄下的plugin目錄下的對應.so文件復制到/usr/lib/pptpd目錄下。 這樣可能會提示版本不對,可以修改plugin目錄下的patch.level.h文件,將其中的version改為錯誤輸出中尋找的後,再make以下,將新生成的.so文件覆蓋/usr/lib/pptpd目錄下的文件,這樣重新運行pptpd就沒有問題了。

8 Windows 鏈接配置 我配置時候,鏈接總是失敗,通過在網上查閱,發現需要將Data encryption這個選項設置為Optional encryption就可以了。
\\


9 限制賬號連接數量

linux系統上提供的pptp vpn服務默認采用的是chap認證方式。這種認證方式比較簡單,只要用戶名和密碼正確即可進行連接,不能對一個賬戶的連接數目,流量,速度進行限制。如 果要實現這眾多的限制,可以采用freeradius認證方式。但是我個人感覺配置freeradius可不是一般的繁瑣啊,花了某個晚上的幾個小時後我 最終放棄了…

不過如果僅僅只是對同一個賬戶的連接數目進行限制,倒是有一個簡單的辦法。這裡提供的方法改自某個英文網站。當用中文搜索不到自己想要的東西時,用英文搜下說不定能有新發現呢。

實現方法很簡單。只要在/etc/ppp文件夾下面建立一個名為auth-up的文件。在裡面寫入如下內容即可:

Click to closeBASH CODE
#!/bin/sh
# get the username/ppp line number from the parameters
  REALDEVICE=$1
  USER=$2
# create the directory to keep pid files per user
  mkdir -p /var/run/pptpd-users
# if there is a session already for this user, terminate the old one
  if [ -f /var/run/pptpd-users/$USER ]; then
    kill -HUP `cat /var/run/pptpd-users/$USER`
  fi
# copy the pid file of current user to /var/run/pptpd-users
  cp "/var/run/$REALDEVICE.pid" /var/run/pptpd-users/$USER

這樣只要一個帳號進行了連接,就在/var/run/pptpd-users目錄下記錄下來了。而一旦這個帳號在他處再次登錄,舊有的連接就被殺掉了。所以後面的連接具有優先權。


有道筆記連接: http://note.youdao.com/share/?id=fc97d357e5852a6f15cefb14a99f06d1&type=note
Copyright © Linux教程網 All Rights Reserved