在当今数字化时代,远程工作和企业网络扩展的需求日益增加,虚拟专用网络(VPN)作为一种安全且灵活的解决方案,被广泛应用于各种场景中,本文将详细介绍如何配置不同类型的VPN,并提供相关的命令示例。

基本概念

  • VPN:Virtual Private Network,虚拟专用网络。
  • IPsec:Internet Protocol Security,一种用于保护数据在网络上传输的协议。
  • L2TP/IPsec:Layer 2 Tunneling Protocol over Internet Protocol Security,一种结合了L2TP隧道和IPsec加密的VPN技术。
  • OpenVPN:一种开源的VPN软件,支持多种加密协议。

IPsec配置命令

IPsec是一种基于IKEv1或IKEv2的加密协议,适用于需要高度安全性的环境。

1 安装IPsec

在Linux系统上安装IPsec:

sudo apt-get update
sudo apt-get install strongswan

2 配置IKEv2

编辑/etc/ipsec.conf文件:

config setup
    charondebug="all"
    uniqueids=yes
conn ikev2
    auto=add
    keyexchange=ikev2
    dpdaction=restart
    dpddelay=300s
    rekey=no
    left=%defaultroute
    leftid=@your_domain.com
    leftcert=your_certificate.pem
    leftsendcert=always
    right=%any
    rightsourceip=10.0.0.0/24
    rightsendcert=never
    authby=xauthpsk
    xauth_type=file
    xauth_file=/etc/ipsec.secrets

编辑/etc/ipsec.secrets文件:

: PSK "your_pre_shared_key"

重启IPsec服务:

sudo systemctl restart strongswan

L2TP/IPsec配置命令

L2TP/IPsec结合了L2TP隧道和IPsec加密,适用于需要兼容性好的环境。

1 安装L2TP/IPsec

在Debian/Ubuntu系统上安装L2TP/IPsec:

sudo apt-get update
sudo apt-get install xl2tpd strongswan libstrongswan-extra-plugins

2 配置L2TP/IPsec

编辑/etc/xl2tpd/xl2tpd.conf文件:

[global]
listen-addr = your_server_ip
[l2tp-server]
port = 1701
[lns default]
ip range = 192.168.1.100-192.168.1.200
local ip = 192.168.1.1
require chap = yes
refuse pap = yes
require authentication = yes
name = l2tpd
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

编辑/etc/ppp/options.xl2tpd文件:

require-ms-dns
ms-dns 8.8.8.8
ms-dns 8.8.4.4
noccp
auth
crtscts
idle 1800
mtu 1280
mru 1280
lock
connect-delay 5000

编辑/etc/ipsec.conf文件:

config setup
    charondebug="all"
    uniqueids=yes
conn L2TP-PSK-NAT
    type=tunnel
    auto=add
    keyexchange=ikev1
    ikelifetime=60m
    salifetime=2h
    authby=secret
    pfs=no
    left=%defaultroute
    leftprotoport=17/1701
    right=%any
    rightprotoport=17/%any
    forceencaps=yes
    dpddelay=300s
    dpdtimeout=120s
    dpdaction=clear
conn L2TP-PSK-noNAT
    type=tunnel
    auto=add
    keyexchange=ikev1
    ikelifetime=60m
    salifetime=2h
    authby=secret
    pfs=no
    left=%defaultroute
    leftprotoport=17/1701
    right=%any
    rightprotoport=17/%any
    dpddelay=300s
    dpdtimeout=120s
    dpdaction=clear

编辑/etc/ipsec.secrets文件:

: PSK "your_pre_shared_key"

重启相关服务:

sudo systemctl restart xl2tpd
sudo systemctl restart strongswan

OpenVPN配置命令

OpenVPN是一种开源的VPN软件,支持多种加密协议。

1 安装OpenVPN

在Debian/Ubuntu系统上安装OpenVPN:

sudo apt-get update
sudo apt-get install openvpn easy-rsa

2 创建证书 authority

初始化Easy-RSA并创建CA证书:

make-cadir ~/openvpn-ca
cd ~/openvpn-ca
./easyrsa init-pki
./easyrsa build-ca nopass

生成服务器密钥对:

./easyrsa gen-req server nopass
./easyrsa sign-req server server

生成客户端密钥对:

./easyrsa gen-req client nopass
./easyrsa sign-req client client

3 配置OpenVPN服务器

编辑/etc/openvpn/server.conf文件:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

启动OpenVPN服务:

sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server

4 客户端配置

将服务器的ca.crtclient.crtclient.key文件复制到客户端机器上,并创建一个client.ovpn配置文件:

client
dev tun
proto udp
remote your_server_ip 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
cipher AES-256-CBC
comp-lzo
verb 3

连接OpenVPN:

sudo openvpn --config client.ovpn

通过以上步骤,您可以根据具体需求选择合适的VPN配置方式,并使用相应的命令进行配置,希望本文能帮助您更好地理解和配置VPN。

VPN配置命令指南  第1张

半仙加速器