基于centos7.4搭建openvpn服务器(亲测有效)

参考:

一、第一个里程碑
1.1、服务软件包下载
1.2、客户端软件包下载地址:
二、第二个里程碑
2.1、安装lzo
cd /usr/src
tar zxf lzo-2.09.tar.gz
cd lzo-2.09
./configure
make && make install
2.2、安装openvpn
yum -y install openssl pam openssl-devel pam-devel
cd /usr/src
tar xf openvpn-2.4.1.tar.gz
cd openvpn-2.4.1
./configure --with-lzo-lib=/usr/local/lib --with-lzo-headers=/usr/local/include
make && make install
3.3、安装easy-rsa-2.2.0
cd /usr/src
tar xf easy-rsa-2.2.0_master.tar.gz
cd easy-rsa-2.2.0_master/
cp -a easy-rsa/ /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
rm -rf 1.0/ Windows/
cd 2.0
pwd
/etc/openvpn/easy-rsa/2.0
vim vars
export KEY_COUNTRY="CN"
export KEY_PROVINCE="BJ"
export KEY_CITY="BeiJing"
export KEY_ORG="test"
export KEY_EMAIL="[email protected]"
export KEY_CN=test
export KEY_NAME=test
export KEY_OU=test
export PKCS11_MODULE_PATH=changeme
export PKCS11_PIN=1234
#生效配置
source vars
./clean-all (第一次会提示初始化配置,按提示操作,后续正常使用时不可执行此操作,它会清空keys目录,并初始化序列)
#创建服务端证书:
./build-ca #创建根证书
./build-key-server server(一路回车,输入两个y即可)
注意点:
A challenge password []:test
An optional company name []:test
#创建客户端证书:
./build-key test(一路回车,输入两个y即可)
注意点:
A challenge password []:test
An optional company name []:test
#生成密码协议
./build-dh ---过程稍慢,不要中断
#生成防攻击的key文件--防DDos和udp淹没
openvpn --genkey --secret keys/ta.key
ls keys/
三、第三个里程碑
3.1、创建配置文件目录,拷贝秘钥文件
cp -a /etc/openvpn/easy-rsa/2.0/keys/ /etc/openvpn
3.2、拷贝服务端配置文件并备份
cp /usr/src/openvpn-2.4.1/sample/sample-config-files/{client,server}.conf /etc/openvpn
cd /etc/openvpn
cp client.conf{,.ori}
cp server.conf{,.ori}
3.3、server配置文件详解:
port 1194 # 默认端口1194
proto tcp # udp不太稳定,这里改为tcp协议
dev tun # 采用隧道协议传输
ca /etc/openvpn/ca.crt # 根证书文件
cert /etc/openvpn/server.crt # 服务端证书文件
key /etc/openvpn/server.key # 服务端秘钥文件
dh /etc/openvpn/dh1024.pem #密码协议交换文件由./build-dh 生产
server 10.8.0.0 255.255.255.0 #默认虚拟局域网网段,不要和实际的局域网冲突即可
push "route 188.188.8.0 255.255.252.0" # VPN服务器 所在的内网的网段,读者应该根据自身实际情况进行修改
client-to-client # 可以让客户端之间相互访问直接通过openvpn程序转发,根据需要设置
ifconfig-pool-persist ipp.txt #服务器自动给客户端分配IP后,客户端下次连接时,仍然采用上次的IP地址(第一次分配的IP保存在ipp.txt中,下一次分配其中保存的IP)。
keepalive 10 120 #每10秒ping一次,连接超时时间设为120秒
tls-auth ta.key 0 #开启TLS-auth,使用ta.key防御攻击。服务器端的第二个参数值为0,客户端的为1。
cipher AES-256-CBC
persist-key
persist-tun #持久化选项可以尽量避免访问在重启时由于用户权限降低而无法访问的某些资源。
duplicate-cn # 如果客户端都使用相同的证书和密钥连接VPN,一定要打开这个选项,否则每个证书只允许一个人连接VPN
comp-lzo # 开启 VPN连接 压缩,如果服务器端开启,客户端也必须开启
status openvpn-status.log #指定记录OpenVPN状态的日志文件路径
log-append openvpn.log #追加生成日志文件
verb 5 #指定日志文件的记录详细级别,可选0-9,等级越高日志内容越详细
3.4、开启内核转发
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
3.5、配置防火墙
#先停止firewalld
systemctl stop firewalld
systemctl disable firewalld
yum install -y iptables iptables-services
#启动iptables
service iptables start
iptables -F ---清空之前所有策略
iptables -X 
iptable -Z
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE #网关不在vpnserver上,在vpnserver上添加一条NAT地址转换,将所有的10.8.0.0/24网段的IP都转成eth0的IP
/etc/init.d/iptables save #保存配置
chkconfig iptables on #开机启动防火墙
3.6、启动openvpn并设置开机自启
/usr/local/sbin/openvpn --config /etc/openvpn/server.conf &
echo "#startup openvpn" >>/etc/rc.local
echo "/usr/local/sbin/openvpn --config /etc/openvpn/server.conf &" >>/etc/rc.local
ps -ef|grep openvpn #查看进程是否存在
netstat -nlput | grep 1194 #查看端口是否正确
lsof -i :1194 #查看tcp端口监听
tail -f /etc/openvpn/openvpn.log #查看启动日志
ifconfig #查看启动后网卡
四、第四个里程碑
4.1安装windows客户端
OpenVPN 2.4.1 Windows 64位 安装文件:(安装过程全部默认)
https://swupdate.openvpn.org/community/releases/openvpn-install-2.4.1-I601.exe
修改客户端配置文件,下面为修改内容,其他默认
[root@m02/etc/openvpn]#egrep '^[^#;]' client.conf
client配置文件:
client
dev tun
proto tcp
remote 188.188.10.60 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert test.crt
key test.key
comp-lzo
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-CBC
verb 3
4.2上传客户端所需文件
先将client.conf修改为client.ovpn,然后将OpenVPN服务器上的client.ovpn、ca.crt、test.crt、test.key、ta.key上传到Windows客户端安装目录下的config文件夹(C:\Program Files\OpenVPN\config)
第5章启动启动OpenVPN GUI
5.1启动客户端
在电脑右下角的openvpn图标上右击,选择“Connect”。正常情况下应该能够连接成功(图标变为绿色),分配正常的IP。
5.2查看状态日志
[root@m02/etc/openvpn]#cat openvpn-status.log 
OpenVPN CLIENT LIST
Updated,Mon Mar 12 22:27:24 2018
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
test,10.0.0.253:56299,97694,57321,Mon Mar 12 19:36:52 2018
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
10.8.0.10,test,10.0.0.253:56299,Mon Mar 12 19:40:57 2018
GLOBAL STATS
Max bcast/mcast queue length,0
END

猜你喜欢

转载自www.cnblogs.com/linle/p/10001809.html