クライアント側ネットワーク(192.168.0.0)
サーバ側ネットワークとクライアント側ネットワークは異なるゾーンである必要がある。
# firewall-cmd --permanent --add-service=openvpn
# firewall-cmd --reload
DEVICE="eth0:0"
IPADDR=192.168.1.2
PREFIX=24
ONBOOT=yes
BOOTPROTO=none
# yum install openvpn (epelリポジトリ)
# cd /etc/openvpn/
# curl -LO https://github.com/OpenVPN/easy-rsa/archive/master.zip
# unzip master.zip
# mv easy-rsa-master/easyrsa3/ .
# rm -rf easy-rsa-master/
# rm -f master.zip
# cd /etc/openvpn/easyrsa3/
# ./easyrsa init-pki (OpenVPNインストール後初回のみ実行する)
# ./easyrsa build-ca (PEM pass phrase, Common Name を入力)
# cp pki/ca.crt /etc/openvpn/
# ./easyrsa build-server-full server nopass (CAのパスフレーズを入力)
# cp pki/issued/server.crt /etc/openvpn/
# cp pki/private/server.key /etc/openvpn/
# ./easyrsa gen-dh
# cp pki/dh.pem /etc/openvpn/
#set_var EASYRSA_CRL_DAYS 180
set_var EASYRSA_CRL_DAYS 3650
# ./easyrsa build-client-full dmy nopass (CAのパスフレーズを入力)
# ./easyrsa revoke dmy (yes応答, CAのパスフレーズを入力)
# ./easyrsa gen-crl (CAのパスフレーズを入力)
# cp /etc/openvpn/easyrsa3/pki/crl.pem /etc/openvpn/
# chmod o+r /etc/openvpn/crl.pem
# openvpn --genkey --secret /etc/openvpn/ta.key
# cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf /etc/openvpn/
/etc/openvpn/server.conf
port 1194
proto udp
dev tun
;dh dh2048.pem
dh dh.pem
server 10.8.1.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn-ipp.txt
push "route 192.168.1.0 255.255.255.0"
;tls-auth ta.key 0
tls-auth ta.key 0
;cipher BF-CBC # Blowfish (default)
cipher AES-256-CBC
;user nobody
;group nobody
user nobody
group nobody
;status openvpn-status.log
status /var/log/openvpn-status.log
;log-append openvpn.log
log-append /var/log/openvpn.log
crl-verify crl.pem
/etc/openvpn/openvpn-startup
#!/bin/bash
# VPNインタフェースiptablesルール削除スクリプト実行※必須
/etc/openvpn/openvpn-shutdown
# VPNサーバーからの送信を許可※必須
iptables -I OUTPUT -o tun+ -j ACCEPT
iptables -I FORWARD -o tun+ -j ACCEPT
# VPNクライアントからVPNサーバーへのアクセスを許可する場合
iptables -I INPUT -i tun+ -j ACCEPT
# VPNクライアントからLANへのアクセスを許可する場合
# (例としてVPNクライアントから192.168.1.0/24へのアクセスを許可する場合)
# ※192.168.1.0/24側のファイアウォール等でVPNクライアント(10.8.0.0/24)からのアクセスを許可すること
iptables -I FORWARD -i tun+ -d 192.168.1.0/24 -j ACCEPT
/etc/openvpn/openvpn-shutdown
#!/bin/bash
# VPNインタフェース(tun+)用iptablesルール削除関数
delete() {
rule_number=`iptables -L $target --line-numbers -n -v|grep tun.|awk '{print $1}'|sort -r`
for num in $rule_number
do
iptables -D $target $num
done
}
# VPNインタフェース(tun+)用iptables受信ルール削除
target='INPUT'
delete
# VPNインタフェース(tun+)用iptables転送ルール削除
target='FORWARD'
delete
# VPNインタフェース(tun+)用iptables送信ルール削除
target='OUTPUT'
delete
/etc/logrotate.d/openvpn
/var/log/openvpn.log {
missingok
notifempty
sharedscripts
postrotate
systemctl restart openvpn 2>&1 > /dev/null || true
endscript
}
/etc/rc.d/init.d/openvpn (コメントを解除)
#echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_forward
# systemctl enable openvpn@server
# systemctl start openvpn@server
# systemctl enable openvpn-server@server
# systemctl start openvpn-server@server
# cd /etc/openvpn/easyrsa3/
# ./easyrsa build-client-full client1 (client1用のパスフレーズ, CAのパスフレーズを入力)
ファイルをクライアントマシンに転送。
%UserProfile%/OpenVPN/config 以下に上記ファイルを配置。
拠点が複数の場合は拠点毎にサブフォルダを作成してそこに配置する。
# OpenVPN サーバ名とポート
remote vpn.takeash.net 1194
ca ca.crt
cert client1.crt
key client1.key
remote-cert-tls server
;tls-auth ta.key 1
tls-auth ta.key 1
;cipher x
cipher AES-256-CBC
Adapter を追加するには、「プログラム / TAP-Windows / Utilities / Add a new TAP virtual ethernet adapter」を右クリックし「管理者として実行」を選択する。
"C:\Program Files\TAP-Windows\bin\tapinstall.exe" install "C:\Program Files\TAP-Windows\driver\OemVista.inf" tap0901
How to connect multiple VPNs using OpenVPN on Windows 7 on the same time? - Server Fault