ubuntu16.0安装配置openvpn,客户端在作为网关连接子网

服务端

1、安装软件

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

2、复制软件到etc下

cd /etc/openvpn/
mkdir /etc/openvpn/easy-rsa
cp -r /usr/share/easy-rsa /etc/openvpn/easy-rsa
mv /etc/openvpn/easy-rsa/easy-rsa /etc/openvpn/easy-rsa/2.0

3、配置证书环境
cd /etc/openvpn/easy-rsa/2.0

vim vars

export KEY_COUNTRY="CN"
export KEY_PROVINCE="LiaoNing"
export KEY_CITY="Shenyang"
export KEY_ORG="abc.com"
export KEY_EMAIL="me@abc.com"
export KEY_OU="vpnusers"

# 添加 openssl 配置文档
cp openssl-1.0.0.cnf openssl.cnf


# 使环境变量生效
source ./vars

4、生成证书


# 清除keys目录下所有与证书相关的文件
./clean-all

# 生成根证书ca.crt和根密钥ca.key(一路按回车即可)
./build-ca

# 为服务端生成证书和私钥, --batch 表示保持默认设置,无须回车确认
./build-key-server --batch server

# 为客户端生成证书和私钥(client可为不同的名称)
./build-key --batch client

# 创建迪菲·赫尔曼密钥,会生成dh2048.pem文件(生成过程比较慢,在此期间不要去中断它)
./build-dh

# 生成ta.key文件(防DDos攻击、UDP淹没等恶意攻击)
openvpn --genkey --secret keys/ta.key


