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

Source: https://habr.com/ru/post/J188474/


All Articles