CentOS6.5部署L2TP over IPSec

一、环境介绍:

  1、CentOS 6.5 (要求双网卡做软路由,如果只是做VPN可以单网卡)

    a、外网IP:192.168.0.133/24    b、内网IP:10.10.10.1/8

  2、Window 10 主机一台做为一台内网测试软路由使用;

    a、内网IP:10.10.10.10/8

二、开始前的网络测试:

  1、CentOS 6.5(以下简称VPN-Server)测试:

    a、测试外网网络是否联通;

#pingwww.baidu.com

    b、测试内网网络:

#ping10.10.10.10

  2、Windows 10 (以下简称Client)测试:

    a、测试是否可以联通VPN-Server:

#ping10.10.10.1

    b、测试是否可以上网(现在不能上网):

#pingwww.baidu.com

三、开始安装部署:

  以下操作在VPN-Server上操作:

  1、安装epel源:

    #cd/etc/yum.repos.d/    
    #wgethttp://mirrors.163.com/.help/CentOS6-Base-163.repo
    #yum-yinstallepel-release

  2、安装必须的软件(openswan、ppp、xl2tpd);

    openswan:提供IPSec加密

    ppp:提供密码认证

    xl2tpd:提供VPN服务

#yum-yinstallopenswanpppxl2tpd

  3、修改ipsec的配置文件:  

#cd/etc/ipsec.d/
#ls./*.conf|xargs-I{}mv{}{}.bak
#vimL2TP.conf

connL2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT

connL2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
keylife=1h
type=transport
left=192.168.0.133
leftprotoport=17/1701
right=%any
rightprotoport=17/%any

  

  4、配置ipsec的密钥:

#vim/etc/ipsec.d/L2TP.secrets

192.168.0.133%any:PSK"YourPsk"

  注:IP为你的服务器外网IP,“YourPsk”修改为你想要的密钥


  5、修改Forward转发:


#vim/etc/sysctl.conf

net.ipv4.ip_forward=1
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.all.log_martians=0
net.ipv4.conf.default.log_martians=0
net.ipv4.conf.default.accept_source_route=0
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0
net.ipv4.icmp_ignore_bogus_error_responses=1

#sysctl-p


  6、验证ipsec的运行状态


#serviceipsecstart
#ipsecverify

CheckingyoursystemtoseeifIPsecgotinstalledandstartedcorrectly:
Versioncheckandipsecon-path[OK]
LinuxOpenswanU2.6.32/K2.6.32-431.el6.x86_64(netkey)
CheckingforIPsecsupportinkernel[OK]
SArefkernelsupport[N/A]
NETKEY:TestingfordisabledICMPsend_redirects[OK]
NETKEYdetected,testingfordisabledICMPaccept_redirects[OK]
Checkingthatplutoisrunning[OK]
PlutolisteningforIKEonudp500[OK]
PlutolisteningforNAT-Tonudp4500[OK]
Checkingfor'ip'command[OK]
Checking/bin/shisnot/bin/dash[OK]
Checkingfor'iptables'command[OK]
OpportunisticEncryptionSupport[DISABLED]

  注:只要没有Faild就可以了

  

一、错误信息:

StartingplutoIKEdaemonforIPsec:InitializingNSSdatabase
See'manpluto'ifyouwanttoprotecttheNSSdatabasewithapassword

certutil-UtilitytomanipulateNSScertificatedatabases

Usage:certutil<command>-d<database-directory><options>

Validcommands:
-AAddacertificatetothedatabase(createifneeded)
-BRunaseriesofcertutilcommandsfromabatchfile
-EAddanEmailcertificatetothedatabase(createifneeded)
-CCreateanewbinarycertificatefromaBINARYcertrequest
-GGenerateanewkeypair
-DDeleteacertificatefromthedatabase
-FDeleteakeyfromthedatabase
-UListallmodules
-KListallprivatekeys
-LListallcerts,orprintoutasinglenamedcert
-MModifytrustattributesofcertificate
-NCreateanewcertificatedatabase
-TResettheKeydatabaseortoken
-OPrintthechainofacertificate
-RGenerateacertificaterequest(stdout)
-VValidateacertificate
-WChangethekeydatabasepassword
--upgrade-mergeUpgradeanolddatabaseandmergeitintoanewone
--mergeMergesourcedatabaseintothetargetdatabase
-SMakeacertificateandaddtodatabase

certutil-H<command>:Printavailableoptionsforthegivencommand
certutil-H:Printcompletehelpoutputofallcommandsandoptions
certutil--syntax:Printashortsummaryofallcommandsandoptions
Failedtoinitializenssdatabasesql:/etc/ipsec.d
.InitializingNSSdatabase
See'manpluto'ifyouwanttoprotecttheNSSdatabasewithapassword

certutil-UtilitytomanipulateNSScertificatedatabases

Usage:certutil<command>-d<database-directory><options>

