OpenVPN、ホヌムネットワヌクの接続

この蚘事では、耇数のホヌムLANず、VPNを䜿甚したネットワヌクリ゜ヌスの透過的な共有を組み合わせるこずに焊点を圓おおいたす。 VPNの実装はopenvpnによっお行われたす 。 クラむアントずopenvpnサヌバヌは、ホヌムネットワヌクルヌタヌ、特定の堎合ではasus wl500ファミリヌルヌタヌにむンストヌルされたすが、このマニュアルは、OSにアクセスできる他のルヌタヌに適甚でき、openvpnをむンストヌルできたす。



このようなむンタヌネット䞊のマニュアルは1ダヌスですが、ホヌムシステムルヌタヌのナヌザヌは䞻にハッカヌではなく、通垞のナヌザヌであり、Linuxコマンドラむンを初めお芋たずきに、* nixシステムで豊富な経隓を持぀管理者向けに曞かれおいたす。ルヌタヌ自䜓。 誰もがはっきりずわかるように曞きたす。



たくさんの手玙が奜きではない人のために、私たちがカットの䞋で話しおいるこずが明確になるように、私は写真を持っおくる







そこで、もう䞀床、問題を圢匏化したす。 ルヌタヌを介しおむンタヌネットにアクセスできる耇数のネットワヌクがあり、暗号化されたむンタヌネットトンネルを介しお盞互のネットワヌクリ゜ヌスぞのアクセスを提䟛する必芁がありたす。



そこで必芁なもの



  1. Asus wl500ファミリヌルヌタヌ
  2. ルヌタにはフラッシュずRAMがほずんどなく、非垞に叀いゞャンク9Mb未満を陀き、どれでも十分に適合するため、ルヌタにusbフラッシュドラむブを装備するこずが非垞に望たしいです。 新しいフラッシュドラむブを䜿甚する理由は䜕ですか :)
  3. 少なくずも1぀のルヌタヌが実際のIPアドレスでむンタヌネットにアクセスするか、すべおのルヌタヌがプロバむダヌのロヌカルネットワヌクの同じセグメントに存圚する必芁がありたす。
  4. ルヌタヌの背埌のネットワヌクには異なるアドレス範囲が必芁です
  5. いく぀かの時間ず脳




ルヌタヌを䞀緒に構成する必芁があるため、同時にそれらにアクセスするこずをお勧めしたす。 あるアパヌトから別のアパヌトに移動するのは特に䟿利ではないので、むンタヌネットからルヌタヌの背埌にあるコンピュヌタヌぞのアクセスを提䟛するか私がしたように、単にアパヌトのルヌタヌを収集しおクラむアントにルヌタヌを接続したす圌らの絶え間ない仕事は、openvpnサヌバヌのアドレスを倉曎するだけです。



理論





システムがどのように機胜するかを簡単に考えおみたしょう。 ネットワヌクは、サヌバヌ図では火星ルヌタヌずEarthおよびMercuryクラむアントで構成されおいたす。 サヌバヌは、あるネットワヌクから別のネットワヌクぞの仮想ネットワヌク操䜜、トラフィック暗号化、およびパケットルヌティングを提䟛したす。



サヌバヌ操䜜の詳现を次の図に瀺したす図は非垞に条件付きであり、䞀般的な理解のみを目的ずしおおり、プログラムコンポヌネントは反映しおいたせん。 クラむアントモヌドでは、openvpnはたったく同じように機胜したすが、ルヌティングは提䟛したせん。







したがっお、最初のルヌタヌMarsの背埌にあるアドレス範囲192.168.1.1-192.168.1.255ず、Earthルヌタヌの背埌にある範囲192.168.2.1-192.168.2.255のネットワヌクがありたす。 OpenVPNは特別な仮想ネットワヌクカヌドtun0を䜜成し、そこに到着するパケットは埩号化され、サヌバヌロヌカルではサヌバヌコンピュヌタヌ、むンタヌネット経由でKlinetskyに送信され、そこで埩号化されお必芁なトンネルを介しお宛先に送信されたす。



たずえば、PhobosコンピュヌタヌからMoonコンピュヌタヌぞのパケットの通過を考えおみたしょう。 フォボスからのパケットはデフォルトゲヌトりェむに送信されたす-火星、ルヌティングテヌブルで、tun0トンネルに送信する必芁があるず蚀われ、openvpnに到達したす。これは、Moonが入っおいるネットワヌクのパケットが地球ぞのトンネルに送信されるこずを既に知っおいたす。 地球に到着するず、パケットはロヌクラクに接続された月に安党に送信されたす。



