Debian11下搭建strongswan和frps

背景

使用vultr.com提供的vps(收费)创建debian11,并搭建strongswan和frps。

strongswan搭建ikev2,需要证书。证书使用letsencrypt和nginx。我是顺便使用ngix。

frp为网络穿透软件。分客户端frpc和服务端frps。

下面假如一些资源:

email: [email protected]

域名: vpn.test.site

本地网卡设备: enp1s0

vpn网络段: 192.168.4.0


apt-get

更新apt-get, 使用命令行:

apt-get update

更新软件(新系统,目前这句没有实际效果)

apt-get upgrade


防火墙ufw

系统默认防火墙

启动 ufw enable

停用 ufw disable

当前状态查询 ufw status

添加规则 ufw allow 端口


部署nginx

执行命令

apt-get install nginx

debian平台的nginx安装后自动运行,测试一下,执行命令

curl -I 127.0.0.1

添加防火墙规则

ufw allow 'Nginx Full'

常用命令:

启动 nginx

停止 nginx -s stop

重启 nginx -s restart

重新加载配置 nginx -s reload

版本查看 nginx -v 或 nginx -V


部署letsencrypt

执行命令

apt-get install python3-certbot-nginx

申请证书,执行命令

certbot --nginx --email [email protected] -d vpn.test.site

后续更新证书,执行证书

certbot renew --dry-run

如果不依赖nginx,可以执行

certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d vpn.test.site

这个命令需要临时绑定本地80端口


部署strongswan

安装

执行命令

apt-get install strongswan

复制证书,执行命令(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

执行命令(3条)

ufw allow 500

ufw allow 1701

ufw allow 4500

修改配置文件

配置文件位置: /etc/ipsec.conf

编辑内容如下:

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

修改账号信息文件

文件位置: /etc/ipsec.secrets

编辑内容如下:

vpn.test.site : RSA "/etc/ipsec.d/private/privkey.pem"

# 用户名 : EAP "密码"

# ……

username : EAP "password"

转发规则

修改配置文件: /etc/sysctl.conf

添加一行内容

net.ipv4.ip_forward=1

使刚修改的配置生效,执行命令

sysctl -p

设置转发规则,执行命令(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

启动

重启,执行命令

ipsec restart


部署frps

到https://github.com/fatedier/frp/releases 下载一个合适的包,我使用的是linux_amd64.的最新版

解压后

拷贝frps到/usr/bin/

拷贝frps.ini到/etc/frp/

拷贝systemd/frps.service到/etc/systemd/system/

编辑frps.ini,内容如下:

[common]

bind_port = 3000

token = mytoken

dashboard_port = 3001

dashboard_user = username

dashboard_pwd = password

修改防火墙

ufw allow 3000

ufw allow 3001

重启服务

systemctl restart frps

你可能感兴趣的:(Debian11下搭建strongswan和frps)