Linux (debian) 部署openvpn server的手动操作记录,踩了点坑。【图片后补】
评论 5 热度 1064
前两天接了个单子,由于沟通不到位,导致在VPC上部署openvpn,并且花了很长时间调试专门用于爱快路由器连接
的openvpn服务
虽然没有采用这种方式,但是也做个记录吧。
目前由于openvpn特征明显,并不推荐用来过墙。
但如果你有中转线路,那么这也是一种有效的方式,坑我也踩了,代码留给大家。
有想直接在爱快上面部署openvpn客户端用来出国的朋友可以往下看。
root用户登录
首先更新、安装openvpn
apt update apt install openvpn
安装Easy-RSA:
apt install easy-rsa
在/etc/openvpn/文件夹创建一个用于Easy-RSA的工作目录并进入该目录
make-cadir /etc/openvpn/openvpn-ca cd /etc/openvpn/openvpn-ca
配置Easy-RSA并生成CA证书和密钥
./easyrsa init-pki ./easyrsa build-ca nopass
生成服务器证书和密钥:
./easyrsa gen-req server nopass ./easyrsa sign-req server server
生成Diffie-Hellman参数:
./easyrsa gen-dh 1024 #1024生成速度更快,默认2048要等,根据需要修改吧
生成TLS密钥:(使用iKuai路由器自带的openvpn客户端连接需要这个,其他连接方式不需要用TLS验证,因为连接
的时候会有验证失败的问题)
openvpn --genkey secret pki/ta.key
拷贝上面生成的ca、server证书、秘钥到/etc/openvpn/server文件夹
cp /etc/openvpn/openvpn-ca/pki/ca.crt /etc/openvpn/server/ cp /etc/openvpn/openvpn-ca/pki/private/server.key /etc/openvpn/server/ cp /etc/openvpn/openvpn-ca/pki/issued/server.crt /etc/openvpn/server/ cp /etc/openvpn/openvpn-ca/pki/dh.pem /etc/openvpn/server/ cp /etc/openvpn/openvpn-ca/pki/ta.key /etc/openvpn/server/
创建服务器配置文件 /etc/openvpn/server.conf,
nano /etc/openvpn/server.conf touch /var/log/openvpn/openvpn.log #创建
并填入以下内容:
port 3689 proto tcp dev tun ca /etc/openvpn/server/ca.crt cert /etc/openvpn/server/server.crt key /etc/openvpn/server/server.key dh /etc/openvpn/server/dh.pem #tls-auth /etc/openvpn/server/ta.key 0 #iKuai路由器请启用这一项,取消注释(删掉#) 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" comp-lzo adaptive #重要,某些网站不压缩无法打开,例如YouTube log /var/log/openvpn/openvpn.log keepalive 10 120 cipher AES-256-GCM user nobody group nogroup persist-key persist-tun status openvpn-status.log verb 4
打开对应防火墙端口,并启动OpenVPN服务器:
sudo iptables -A INPUT -p tcp --dport 3689 -j ACCEPT #匹配上面server配置文件自定义端口 sudo iptables-save > /etc/iptables/rules.v4 systemctl start openvpn@server systemctl enable openvpn@server
创建客户端证书和密钥:
cd /etc/openvpn/openvpn-ca ./easyrsa gen-req client1 nopass #自定义客户端名称 client1 ./easyrsa sign-req client client1
拷贝上面生成的客户端文件:
cp /etc/openvpn/openvpn-ca/pki/private/client1.key /etc/openvpn/client cp /etc/openvpn/openvpn-ca/pki/issued/client1.crt /etc/openvpn/client
在客户端上创建一个配置文件,比如 client.ovpn
nano /etc/openvpn/client/client.ovpn
并填入以下内容
client dev tun proto tcp remote 24kbrother.com 3689 # 将 [服务器 IP] 替换为你的服务器的公共 IP 地址或域名 resolv-retry infinite nobind user nobody group nogroup persist-key persist-tun remote-cert-tls server cipher AES-256-GCM auth SHA256 verb 3 comp-lzo adaptive <ca> 【ca.crt】 </ca> <cert> 【client1.crt】 </cert> <key> 【client1.key】 </key> ##########专门为爱快路由器配置TLS验证,否则请删除下面内容 <tls-auth> 【ta.key】 </tls-auth>
查看接口信息
ip a
判断你的VPC哪个接口连接的Internet
有的VPC有多接口,有的是单接口,一定要注意
我这里是ens5:
2: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 42:01:0a:8a:00:03 brd ff:ff:ff:ff:ff:ff
配置防火墙参数【可写脚本】,以下命令修改好对应接口名称直接使用:
#!/bin/bash # 清除所有已有的规则和链 iptables -F iptables -X # 设置默认策略 iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT # 允许本地回环 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # 允许已建立的连接的数据返回 iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # 允许从 VPN 接口 (tun0) 到 Internet 接口 (ens5) 的转发****这里修改为你接入Internet的接口 iptables -A FORWARD -i tun0 -o ens5 -j ACCEPT # 设置 NAT 规则,允许内部网络通过 Internet 接口访问外部网络 iptables -t nat -A POSTROUTING -o ens5 -j MASQUERADE # 启用 IP 转发 echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf sysctl -p #这里确认显示:net.ipv4.ip_forward = 1 sysctl -a | grep net.ipv4.ip_forward # 保存规则,如果提示没有这个文件,可跳过。 iptables-save > /etc/iptables/rules.v4
安装iptables-persistent,固化防火墙规则
apt update apt install iptables-persistent
手动保存当前的iptables规则,可以使用以下命令:
iptables-save > /etc/iptables/rules.v4
查看openvpn服务是否启动(running)
systemctl start openvpn@server systemctl status openvpn@server
重启测试防火墙规则是否固化,未生效检查问题
整个服务端部署完成,可以去客户端测试了。
利用空余时间接各种远程协助服务:网络调试、部署、家用环境的网络优化、处理各种计算机、网络软件排障等。
B站私信即可 https://space.bilibili.com/1375690031
jAuxODPnIF Windows 10 · Google Chrome
IxtPqTLQV
#36 2024-05-16 02:44 回复
klWfzGxgaoLJZS Windows 10 · Google Chrome
pqYnEwVJHLM
#31 2024-05-12 10:43 回复
ViYgpULDlHyc Windows 10 · Google Chrome
CqcbamfNZPglhuEn
#23 2024-05-09 03:32 回复
NkgbxHDsrY Windows 10 · Google Chrome
MhGNQSEKDsY
#17 2024-05-05 23:26 回复
hbmOqCWEgFkSspHr Windows 10 · Google Chrome
RhQADSnVr
#13 2024-04-22 16:10 回复