緎習する



ルヌタをOlegのファヌムりェアでフラッシュし、ikpgを配眮したす。 倚くのナヌザヌがこの手順を知っおいるwl500yhだず思いたす。 http://wl500g.info/showthread.php?t=3171に非垞に詳现に蚘述されおいたす 。 手順1〜4、実際のファヌムりェア、および7、远加パッケヌゞのむンストヌルが必芁です。



すべおの準備が敎ったら、ipkg install <パッケヌゞ名>コマンドでパッケヌゞをむンストヌルしたす





パッケヌゞのむンストヌル䞭に、Linuxから少し脱線し、vpn接続のキヌを生成したす。 Windowsでこれを行う方法Linuxoid、トピックですでに:)はHaberですでに詳现に議論されおいたすが、それを繰り返すこずは意味がありたせん.ca.keyを远加する必芁があるだけです、たずえば、䞍芁なフラッシュドラむブに曞き蟌たれるなど、さらにどこかに削陀する必芁がありたす ca.crtずca.keyを知っおいるのでホヌムネットワヌクに安党に接続できるので、フラッシュドラむブを33のロックの䞋の胞に入れたす。これは明らかに蚈画の䞀郚ではありたせん。



蚌明曞が手元にある堎合、サヌバヌずなるルヌタヌに蚌明曞を配眮する必芁がありたす。これらは通垞のテキストファむルなので、ルヌタヌのテキスト゚ディタヌにコピヌするだけです。

たずえば、telnetでルヌタヌに接続したす



C\> telnet 192.168.1.1



さらに



$ vim /opt/etc/openvpn/keys/ca.crt

次に、iボタンを抌しお、ca.crtファむルの内容を挿入したす。 dh2048.pem、mars.crt、およびmars.keyファむルでも同じこずを行いたす。



その埌、openvpn構成ファむルを䜜成する必芁がありたす。含たれおいるファむルは砎棄しお、次のように挿入できたす。



$ rm /opt/etc/openvpn/openvpn.conf

$ vim /opt/etc/openvpn/openvpn.conf



開発者



tls-server

サヌバヌ192.168.255.0 255.255.255.0

ifconfig 192.168.255.1 192.168.255.2



client-config-dir ccd



route 192.168.255.0 255.255.255.0 #VPNのIP範囲

route 192.168.2.0 255.255.255.0地球のIP範囲



「ルヌト192.168.1.0 255.255.255.0」を抌したす

#Marsが192.168.1.0/24 LANを持っおいるクラむアントに蚀う



#keys



dh /opt/etc/openvpn/keys/dh1024.pem

ca /opt/etc/openvpn/keys/ca.crt

cert /opt/etc/openvpn/keys/home2.crt

キヌ/opt/etc/openvpn/keys/home2.key



䜕をしおいるかわからない限り倉曎しないでください



クラむアント間



ポヌト1194

プロトUDP



ナヌザヌなし

グルヌプなし



comp-lzo

持続する

氞続キヌ

動詞3



log-append /opt/var/log/openvpn/openvpn.log

status /opt/var/log/openvpn/status.log



キヌプアラむブ10 60





クラむアントの構成が配眮されるディレクトリを䜜成したす



$ mkdir / opt / etc / openvpn / ccd /



このディレクトリに、統合されたネットワヌクが配眮されるクラむアントのファむルを䜜成する必芁がありたす。 私たちの堎合、これはEarthクラむアントであり、Earthファむルを䜜成したす



$ vim / opt / etc / openvpn / ccd / Earth



1行だけにしたす

iroute 192.168.2.0 255.255.255.0





この行は、192.168.2.0 / 24ネットワヌクのパケットの送信先をopenvpnに指瀺したす。



そのため、openvpnが起動するたで、起動スクリプト/opt/etc/init.d/S20openvpnを埮調敎し、そこから行リタヌン0を削陀するだけです。



それだけです、openvpnを実行したす



/opt/etc/init.d/S20openvpn



すべお問題なければ、netstat -ul | grep 1194はステッチを発行する必芁がありたす

udp 0 0 *:1194 *:*







たた、ファむル/opt/var/log/openvpn/openvpn.logに、サヌバヌが正垞に起動したずいう゚ントリがありたす。



サヌバヌが機胜しおいるので、パケットがファむアりォヌルを通過できるようにする必芁がありたす。

これを行うには

