在 CentOS 架設 L2TP/IPsec VPN

之前嘗試過PPTP和OpenVPN,但PPTP太弱,而OpenVPN太依賴第三方軟體,因此想說來試試看L2TP/IPsec

架設的軟體使用epel上的strongSwan和xl2tpd,不用openSwan是因OSX在連線的時候會遇到伺服器端錯誤,據說是openSwan本身的問題

安裝前先把必要套件補完

yum install strongswan xl2tpd

strongSwan裝完之後可以在/etc/strongswan設定,裏頭的strongswan.conf沒特別設定不需要去動,預設是所有plugin都載入

在這之前,記得先調整kernel和iptables

sed -i ‘s/net.ipv4.ip_forward[ ]*=[ ]*0/net.ipv4.ip_forward = 1/g‘ /etc/sysctl.conf && sysctl -p # 啟動ip_forward
# 防火牆規則僅供參考
iptables -A INPUT -p udp --dport 500 -j ACCEPT # IKE
iptables -A INPUT -p udp --dport 4500 -j ACCEPT # NAT-T
iptables -A INPUT -p udp -m policy --dir in --pol ipsec -m udp --dport 1701 -j ACCEPT # 強制l2tp透過ipsec存取
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j MASQUERADE # 轉送VPN流量
/etc/init.d/iptables save

接著開始設定IPsec連線部分,我這邊使用PSK,其他驗證方法可以上官網文件查

/etc/strongswan/ipsec.conf

config setup

conn %default
        ikelifetime=60m
        keylife=20m
        rekeymargin=3m
        keyingtries=1

conn l2tp
        keyexchange=ikev1 # IKE版本
        left=>>>>{對外IP}<<<<<<
        leftsubnet=0.0.0.0/0
        leftprotoport=17/1701 # l2tp udp流量
        authby=secret # PSK驗證
        leftfirewall=no # 不要讓strongswan更改防火牆
        right=%any # 任意IP
        rightprotoport=17/%any # 任意port udp流量
        type=transport # ipsec transport mode
        auto=add

/etc/strongswan/ipsec.secrets

# ipsec.secrets - strongSwan IPsec secrets file
: PSK "A long preshared key for ipsec"

IPsec這邊設定和網路上的不一樣是因為新的strongswan使用charon來處理IKEv1,而不是以往的pluto

而且有時候設定太多反而會有一些奇怪的錯誤,於是就留預設值

如此一來IPsec的部分就完成了,再來是L2TP

/etc/xl2tpd/xl2tpd.conf

[global]
listen-addr = >>>>{對外IP}<<<<

[lns default]
ip range = 172.16.1.100-172.16.1.200; VPN使用者配發的IP段
local ip = 172.16.1.1; VPN Server本身的聯絡IP
assign ip = yes
;refuse chap = yes
;refuse pap = yes <<<我個人覺得有ipsec使用pap沒關係,而且某些情況下(例如pam),必須使用
require authentication = yes
unix authentication = yes; 使用pam驗證,用密碼檔記得刪掉這行
name = NyanVPNServer; 這個名字等一下會用到,可以任意取名
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

如果上面的xl2tpd.conf使用了pam驗證,要修改下面這個

/etc/pam.d/ppp

#%PAM-1.0
auth    required        pam_nologin.so
auth    required        pam_unix.so
account required        pam_unix.so
session required        pam_unix.so

PPP的部分

/etc/ppp/options.xl2tpd

ipcp-accept-local
ipcp-accept-remote
ms-dns  8.8.8.8 # 推送的DNS資訊
ms-dns  8.8.4.4
# ms-dns  192.168.1.1
# ms-dns  192.168.1.3
# ms-wins 192.168.1.2
# ms-wins 192.168.1.4
noccp
auth
crtscts
idle 1800
#mtu 1410
#mru 1410
mtu 1200 # 我也不知道mtu/mru怎麼設,不過這個會動
mru 1200
nodefaultroute
debug
lock
proxyarp
connect-delay 5000
login # 透過PAP使用系統密碼驗證,這也是為什麼前面不能拒絕PAP的原因
#require-mschap-v2 強迫使用MS-CHAP-V2

最後是連線密碼,CHAP和PAP的密碼檔是分開的,依照前面設定的內容和使用者的選擇而定

