-
OpenVPN設定
# OpenVPN設定ファイルをOpenVPN設定ファイル格納ディレクトリへコピー
cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn/
# OpenVPN設定ファイルを編集
vi /etc/openvpn/server.conf
下記内容を確認/追加/変更
# VPNインターフェースとしてtunデバイスを指定
dev tun
# プロトコルとしてudp、ポートは1194を指定
proto udp
port 1194
# 認証局証明書、サーバー証明書、サーバー秘密鍵のファイルパスを指定
# 配置場所を変更している場合、変更する
ca ca.crt
cert server.crt
key server.key
# DHパラメータファイルのパスを指定
# 配置場所を変更している場合、変更する
dh dh.pem
# VPNクライアント割当てアドレス範囲として10.8.0.0/24を指定(デフォルト)
server 10.8.0.0 255.255.255.0
# LAN(例:192.168.1.0/24)へのルートをVPNサーバー経由にする
;push "route 192.168.10.0 255.255.255.0"
;push "route 192.168.20.0 255.255.255.0"
push "route 192.168.11.0 255.255.255.0"
# TLS認証有効化(行頭の;を削除し、コメント解除)
tls-auth ta.key 0 # This file is secret
# OpenVPN実行権限を下げる(行頭の;を削除し、コメント解除)
user nobody
group nobody
# 起動時に鍵読み込み、tunデバイスオープン
persist-key
persist-tun
# ログの設定
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
verb 3
# LZO圧縮を利用
comp-lzo
# OpenVPNクライアントのIP固定設定を利用しない
# 利用する場合、行頭の;を削除
;client-config-dir ccd
# 管理インタフェースの有効化(最終行に追加)
# 証明書廃止リストの有効化(最終行に追加)
management localhost 7505
crl-verify crl.pem
# OpenVPN経由でSambaへのアクセスがエラーになる場合、最終行に追加
fragment 1280
mssfix 1280
link-mtu 1400
-
OpenVPN起動時実行スクリプト作成
# OpenVPN起動時実行スクリプト作成
vi /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.11.0/24へのアクセスを許可する場合、
# 192.168.11.0/24側のファイアウォール等でVPNクライアント(10.8.0.0/24)からのアクセスを許可すること
iptables -I FORWARD -i tun+ -d 192.168.11.0/24 -j ACCEPT
# OpenVPN起動時実行スクリプトへ実行権限付加
chmod +x /etc/openvpn/openvpn-startup
-
OpenVPN停止時実行スクリプト新規作成
# OpenVPN停止時実行スクリプト新規作成
vi /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
# OpenVPN停止時実行スクリプトへ実行権限付加
chmod +x /etc/openvpn/openvpn-shutdown
-
OpenVPNログローテーション設定
# OpenVPNログローテーション設定ファイル新規作成
vi /etc/logrotate.d/openvpn
/var/log/openvpn.log {
missingok
notifempty
sharedscripts
postrotate
systemctl restart openvpn 2>&1 > /dev/null || true
endscript
}
-
OpenVPN起動スクリプト変更
# OpenVPN起動スクリプト変更
vi /etc/rc.d/init.d/openvpn
下記内容を変更
# 行頭の#を削除し、コメント解除
# パケット転送を有効化する
echo 1 > /proc/sys/net/ipv4/ip_forward