Validcommands:
-AAddacertificatetothedatabase(createifneeded)
-BRunaseriesofcertutilcommandsfromabatchfile
-EAddanEmailcertificatetothedatabase(createifneeded)
-CCreateanewbinarycertificatefromaBINARYcertrequest
-GGenerateanewkeypair
-DDeleteacertificatefromthedatabase
-FDeleteakeyfromthedatabase
-UListallmodules
-KListallprivatekeys
-LListallcerts,orprintoutasinglenamedcert
-MModifytrustattributesofcertificate
-NCreateanewcertificatedatabase
-TResettheKeydatabaseortoken
-OPrintthechainofacertificate
-RGenerateacertificaterequest(stdout)
-VValidateacertificate
-WChangethekeydatabasepassword
--upgrade-mergeUpgradeanolddatabaseandmergeitintoanewone
--mergeMergesourcedatabaseintothetargetdatabase
-SMakeacertificateandaddtodatabase

certutil-H<command>:Printavailableoptionsforthegivencommand
certutil-H:Printcompletehelpoutputofallcommandsandoptions
certutil--syntax:Printashortsummaryofallcommandsandoptions
Failedtoinitializenssdatabasesql:/etc/ipsec.d
....[FAILED]


解决方法:


#certutil-N-d/etc/ipsec.d
#ipsecnewhostkey--configdir/etc/ipsec.d/--output/etc/ipsec.d/keys.secrets--bits2192


二、错误信息:

CheckingyoursystemtoseeifIPsecgotinstalledandstartedcorrectly:
Versioncheckandipsecon-path	[OK]
LinuxOpenswanU2.6.32/K2.6.32-431.el6.x86_64(netkey)
CheckingforIPsecsupportinkernel	[OK]
SArefkernelsupport	[N/A]
NETKEY:TestingfordisabledICMPsend_redirects	[FAILED]

Pleasedisable/proc/sys/net/ipv4/conf/*/send_redirects
orNETKEYwillcausethesendingofbogusICMPredirects!

NETKEYdetected,testingfordisabledICMPaccept_redirects	[FAILED]

Pleasedisable/proc/sys/net/ipv4/conf/*/accept_redirects
orNETKEYwillacceptbogusICMPredirects!

Checkingthatplutoisrunning	[OK]
PlutolisteningforIKEonudp500	[OK]
PlutolisteningforNAT-Tonudp4500	[OK]
Checkingfor'ip'command	[OK]
Checking/bin/shisnot/bin/dash	[OK]
Checkingfor'iptables'command	[OK]
OpportunisticEncryptionSupport	[DISABLED]


解决方法:

#vim/etc/sysctl.conf

在任意位置添加以下:

net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0

#sysctl-p

#ipsecverify

  

7、编辑/etc/xl2tpd/xl2tpd.conf


#vim/etc/xl2tpd/xl2tpd.conf

[global]
ipsecsaref=yes
listen-addr=192.168.0.133
[lnsdefault]
iprange=10.10.10.100-10.10.10.200
localip=10.10.10.1
refusechap=yes
refusepap=yes
requireauthentication=yes
pppdebug=yes
pppoptfile=/etc/ppp/options.xl2tpd
lengthbit=y

  8、编辑/etc/ppp/options.xl2tpd


#vim/etc/ppp/options.xl2tpd

require-mschap-v2
ms-dns223.5.5.5
ms-dns114.114.114.114
asyncmap0
auth
crtscts
lock
hide-password
modem
debug
namel2tpd
proxyarp
lcp-echo-interval30
lcp-echo-failure4


  9、编辑 /etc/ppp/chap-secrets (此配置文件是设置VPN的用户名,密码)

#vim/etc/ppp/chap-secrets

#SecretsforauthenticationusingCHAP
#clientserver  secretIPaddresses
admin*admin*


  10、启动相应的服务:

#servicexl2tpdstart
#serviceipsecstart

  

  11、iptables修改:

 


#iptables-AFORWARD-s10.0.0.0/8-ptcp-mtcp--tcp-flagsFIN,SYN,RST,ACKSYN-jTCPMSS--set-mss1356
#iptables-tnat-APOSTROUTING-s10.0.0.0/8-jSNAT--to-source192.168.0.133
#iptables-IINPUT-pudp-mudp-mstate--stateNEW--dport1701-jACCEPT
#iptables-IINPUT-pudp-mudp-mstate--stateNEW--dport500-jACCEPT
#iptables-IINPUT-pudp-mudp-mstate--stateNEW--dport500-jACCEPT
#iptables-IINPUT-pesp-jACCEPT
#/etc/init.d/iptablessave
#/etc/init.d/iptablesrestart


  修改后的iptables 例子:

