鍵の作成が終わったので、次に設定ファイルを作成、修正していきます。
-
パケット転送設定
下記2ファイルを修正します。vi /etc/sysctl.conf
下記コメントアウトを外す。 #net.ipv4.ip_forward=1 ↓ net.ipv4.ip_forward=1
viじゃなぜか編集できなかったので、リダイレクトで設定変更。
echo 1 > /proc/sys/net/ipv4/ip_forward
-
サーバー設定ファイル
vi /etc/openvpn/server.conf
下記内容を追加 # tunデバイス、udpプロトコル、1194番ポートを利用 dev tun proto udp port 1194 # 認証局証明書、サーバー証明書、サーバー秘密鍵、鍵交換用のパス設定 ca /etc/openvpn/ca.crt cert /etc/openvpn/サーバー名.crt key /etc/openvpn/サーバー名.key dh /etc/openvpn/dh1024.pem # OpenVPNの実行権限(OpenVPNインストール時に作成されるユーザとグループ) user nobody group nogroup # OpenVPNの仮想ネットワークと仮想サブネットマスク server 10.8.0.0 255.255.255.0 # 起動時に鍵読み込み、tunデバイスオープン persist-key persist-tun # OpenVPNのログ設定 status /var/log/openvpn-status.log log-append /var/log/openvpn verb 3 # OpenVPNクライアント間の接続許可 client-to-client # OpenVPNクライアント側の全てのトラフィックをOpenVPNサーバー経由(デフォルトゲートウェイ:10.8.0.2) # 「route -n」で確認可能 push "redirect-gateway def1" # DHCP設定(DHCP利用しないため、詳細不明) push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" # LZO圧縮を利用 comp-lzo # OpenVPNクライアントのIP固定設定を利用 client-config-dir ccd # 共有鍵の利用 #tls-auth ta.key 0
下記サイトを参考にしました。
英語サイトですが、コマンドは一緒なので雰囲気で。
http://raspberrypihelp.net/tutorials/1-openvpn-server-tutorial
-
サーバー設定ファイル(注意点1)
pushを「”」で括っていますが、色々な参考サイトを見ていると、
「”」(全角のダブルクォーテーション)になっているサイトがありますが、
正しくは「”」(半角のダブルクォーテーション)です。クライアントはWindowsとiPhoneでそれぞれ試したところ、
WindowsはどちらでもOpenVPNに接続成功しますが、
iPhoneでは「”」(半角のダブルクォーテーション)でないとエラーになりました。全く同事象でエラーとなっていた人がいました。
https://forums.openvpn.net/topic12789.html
-
サーバー設定ファイル(注意点2)
「tls-auth ta.key 0」はコメントアウトしています。
前回も記載していますが、有効になっているとiPhoneからの接続が出来なかったためです。
-
クライアントの仮想IP固定設定
VPNクライアントの仮想IPは固定が推奨らしいので、設定を行います。mkdir /etc/openvpn/ccd vi /etc/openvpn/ccd/クライアント名
下記内容を追加 ifconfig-push 10.8.0.X 10.8.0.X+1
Xは決まった数値がありますが、他のサイトを参考にしてください。
-
OpenVPN起動
/etc/init.d/openvpn start
エラーが発生する場合、下記のログを確認します。
view /var/log/openvpn
私のRaspberry Piでは下記の内容が出力されていました。
Note: Cannot open TUN/TAP dev /dev/net/tun: No such device (errno=19)
下記サイトを確認するとrebootが有効とのことで、
再起動後にコマンドを実行してみたところ、無事起動しました。http://blog.paulregan.co.uk/2013/02/raspberry-pi-openvpn.html
-
ファイアウォール設定
ファイルウォールの設定を行います。
私のRaspberry Piはiptablesのラッパー的な役割をするufwを導入しているため、
iptablesだけではなく、ufwの設定も行います。-
iptablesの設定
iptables -t filter -A INPUT -i eth0 -p udp -m udp --dport 1194 -j ACCEPT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to 192.168.XXX.XXX
「–to」にはRaspberry Piの通常のIPを指定します。
再起動すると設定が消えるため、自動設定できるようにするのが良いです。
(ここでは記載省略)
-
ufwの設定
ufw allow 1194 vi /etc/ufw/before.rules
下記内容を「# End required lines」と「# allow all on loopback」の間に追加 # OpenVPN Configuration -A ufw-before-input -i tun+ -j ACCEPT -A ufw-before-output -i tun+ -j ACCEPT -A ufw-before-forward -s 10.8.0.0/24 -j ACCEPT -A ufw-before-forward -d 10.8.0.0/24 -j ACCEPT
ufw disable ufw enable
-
iptablesの設定