OpenVZ上にあるDebianでOpenVPNインターネットゲートウェイを設定する

紳士、8月1日が近づいているので、p2pの分野で法律が制定されている国、つまりオランダのIPを取得することを考えました。 かなりの時間をかけて検索した結果、E3-1230の2つのコア、数ギガバイトのメモリ、460ギガバイトのネジ、すばらしい無制限の(この問題に関するサポートに特に連絡した-数百テラバイト後でもチャネルが切断しないことを保証する)ギガビットチャネルを約40 1ドルのお金で。 唯一のこと-OpenVZ仮想化-私は通常OpenVPNをXENまたはKVMで構成したため、すべてが通常ほどスムーズに進まなかったため、得られた知識を共有することにしました。



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.keyC:/ Programm files(x86)/ OpenVPN / configに追加します

OpenVPN->接続アイコン上で右マウスを使ってトレイに入れると、他の国に連れて行ってくれます。



All Articles