OSディストリビューション-Debian 6
それでは始めましょう:
OpenVPNとdnsmasqをインストールする
aptitude install openvpn udev dnsmasq
次に、キー生成スクリプトをコピーします
cp -R /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn
その後、通常は/etc/openvpn/easy-rsa/2.0/varsファイルを修正するように提案されますが、ゲートウェイが「自分用に」行われる場合、この項目は完全にオプションです。 美しさが必要な場合は、上記のファイルの最後で次を編集します。
export KEY_COUNTRY="XX" export KEY_PROVINCE="XX" export KEY_CITY="City" export KEY_ORG="MyCompany" export KEY_EMAIL="habr@habr.ru"
変数を編集した後、ルート証明書を生成します
cd /etc/openvpn/easy-rsa/2.0/ . /etc/openvpn/easy-rsa/2.0/vars . /etc/openvpn/easy-rsa/2.0/clean-all . /etc/openvpn/easy-rsa/2.0/build-ca
次に、サーバーとクライアント\クライアント証明書を生成します(cli1、cli2の代わりに、自分に都合の良い名前を思い付くことができます)
. /etc/openvpn/easy-rsa/2.0/build-key-server server . /etc/openvpn/easy-rsa/2.0/build-key cli1 . /etc/openvpn/easy-rsa/2.0/build-key cli2
次に、Diffie-Hellmanパラメーターを生成します
. /etc/openvpn/easy-rsa/2.0/build-dh
キーを分解し、クライアント側でca.crt cli1.crt cli1.keyファイルを提供し、 ca.crt ca.key dh1024.pem server.crt server.keyファイルを/ etc / openvpn ディレクトリに配置する必要があります 。
cd /etc/openvpn/easy-rsa/2.0/keys cp ca.crt ca.key dh1024.pem server.crt server.key /etc/openvpn
ここで、ソフトウェアに付属しているサンプル構成を/ etc / openvpnディレクトリにコピーします。
cd /usr/share/doc/openvpn/examples/sample-config-files gunzip -d server.conf.gz cp server.conf /etc/openvpn/
VPNサーバーがクライアントをインターネットに配信するには、/ etc / openvpn / server.confを追加します
push "redirect-gateway def1" push "dhcp-option DNS 10.8.0.1"
次に、IP転送を有効にします
/etc/sysctl.confの行のコメントを解除します
net.ipv4.ip_forward=1
コンソールで実行します
echo 1 > /proc/sys/net/ipv4/ip_forward
再起動せずに変更が適用されるようにします。
次に、iptablesを構成します。
専用サーバーがある場合、またはXenまたはKVMで仮想サーバーがある場合は、コンソールで次のように記述します。
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT iptables -A FORWARD -j REJECT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
OpenVZ仮想化の場合、通常のNATは機能しません。SNATを使用する必要があります。このためにコンソールに書き込みます
iptables -t nat -A POSTROUTING -o venet0 -j SNAT --to <b>abcd</b> iptables -A FORWARD -i venet0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i tun0 -o venet0 -j ACCEPT
それぞれabcdの代わりに、サーバーの外部IP
OSのロード時にiptablesルールを適用するために、/etc/rc.localにそれらを記述し、そこでiptablesルールを適用した後、dnsmasq rebootを追加します。 変更後の/etc/rc.localファイルの例-
専用\ Xen \ KVMの場合:
#!/bin/sh -e # # [...] # iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT iptables -A FORWARD -j REJECT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE /etc/init.d/dnsmasq restart exit 0
OpenVZの場合:
#!/bin/sh -e # # [...] # iptables -t nat -A POSTROUTING -o venet0 -j SNAT --to <b>abcd</b> iptables -A FORWARD -i venet0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i tun0 -o venet0 -j ACCEPT /etc/init.d/dnsmasq restart exit 0
次に、dnsmasqを設定します。これを行うには、ファイル/etc/dnsmasq.confを開き、コメントを外して\を2行修正します
listen-address=127.0.0.1,10.8.0.1 bind-interfaces
これでサーバーのセットアップが完了し、サービスを再起動してクライアントの構成を開始できます。
service openvpn restart service dnsmasq restart
私の場合、すべてのクライアントはWindows 7上にあったので、Windowsのクライアント設定についてのみ説明します。
ソフトウェアのダウンロード-OpenVPN 、インストール、Windows 7の場合、管理者として実行「スタート\ OpenVPN \ OpenVPN Gui 」
次に、次の内容のファイル%name%.ovpnを作成します
push "redirect-gateway def1" client dev tun proto udp remote <b>abcd</b> 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert <b>cli1.crt </b> key <b>cli1.key</b> comp-lzo verb 3
abcdの代わりに、サーバーアドレス。
%name%.ovpnファイルと以前に取得したca.crt cli1.crt cli1.keyをC:/ Programm files(x86)/ OpenVPN / configに追加します
OpenVPN->接続アイコン上で右マウスを使ってトレイに入れると、他の国に連れて行ってくれます。