Welcome to Yumao′s Blog.
Ubuntu VPN服務器搭建
, 2012年04月20日 , , 评论 在〈Ubuntu VPN服務器搭建〉中留言功能已關閉 ,

1、安裝pptpd
  sudo apt-get install pptpd
2、主要配置文件及對應參數說明
  /etc/pptpd.conf  #PPTP服務器的主配置文件
    option option-file  #指定一個選項文件,裡面的內容作為pptpd進程啟動時的命令行參數。
              #在執行pptpd命令時使用”–option”選項指定參數效果是一樣的
    stimeout seconds  #派生pptpctrl進程處理客戶端連接以前,等客戶端PPTP包的時間,單位為秒,默認是10s。
              #主要用於防止DoS攻擊
    debug       #啟用調試模式
    bcrelay internal-interface  #是否啟用廣播包中繼功能。如果啟用,將把從internal-interface接口收到的廣播包轉發個客戶端。
    connections n    #限制客戶端連接數,默認為100。
              #如果由pptpd分配IP給客戶端,則地址分配完後,客戶端連接也不能建立。
    delegate      #默認情況該選項不存在。此時,由pptpd進程管理IP地址的分配,它將把下一個可分的IP分給客戶端。
              #如果該選項存在,則pptpd進程不負責IP地址分配,
              #由客戶端對應的pppd進程採用radius或chap-secrets方式進行分配。
    localip ip-specification    #在PPP連接隧道的本地端使用的IP地址(簡單的說就是服務端地址)。
                  #如果只指定一個,則所有的客戶端對應的服務端地址都是這個。
                  #否則,每個客戶端都必須指定不同的服務端地址,服務端地址用完後,客戶端的連接將被拒絕。
                  #如果使用了delegate選項,則該選項失效。
    remoteip op-sepecification  #指定分配給遠程客戶端的IP地址。每個連接的客戶端都必須分配到一個IP地址。
                  #如果使用了delegate選項,則該選項失效。
    noipparam    #默認情況下,客戶端原始的IP地址是傳遞給ip-up腳本。如果存在該選項,將不傳遞。
    listen ip-address  #指定本地網絡接口的IP地址,pptpd進程將只監聽這個網絡接口的PPTP連接。默認監聽所有本地接口。
    pidfile pid-file  #指定進程PID文件的位置和文件名。
    speed speed  #指定PPTP連接的速度,默認是115200bps,Linux系統中,該選項一般無效。
    logwtmp    #指定是否啟用wtmp系統日誌

    示例配置(/etc/pptpd.conf)
        option /etc/ppp/options.pptpd
        #debug
        stimeout 10
        #noipparam
        logwtmp
        #brcelay ech1
        #delegate
        connections 20
        #localip 192.168.0.1
        #remoteip 192.168.0.100-200
/etc/ppp/pptpd-options #DNS配置地址
  /etc/ppp/options.pptpd  #pptpd命令運行時的選項存放在該文件中
  /etc/ppp/chap-secrets  #保存VPN客戶端撥入時使用的用戶名、密碼、分配的IP地址(*表示任意IP)
    示例配置(/etc/ppp/chap-secrets)
        #Secrets for authentication using CHAP
        #client    server    secret    IP address
        vpntest    pptpd    vpnpassword    *
    上述配置是設置了一個用戶名為vpntest的VPN賬號,密碼為vpnpassword,服務類型為pptpd,分配給該用戶的IP地址未指定。

3、修改配置文件後,運行
    /etc/init.d/pptpd start    #運行pptp進程
    or
    /etc/init.d/pptpd restart    #重啟pptp進程
  配置信息才能生效。
4、檢驗PPTP服務器是否運行
  在控制台輸入命令
    sudo netstat -anp | grep pptpd
  將得到如下結果,說明PPTP服務器運行成功。
    tcp    0    0.0.0.0:1723    0.0.0.0:*    LISTEN 6426/pptpd
    unix    2    [ ]    DGRAM    54100    6426/pptpd
  為了客戶端能夠順利連接到VPN服務器,還需主機防火牆開放VPN端口(默認為1723)
    sudo iptables -I INPUT -p tcp –dport 1723 -j ACCEPT
5、在VPN服務器上設置對於客戶端IP地址的網絡地址轉換(NAT)
  到目前為止,VPN服務器確實搭建完成,客戶端也可以正常連接了,但是客戶端卻不能通過該VPN服務器上網,我們還需要為客戶端IP地址設置網絡地址轉換(NAT)
  查看 “/proc/sys/net/ipv4/ip_forward” 文件中的值是否為”1″,
  如果不是,則需在 “/etc/sysctl.conf” 文件中添加一行 “net.ipv4.ip_forward=1″
  運行

  sudo /etc/init.d/procps restart
  sudo iptables --table nat --append POSTROUTING --out-interface <网络接口> --jump MASQUERADE

  好吧,到這裡VPN服務器搭建完成!!!
6、斷開VPN連接以及VPN關閉VPN服務器
  運行ifconfig來查看當前的VPN連接,如果想斷開某個VPN連接,首先查詢其PID,如:
cat /var/run/ppp0.pid
  根據查詢到得PID,將該進程結束即可斷開該VPN連接
sudo kill 5834
  至於pptp的PID,運行
    sudo netstat -anp | grep pptpd
  從返回的結果便可看出pptp的PID,如從上面的運行結果來看pptp的PID為:6426,那麼運行
    sudo kill 6426
  即可關閉VPN服務。

关键字:, , ,

评论已关闭