PPTP安裝與配置

    隧道技術的基本過程是在源局域網與公網的接口處將數據(能夠是ISO 七層模型中的數據鏈路層或網絡層數據)做爲負載封裝在一種能夠在公網上傳輸的數據格式中,在目的局域網與公網的接口處將數據解封裝,取出負載。被封裝的數據包在互聯網上傳遞時所通過的邏輯路徑被稱爲「隧道」。linux

目前×××隧道協議有4種:點到點隧道協議PPTP、第二層隧道協議L2TP、網絡層隧道協議IPSec以及SOCKS v5.vim

    原理:PPTP使用一個TCP鏈接對隧道進行維護,使用通用路由封裝(GRE)技術把數據封裝成PPP數據幀經過隧道傳送。能夠對封裝PPP幀中的負載數據進行加密或壓縮。安全

檢查bash

因爲部分VPS可能沒法安裝,請先檢查服務器環境。服務器

第一步:檢查內核MPPE補丁是否安裝cookie

modprobe ppp-compress-18 && echo ok        #執行結果顯示爲ok則表示經過。

第二步:檢查系統是否開啓TUN/TAP支持網絡

cat /dev/net/tun    #結果爲cat: /dev/net/tun: File descriptor in bad state

第三步:檢查PPP是否支持MPPE.ssh

strings '/usr/sbin/pppd' |grep -i mppe | wc --lines    #結果爲0則表示不支持,輸出大於30的數字則表示支持MPPE(Microsoft Point to Point Encryption,微軟點對點加密)

準備:
tcp

關閉防火牆ide

service iptables stop

下載咱們所需的有關PPTP的軟件。

wget http://www.hi-vps.com/downloads/dkms-2.0.17.5-1.noarch.rpm
wget http://wty.name/linux/sources/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
wget http://poptop.sourceforge.net/yum/stable/rhel6/i386/ppp-2.4.5-33.0.rhel6.i686.rpm
wget http://poptop.sourceforge.net/yum/stable/rhel6/i386/pptpd-1.4.0-1.el6.i686.rpm

安裝:

爲方便解決軟件的依賴性,咱們可使用yum來安裝本地的軟件包。注意:我是在安裝Kernel時一直安裝不成功,重啓服務器後正常安裝。

yum install dkms-2.0.17.5-1.noarch.rpm     #自動解決了依賴性
yum install ppp-2.4.5-33.0.rhel6.i686.rpm
yum install kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
yum install pptpd-1.4.0-1.el6.i686.rpm

配置:

1.配置/etc/ppp/options.pptpd

cp /etc/ppp/options.pptpd /root/backup/options.pptpd.bak        #備份原始的配置文件。
vim /etc/ppp/options.pptpd                                      #編輯配置文件
#加入之前兩行後保存退出
ms-dns 8.8.8.8
ms-dns 8.8.4.4

2.配置/etc/ppp/chap-secrets

cp /etc/ppp/chap-secrets /root/backup/chap-secrets.bak        #備份原始配置文件。
vim /etc/ppp/chap-secrets                                     #編輯配置文件
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
  ***user1      pptpd   ***user1                *                #添加×××用戶,名爲***user1,密碼爲***user1,容許全部主機鏈接。

3.配置/etc/pptpd.conf

cp /etc/pptpd.conf /root/backup/pptpd.conf.bak
vim /etc/pptpd.conf
#添加以下兩行
localip 192.168.0.1
remoteip 192.168.0.11-130                              //表示***客戶端得到ip的範圍

4.配置/etc/sysctl.conf

vim /etc/sysctl.conf
#修改覺得部分
net.ipv4.ip_forward=1                        #開啓轉發功能
#net.ipv4.tcp_syncookies=1                      #將該項註釋掉
sysctl -p        #讓sysctl.conf的配置即時生效。

啓動服務:

service pptpd start            #啓動服務,當使用restart時已創建的鏈接不會斷開。

這是咱們就能夠鏈接×××了,但這時鏈接上是上不了網的,咱們須要在iptables中開啓nat功能。

service iptables start
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE

或使用

service iptables start
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT  --to-source 你本身的公網IP

這時咱們能夠測試咱們的×××了,確認沒有問題後咱們能夠再優化一下咱們的iptables,提升服務器的安全性。

#iptables script
#Author:Winter
#Date:2014-06-21
#Version:1.0
#++++++++++++++++++++++++++++++++++++
 
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
export PATH
#加載相關模塊:
modprobe ip_tables
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc 
 
# 清空全部規則:
iptables -F
iptables -X
iptables -Z
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
  
# 設置默認規則:                                                
iptables -P INPUT DROP                                        #默認拒絕全部進入的請求
iptables -P OUTPUT DROP                                   #默認拒絕全部出去的請求
iptables -P FORWARD DROP                            #默認拒絕全部轉發的請求
iptables -t nat -P PREROUTING ACCEPT               
iptables -t nat -P POSTROUTING ACCEPT               
iptables -t nat -P OUTPUT ACCEPT                #默認容許全部nat的請求
  
# 容許全部進出迴環口的請求
iptables -A INPUT -i lo -j ACCEPT
# 容許特定端口(對應服務)的請求
iptables -A INPUT -p tcp --dport 22 -j ACCEPT             #ssh
iptables -A INPUT -p tcp --dport 21 -j ACCEPT             #ftp
iptables -A INPUT -p tcp --dport 20 -j ACCEPT             #ftp
iptables -A INPUT -p tcp --dport 80 -j ACCEPT             #www
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT       #PPT
iptables -A INPUT -p gre -j ACCEPT                      #grp,協議號47
iptables -A INPUT -p tcp --sport 443 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT 

iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT            #容許×××客戶端轉發
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT            #容許×××客戶端轉發
 
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE        #nat地址轉換
iptables -I OUTPUT 1 -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT    #容許外出請求。
相關文章
相關標籤/搜索