#Generatedbyiptables-savev1.4.7onTueJan1906:18:562016*filter
:INPUTACCEPT[0:0]
:FORWARDACCEPT[12:720]
:OUTPUTACCEPT[25:2380]-AINPUT-pesp-jACCEPT
-AINPUT-mstate--stateRELATED,ESTABLISHED-jACCEPT
-AINPUT-pudp-mudp--dport1701-mstate--stateNEW-jACCEPT
-AINPUT-pudp-mudp--dport4500-mstate--stateNEW-jACCEPT
-AINPUT-pudp-mudp--dport500-mstate--stateNEW-jACCEPT
-AINPUT-picmp-jACCEPT
-AINPUT-ilo-jACCEPT
-AINPUT-ptcp-mstate--stateNEW-mtcp--dport22-jACCEPT
-AINPUT-jREJECT--reject-withicmp-host-prohibited
-AFORWARD-s10.0.0.0/8-ptcp-mtcp--tcp-flagsFIN,ACKSYN-jTCPMSS--set-mss1356COMMIT
#CompletedonTueJan1906:18:562016
#Generatedbyiptables-savev1.4.7onTueJan1906:18:562016*nat
:PREROUTINGACCEPT[55:8845]
:POSTROUTINGACCEPT[1:108]
:OUTPUTACCEPT[1:108]
-APOSTROUTING-s10.0.0.0/8-jSNAT--to-source192.168.0.133COMMIT
#CompletedonTueJan1906:18:562016


  到此VPN-Server的部署已经全部完成;可以在Client机器上测试是否可以上网,然后在其它要中拨号试下是否成功!祝大家成功!


如有问题可以直接在本文下方回复。


友情连接:www.cnblogs.com/zlyang/p/6073488.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


linux下开机自启: 在/etc/init.d目录下新建文件elasticsearch 并敲入shell脚本: 注意, 前两行必须填写,且要注释掉。 第一行为shell前行代码,目的告诉系统使用shell。 第二行分别代表运行级别、启动优先权、关闭优先权,且后面添加开机服务会用到。 shell脚本
1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权 chmod +x /etc/rc.d/rc.local 2、赋予脚本可执行权限假设/usr/local/script/autostart.sh是你的脚本路径,给予执行权限 chmod +x /usr
最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用ls -ll,会显示成字节大小,而ls- lh会以KB、MB等为单位进行显示,这样比较直观一些。 通过命令du -h –max-depth=1 *,可以查看当前目录下各文件、文件夹的大小,这个比较实用。 查询当前目录总大小可以使用d
ASP.NET Core应用程序发布linux在shell中运行是正常的。可一但shell关闭网站也就关闭了,所以要配置守护进程, 用的是Supervisor,本文主要记录配置的过程和过程遇到的问题 安装Supervisor&#160;1 yum install python-setuptools
设置时区(CentOS 7) 先执行命令timedatectl status|grep &#39;Time zone&#39;查看当前时区,如果不是时区(Asia/Shanghai),则需要先设置为中国时区,否则时区不同会存在时差。 #已经是Asia/Shanghai,则无需设置 [root@xia
vim&#160;/etc/sysconfig/network-scripts/ifcfg-eth0 BOOTPROTO=&quot;static&quot; ONBOOT=yes IPADDR=192.168.8.106 NETMASK=255.255.252.0 GATEWAY=192.168.
一、安装gcc依赖 由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装 [root@localhost local]# yum install -y gcc 二、下载并解压安装包 [root@localhost local
第一步 On CentOS/RHEL 6.*: $ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm On CentOS/RHEL 7: $
/// &lt;summary&gt; /// 取小写文件名后缀 /// &lt;/summary&gt; /// &lt;param name=&quot;name&quot;&gt;文件名&lt;/param&gt; /// &lt;returns&gt;返回小写后缀,不带“.”&lt;/ret
which nohup .bash_profile中并source加载 如果没有就安装吧 yum provides */nohup nohup npm run start &amp; nohup ./kibana &amp;
1.1 MySQL安装 1.1.1 下载wget命令 yum -y install wget 1.1.2 在线下载mysql安装包 wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 1.1.3 安装My
重启 reboot shutdown -r now init 6 关闭 init 0 shutdown -h now shutdown -h 20:25 #8点25关机查看内存 free CPU利用率 top 日期 date 设置时间 date 033017002015 #月日时间年 日历 cal
1、firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld 开机启用 :
1 下载并安装MySQL官方的&#160;Yum Repository wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 使用上面的命令就直接下载了安装用的Yum Repository,大概
CentOS6.x CentOS6中转用Upstrat代替以前的init.d/rcX.d的线性启动方式。 一、相关命令 通过initctl help可以查看相关命令 [root@localhost ~]# initctl help Job commands: start Start job. sto
1、使用命令:df -lk 找到已满磁盘 2、使用命令:du --max-depth=1 -h 查找大文件,删除
ifconfig:查看网卡信息 网卡配置文件位置: /etc/sysconfig/network-scripts/文件夹 nmtui:配置网卡 netstat -tlunp:查看端口信息 端口信息存储位置: /etc/services文件 route:查看路由信息 wget:下载网路文件,例如 wg
ps -ef:查看所有进程,&#160;ps -ef |grap firewalld 查看与firewalld相关的进程 which :查看进程:which firewalld kill 进程id:杀掉进程 kill 640,强制杀:kill -9 640 man:查看帮助,例如 man ps 查看
useradd:添加用户 useradd abc,默认添加一个abc组 vipw:查看系统中用户 groupadd:添加组groupadd ccna vigr:查看系统中的组 gpasswd:将用户abc添加到ccna组 gpasswd -a abc ccna groups abc:查看用户abc属