Set Up OpenConnect VPN Server (ocserv) on Ubuntu 22.04 with Let's Encrypt This tutorial is going to show you how to install OpenConnect VPN server (ocserv) on Ubuntu 22.04 with trusted Let's Encrypt TLS certificate.
クライアント側で証明書不要
apache2 + nextcloud後に設定
apt install ocserv
systemctl status ocserv
sudo systemctl start ocservcertbot (不要なら飛ばす)
nginx インストールしている場合はこれを使う
sudo apt install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install certbotnginx 起動してるなら service nginx stopしておく
sudo certbot certonly --standalone --preferred-challenges http --agree-tos --email mail@gmail.com -d xxx.comsudo certbot certonly --standalone --preferred-challenges http --agree-tos --email mail@gmail.com -d xxx.comOpenConnect 設定
sudo nano /etc/ocserv/ocserv.conf置き換え
auth = "plain[passwd=/etc/ocserv/ocpasswd]"
server-cert = /etc/letsencrypt/live/xxx.com/fullchain.pemserver-key = /etc/letsencrypt/live/xxx.com/privkey.pemほかのpemはいじらなくてOK この手順通り
default-domain = xxx.com
ipv4-network = 10.10.10.0
dns = 8.8.8.8コメントアウト
route = 10.10.10.0/255.255.255.0route = 192.168.0.0/255.255.0.0route = fef4:db8:1000:1001::/64
no-route = 192.168.5.0/255.255.255.0sudo systemctl restart ocserv
sudo cp /lib/systemd/system/ocserv.service /etc/systemd/system/ocserv.service
sudo nano /etc/systemd/system/ocserv.serviceコメントアウト
Requires=ocserv.socket
Also=ocserv.socketsudo systemctl daemon-reload
sudo systemctl stop ocserv.socket
sudo systemctl disable ocserv.socket
sudo systemctl restart ocserv.service
systemctl status ocservユーザー追加
sudo ocpasswd -c /etc/ocserv/ocpasswd 【USER】
sudo nano /etc/sysctl.confアンコメント
net.ipv4.ip_forward = 1
sudo sysctl -piptables 編集
ifconfig
ens3 や eth 0を確認
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
sudo iptables -t nat -L POSTROUTING
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -I INPUT -p udp --dport 443 -j ACCEPTiptables-save > /etc/iptables.rulesnano /etc/systemd/system/iptables-restore.service新規追加
[Unit]Description=Packet Filtering FrameworkBefore=network-pre.targetWants=network-pre.target
[Service]Type=oneshotExecStart=/sbin/iptables-restore /etc/iptables.rulesExecReload=/sbin/iptables-restore /etc/iptables.rulesRemainAfterExit=yes
[Install]WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable iptables-restore必要ならアプリに合わせてポート開放
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPTsudo iptables -I INPUT -p tcp --dport 3000 -j ACCEPTsudo iptables -I INPUT -p tcp --dport 19090 -j ACCEPTsudo iptables -I INPUT -p tcp --dport 8443 -j ACCEPTsudo iptables -I INPUT -p tcp --dport 53 -j ACCEPTsudo iptables -I INPUT -p tcp --dport 32 -j ACCEPTsudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 7443 -j ACCEPTsudo iptables -I INPUT -p tcp --dport 853 -j ACCEPT