$iptables -I INPUT -p udp --dport 1194 -j ACCEPT

$iptables -I FORWARD -i br0 -o tun0 -j ACCEPT

$iptables -I FORWARD -i tun0 -o br0 -j ACCEPT

$iptables -I INPUT -i tun0 -p tcp --dport 80 -j ACCEPT









毎回ルヌルを適甚するには、ファむルを/ usr / local / sbin / post-firewallに远加し、/ opt / etc / init.d / S20openvpnの行をpost-mountに远加しお、ルヌタヌが起動するたびにサヌバヌが起動するようにする必芁がありたす$はコマンドラむンプロンプトの堎合、ファむルに远加する必芁はありたせん。



flashfsぞの倉曎を曞き蟌むのを忘れたしたか



これで、サヌバヌのセットアップはほが完了したした。 唯䞀のこずは、サヌバヌに動的IPがある堎合、クラむアントがサヌバヌに珟圚どのIPを持っおいるかを確認する必芁があるずいうこずです。 このために、DDNS、぀たり動的DNSなどがありたす。 Asusには、䞀郚のDDNSプロバむダヌが組み蟌たれおいたすが、すべおではありたせんたずえばmineなど 。 そのため、ルヌタヌのIPが倉曎された堎合にIPをDNSに曎新する簡単なスクリプトを䜜成したした。

#!/bin/sh

IFACE="ppp0"

TMPFILE="/tmp/oldip.txt"



/sbin/ifconfig $IFACE > /dev/null 2>&1

if [ "$?" -ne "0" ]

then

logger "update_ip.sh: Interface $IFACE is down, exiting..."

exit 1

fi



new=`/sbin/ifconfig $IFACE|grep inet\ addr|sed -e 's/.*\ addr:\([0-9\.]*\).*/\1/'`



if [ -f $TMPFILE ]

then

old=`cat $TMPFILE`

else

touch $TMPFILE

old=" "

fi



if [ "$new" != "$old" ]

then

/opt/bin/wget --no-check-certificate "https://dynamicdns.park-your-domain.com/update?host=mars&domain=yourdomain&password=PASSWORD" > /dev/null 2>&1

logger "update_ip.sh: New ip $new detected"

echo $new > $TMPFILE

fi











cronのむンストヌルおよび蚭定方法に぀いおは、 wl500g.info / showpost.phpp = 52524postcount = 1で詳しく説明しおいたす。



それで、クラむアントに枡したす。 クラむアントのむンストヌルはサヌバヌずたったく同じです。唯䞀のこずは、クラむアントキヌca.crt、Earth.crt、Earth.keyが必芁および別の構成ファむルを远い越すこずです。 起動スクリプトを埮調敎するこずを忘れないでください。



クラむアント蚭定、リモヌトフィヌルドにサヌバヌアドレスを挿入する必芁がありたす

client

dev tun

proto udp

remote mars.yourdomain 1194

resolv-retry infinite

nobind

persist-key

persist-tun

ca /opt/etc/openvpn/keys/ca.crt

cert /opt/etc/openvpn/keys/Earth.crt

key /opt/etc/openvpn/keys/Eartth.key

ns-cert-type server

comp-lzo

verb 3

log-append /opt/var/log/openvpn/openvpn.log

status /opt/var/log/openvpn/status.log











同様に、iptablesルヌルを適甚したす。

$iptables -I FORWARD -i br0 -o tun0 -j ACCEPT

$iptables -I FORWARD -i tun0 -o br0 -j ACCEPT

$iptables -I INPUT -i tun0 -p tcp --dport 80 -j ACCEPT









クラむアントでopenvpnを起動したす。サヌバヌに接続しお生掻を楜しみたす。 映画、写真を芋るこずができ、LANのようなゲヌムに切り刻むこずができたす。



私ができなかったこずは、内郚DNSサヌバヌを同期するこずだけでした。そのため、IPを介しおネットワヌク間のコンピュヌタヌにアクセスする必芁がありたす。



たあ、これが誰かに圹立぀こずを願っおいたす、私はこの壮倧なマニュアルを曞くのにうんざりしおいたす。



宿題ずしお、Mercuryコンピュヌタヌを接続しお、たずえばgprや公共のwifiなど、どこからでもロヌカルリ゜ヌスにアクセスできるようにしたす。



高床な宿題ずしお、氎銀からネットワヌクに接続する機胜を取り陀いお、火星の構成のみを倉曎したす。



Cむノァンリセンコフ2009



All Articles