/etc/ppp/*-secrets

# Secrets for authentication using PAP
# client(帳號)  server(前面提到的name)   secret(密碼)   IP addresses(配發的IP)
alice           NyanVPNServer          "AliceIsCute"  *
# 下面這個是PAM的用法
*               NyanVPNServer          ""             *

設定就到這邊為止,接著就可以啟動VPN了

service strongswan start
service xl2tpd start

成功連上VPN之後,如果無法連外,檢查看看iptables的FORWARD chain是不是有阻擋連線的行為

本文来自:http://atifans.net/articles/setup-l2tp-ipsec-vpn-on-centos/

时间: 2024-10-12 18:28:59

在 CentOS 架設 L2TP/IPsec VPN的相关文章

六步搞定centos 6下l2tp + ipsec VPN服务器配置

近年来最累的一次折腾.有必要好好记录一下.跟了网上N个教程,有好几个都走不通.最后自己彻底整理了一次.把自己的经验和配置分享出来. 首先隆重感谢一下至今素未谋面的老熊,真是好人啊.06年的时候就在plesk服务器换ip的事上,帮了我好大的忙.没想到这次在我卡在第6步,最绝望的时候,这只熊的婀娜身影再一次出现在了我的生活中.还在漆黑的深夜中陪伴在我的身边.以下隆重公布一下他的QQ,造福广大网友!QQ: 499******* (后几位号码,为符合当地莫名其妙的“相关法规”,被系统自动屏蔽...) 其

架设基于StrongSwan的L2tp/IPSec VPN服务器

架设基于StrongSwan的L2tp/IPSec VPN服务器 参考: http://agit8.turbulent.ca/bwp/2011/01/setting-up-a-vpn-server-with-ubuntu-1004-and-strongswan/ 以下操作基于Debian 6 安装StrongSwan apt-get install libgmp3-dev libssl-dev make cd /tmp wget http://download.strongswan.org/st

通过使用 L2TP/IPsec VPN 协议连接到 VPN Gate

本文档描述了如何使用 L2TP/IPsec VPN 客户端连接到 VPN Gate 的一个 VPN 中继服务器. L2TP/IPsec VPN 客户端在 Windows.Mac.iOS 和安卓上的插件.这比 使用 OpenVPN 容易配置.在您尝试使用 OpenVPN 之前,推荐使用 L2TP/IPSec VPN.然而,一些网络或防火墙拦截 L2TP/IPSec 数据包.如果 L2TP/IPsec 失败,请尝试 OpenVPN. L2TP/IPsec VPN 的连接参数 如果您知道如何安装,通过

基于Linux的 L2TP+IPSec VPN服务器搭建

一.硬件说明服务器采用两张网卡eth0用于连接内网eth1用于VPN网关. 基本网络环境定义内网网段192.168.100.0/24 VPN网段192.168.200.0/24 eth0IP192.168.100.101/24   网关192.168.100.1 eth1IP192.168.90.200.1/24  网关留空 二.系统CentOS 6.5 (使用最小化安装) 三.软件 1. openswan:提供IPSec加密 2. lsof:用于数据访问 3. ppp:提供用户名.密码 认证

树莓派:L2TP/IPsec VPN 服务器一键安装脚本

经试验,在树莓派上一次成功,很好用,谢谢原作者!!!此文转自:https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/README-zh.md IPsec VPN 服务器一键安装脚本 使用 Linux Shell 脚本一键快速搭建 IPsec VPN 服务器.支持 IPsec/L2TP 和 Cisco IPsec 协议,可用于 Ubuntu,Debian 和 CentOS 系统.你只需提供自己的 VPN 登录凭证,然后运行脚本自动完成安装. I

CentOS Linux 安装配置L2tp+IPsec VPN 解决VPN不稳定

在VPS上部署VPN有一段时间了,但用SSH较多,偶尔用手机连连VPN.最近用的时候遇到一些小问题:“断开VPN连接后再次连接的时候就连不上了”, 重启IPsec后才能恢复.当时安装的时候图省心,直接用的一键脚本,虽然过程中也遇到些小问题,但后来都谷歌解决了,之后也没有记录安装过程.今天连带解决这个问题转发一帖就当复习了. 考虑到很多网络环境的不确定已经一些移动通信网络对pptp的不支持,早晚要用得上L2tp,所以这次就顺便搭一下. 第二层隧道协议L2TP(Layer 2 Tunneling P

CentOS Linux VPS安装IPSec+L2TP VPN

CentOS Linux VPS安装IPSec+L2TP VPN 时间 2011-08-28 14:39:48 天使羊波波闪耀光芒相似文章 (0) 原文  http://www.live-in.org/archives/818.html 第二层隧道协议L2TP(Layer 2 Tunneling Protocol)是一种工业标准的Internet隧道协议,它使用UDP的1701端口进行通信.L2TP本身并没有任何加密,但是我们可以使用IPSec对L2TP包进行加密.L2TP VPN比PPTP V

[实战]CentOS 6.x 基于ipsec搭建L2TP/PPTP VPN服务

一.环境CentOS6.6 x64EPEL扩展源 二.安装PPTP1.加载支持模块 #modprobe ppp-compress-18 && echo MPPE is ok 2.安装epel源 #rpm -ivh http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm 或 #yum install epel-release 3.开启包转发 #sysctl -w net.ipv4.ip_forward=1 4.

搭建L2TP over IPSec VPN

搭建L2TP over IPSec VPN 1.服务器安装软件 yum install openswan xl2tpd ppp 2.服务器配置文件/etc/ipsec.conf修改内容如下,VPN客户端内网地址网段自定义,公网地址为服务器公网地址 config setup     protostack=netkey     dumpdir=/var/run/pluto/     nat_traversal=yes     virtual_private=%v4:VPN客户端内网地址网段/24