背景
使用vultr.com提供的vps(收費(fèi))創(chuàng)建debian11自沧,并搭建strongswan和frps萝究。
strongswan搭建ikev2却汉,需要證書。證書使用letsencrypt和nginx食侮。我是順便使用ngix号涯。
frp為網(wǎng)絡(luò)穿透軟件。分客戶端frpc和服務(wù)端frps锯七。
下面假如一些資源:
email: xxxx@gmail.com
域名: vpn.test.site
本地網(wǎng)卡設(shè)備:?enp1s0
vpn網(wǎng)絡(luò)段: 192.168.4.0
apt-get
更新apt-get链快, 使用命令行:
apt-get update
更新軟件(新系統(tǒng),目前這句沒有實(shí)際效果)
apt-get upgrade
防火墻ufw
系統(tǒng)默認(rèn)防火墻
啟動(dòng) ufw enable
停用 ufw disable
當(dāng)前狀態(tài)查詢 ufw status
添加規(guī)則 ufw allow 端口
部署nginx
執(zhí)行命令
apt-get install nginx
debian平臺(tái)的nginx安裝后自動(dòng)運(yùn)行起胰,測(cè)試一下久又,執(zhí)行命令
curl -I 127.0.0.1
添加防火墻規(guī)則
ufw allow 'Nginx Full'
常用命令:
啟動(dòng) nginx
停止 nginx -s stop
重啟 nginx -s restart
重新加載配置 nginx -s reload
版本查看 nginx -v 或 nginx -V
部署letsencrypt
執(zhí)行命令
apt-get install python3-certbot-nginx
申請(qǐng)證書,執(zhí)行命令
certbot --nginx --email xxxx@gmail.com -d vpn.test.site
后續(xù)更新證書效五,執(zhí)行證書
certbot renew --dry-run
如果不依賴nginx,可以執(zhí)行
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email xxxxx@gmail.com -d vpn.test.site
這個(gè)命令需要臨時(shí)綁定本地80端口
部署strongswan
安裝
執(zhí)行命令
apt-get install strongswan
復(fù)制證書炉峰,執(zhí)行命令(3條)
cp /etc/letsencrypt/live/vpn.test.site/fullchain.pem /etc/ipsec.d/certs/
cp /etc/letsencrypt/live/vpn.test.site/privkey.pem /etc/ipsec.d/private/
cp /etc/letsencrypt/live/vpn.test.site/chain.pem /etc/ipsec.d/cacerts/
修改防火墻
開放端口: 500 1701 4500
執(zhí)行命令(3條)
ufw allow 500
ufw allow 1701
ufw allow 4500
修改配置文件
配置文件位置: /etc/ipsec.conf
編輯內(nèi)容如下:
config setup
? ? # uniqueids=never
conn -ikev2
? auto=add
? keyexchange=ikev2
? compress=no
? rekey=no
? fragmentation=yes
? ike=aes256-sha1-modp1024,aes256-sha256-modp2048,3des-sha1-modp2048,aes256-sha1-modp2048!
? esp=aes256-sha256,3des-sha1,aes256-sha1!
? dpddelay=90s
? dpdaction=clear
? left=%any
? leftid=vpn.test.site
? leftauth=pubkey
? leftcert=fullchain.pem
? leftsendcert=always
? leftsubnet=0.0.0.0/0
? right=%any
? rightid=%any
? rightauth=eap-mschapv2
? rightsendcert=never
? rightsourceip=192.168.4.0/24
? rightdns=1.1.1.1,9.9.9.9
? eap_identity=%identity
修改賬號(hào)信息文件
文件位置: /etc/ipsec.secrets
編輯內(nèi)容如下:
vpn.test.site : RSA "/etc/ipsec.d/private/privkey.pem"
# 用戶名 : EAP "密碼"
# ……
username : EAP "password"
轉(zhuǎn)發(fā)規(guī)則
修改配置文件:?/etc/sysctl.conf
添加一行內(nèi)容
net.ipv4.ip_forward=1
使剛修改的配置生效畏妖,執(zhí)行命令
sysctl -p
設(shè)置轉(zhuǎn)發(fā)規(guī)則,執(zhí)行命令(4條)
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.4.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -o enp1s0 -m policy --dir out --pol ipsec -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -o enp1s0 -j MASQUERADE
啟動(dòng)
重啟疼阔,執(zhí)行命令
ipsec restart
部署frps
到https://github.com/fatedier/frp/releases 下載一個(gè)合適的包戒劫,我使用的是linux_amd64.的最新版
解壓后
拷貝frps到/usr/bin/
拷貝frps.ini到/etc/frp/
拷貝systemd/frps.service到/etc/systemd/system/
編輯frps.ini,內(nèi)容如下:
[common]
bind_port = 3000
token = mytoken
dashboard_port = 3001
dashboard_user = username
dashboard_pwd = password
修改防火墻
ufw allow 3000
ufw allow 3001
重啟服務(wù)
systemctl restart frps