# 将证书文件复制到/etc/openvpn/server
cp -r /etc/openvpn/easy-rsa/2.0/keys/* /etc/openvpn/server

# 将服务器端配置文件模板复制到/etc/openvpn/server
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server
cd /etc/openvpn/server/
gunzip -d /etc/openvpn/server/server.conf.gz

5、配置服务端文件

vim /etc/openvpn/server/server.conf

daemon

# 服务端口
port 11194

# 使用的传输协议
proto tcp

# 路由模式,桥接模式用dev tap
dev tun

#设置固定ip,/etc/openvpn/ccd 里创建somgl文件,ifconfig-push 192.168.19.100 192.168.19.101
client-config-dir /etc/openvpn/ccd/

# 证书路径
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/server.crt
key /etc/openvpn/server/server.key
dh /etc/openvpn/server/dh2048.pem

# 默认虚拟局域网网段,不要和实际的局域网冲突即可
server 192.168.19.0 255.255.255.0
ifconfig-pool-persist ipp.txt

# 192.168.19.0 是OpenVPN服务器所在局域网的网段
push "route 192.168.19.0 255.255.255.0"
push "route 10.10.2.0 255.255.255.0"
client-to-client

# 如果客户端都使用相同的证书和密钥连接VPN,一定要打开这个选项,否则每个证书只允许一个人连接VPN
duplicate-cn

# 这里如果设置了 tls-auth 则客户端也要设置,而且要跟服务器端对应,服务端为0,客户端则为 1
tls-auth /etc/openvpn/server/ta.key 0

max-clients 100
keepalive 10 120
comp-lzo
persist-key
persist-tun

#认证证书
crl-verify /etc/openvpn/easy-rsa/easy-rsa/2.0/keys/crl.pem
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log

verb 3

###指定只用的认证脚本,这里配置使用用户名和密码登录的支持,可以取代使用秘钥和证书登录
#auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env
 
###不请求客户的CA证书,使用User/Pass验证,如果同时启用证书和密码认证,注释掉该行
#client-cert-not-required

### 使用客户提供的UserName作为Common Name
#username-as-common-name
#script-security 3

6、设置固定ip文件

mkdir /etc/openvpn/ccd

vim somgl

ifconfig-push 192.168.19.100 192.168.19.101

iroute 192.168.122.0 255.255.255.0


#iroute为客户端下子网地址,子网地址和其他客户端可以互通

#注意生成客户端证书时名称写为somgl,生成的somgl.crt,somgl.key文件复制到客户端上

./build-key --batch somgl

7、

配置内核和防火墙,启动服务端

# 开启路由转发功能
sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf
sed -i '/net.ipv4.ip_forward/s/#//' /etc/sysctl.conf
sysctl -p

其他语句

# 查看iptables规则
iptables -nvL

# 查看nat表
iptables -nvL -t nat


# 开机自动加载配置
sudo apt-get install iptables-persistent


# 保存规则
sudo service netfilter-persistent save


# 开机启动
systemctl enable openvpn

# 重启服务
service openvpn restart

#服务启动
/usr/sbin/openvpn /etc/openvpn/server/server.conf &
 

#撤销证书(会在keys目录下生成crl.pem文件)
./revoke-full client

客户端

8、客户端配置:

软件安装和上面一样
cd /etc/openvpn/client/

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client/client.conf

9、配置客户端文件

vim /etc/openvpn/client/client.conf

client

# 这里设置跟服务端一样
dev tun
proto tcp

# OpenVPN 服务端 IP 和端口
remote 192.168.100.1 11194

resolv-retry infinite

nobind

persist-key
persist-tun

# 这里设置证书和秘钥
ca /etc/openvpn/client/ca.crt
cert /etc/openvpn/client/somgl.crt
key /etc/openvpn/client/somgl.key

remote-cert-tls server
ns-cert-type server

# 如果服务端使用 tls-auth, 则这里也要启用
tls-auth /etc/openvpn/client/ta.key 1

comp-lzo

verb 3

#客户端启动

/usr/sbin/openvpn /etc/openvpn/client/client.conf &


10、客户端作为网关

#开启网卡

sudo ip link set eth0 up

sudo ip link set eth2 up


# 开启路由转发功能
sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf
sed -i '/net.ipv4.ip_forward/s/#//' /etc/sysctl.conf
sysctl -p


#eth2为openvpn客户端作为网关的出接口
#192.168.122.0是需要连接网关的设备的ip地址

iptables -t nat -A POSTROUTING -s 192.168.122.0/24 -j MASQUERADE


sudo route add -net 192.168.122.0 netmask 255.255.255.0 dev eth2


#需要连接网关的子设备,连接网闸的eth0网口,设置ip  192.168.122.19  子网掩码  255.255.255.0 网关  192.168.19.100,子设备ping  本地内网ip地址

#注意客户端服务器上是否有其他防火墙如:ufw、ebtables等,需要停止后在设置iptables

另一个客户端

iptables -t nat -A POSTROUTING -s 192.168.122.0/24 -j MASQUERADE

route del -net 10.10.3.0 gw 192.168.19.103 netmask 255.255.255.0 dev tun0
route del -net 10.10.6.0 gw 192.168.19.103 netmask 255.255.255.0 dev tun0
route del -net 10.10.7.0 gw 192.168.19.103 netmask 255.255.255.0 dev tun0

设置开机启动

openvpn-client开机启动服务

vim /etc/systemd/system/openvpn-client.service

[Unit]
Description=openvpn-client
After=network.target

[Service]
Type=simple
ExecStart=/usr/sbin/openvpn --cd /etc/openvpn/client --config /etc/openvpn/client/client.conf
Restart=always

[Install]
WantedBy=multi-user.target
 

sudo chmod 755 /etc/systemd/system/openvpn-client.service

sudo systemctl start openvpn-client.service
sudo systemctl enable openvpn-client.service
sudo systemctl daemon-reload

vim /etc/rc.local


#增加规则
iptables -t nat -A POSTROUTING -s 192.168.122.0/24 -j MASQUERADE

route add -net 192.168.122.0 netmask 255.255.255.0 dev eth2

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是在 Ubuntu安装 OpenVPN 并进行配置的步骤: 1. 安装 OpenVPN 在终端中运行以下命令以安装 OpenVPN: ``` sudo apt-get update sudo apt-get install openvpn ``` 2. 获取 OpenVPN 配置文件 你需要获取 OpenVPN配置文件,通常是以 .ovpn 结尾的文件。你可以从你的 VPN 服务提供商那里获取这些文件,或者使用你自己的 OpenVPN 服务器。 将配置文件下载到你的 Ubuntu 系统中,例如你可以将它们存储在 /etc/openvpn 目录中。 3. 配置 OpenVPN 在终端中运行以下命令以编辑 OpenVPN 配置文件: ``` sudo nano /etc/openvpn/your_config_file.ovpn ``` 将 "your_config_file.ovpn" 替换为你的配置文件名。 在配置文件中,你需要设置以下内容: - auth-user-pass:指定用户名和密码的文件路径 - ca:指定证书文件路径 - cert:指定客户端证书文件路径 - key:指定客户端私钥文件路径 - remote:指定远程服务器的 IP 或域名和端口号 在配置文件中,你可以使用注释行(以 # 开头)来注释掉一些不需要的选项。 4. 配置用户名和密码 在终端中运行以下命令以创建一个文件,其中包含你的 VPN 用户名和密码: ``` sudo nano /etc/openvpn/auth.txt ``` 在文件中,输入你的 VPN 用户名和密码,每行一个,例如: ``` your_username your_password ``` 保存并关闭文件。 5. 启动 OpenVPN 在终端中运行以下命令以启动 OpenVPN: ``` sudo openvpn /etc/openvpn/your_config_file.ovpn ``` 将 "your_config_file.ovpn" 替换为你的配置文件名。 如果一切正常,你应该能够看到一些输出,其中包含 "Initialization Sequence Completed" 的字样,表示 OpenVPN 已成功连接到 VPN 服务器。 现在,你的 Ubuntu 系统已经成功安装配置OpenVPN

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

somgl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值