ラボ「GNU / Linuxでネットワヌクを蚭定するための孊習」

長いむントロが奜きな人はいたせんので、芁点を説明したしょう。

この即興ラボでは、GNU / Linuxを䜿甚したネットワヌキングを匷調したす。

次のトピックを怜蚎しおください。



  1. å­Šç¿’VLAN。 1぀のVLANでvm1、vm2の間にネットワヌクを構築したす。 pingを実行し、パケットをキャッチし、芋出しを調べたす。
  2. vm1 vm2を異なるVLANに分割したす。 R1を䜿甚したintervlanルヌティングの構成。
  3. Iptables。 マスカレヌドをカスタマむズしたす。 倖郚ネットワヌクぞのアクセスをシミュレヌトしたす。
  4. Iptables。 NATの背埌にあるvm1およびv2のサヌビスのポヌト転送を構成したす。
  5. Iptables。 セキュリティゟヌンを構成したす。 tcpセッションを勉匷したす。




Z.Y. すべおの人が間違っおいたす。あなたのコメントを受け入れたす。愚かさを曞いたら、それを修正する準備ができおいたす



指定VM1、VM2で構成されるロヌカル゚リアネットワヌク。 R1ルヌタヌ仮想マシンでもありたす、S1 Webサヌバヌ。

Yandexディスクからこのラボ甚の既補のバヌチャルをダりンロヌドできたす

なぜなら この蚘事をレッスンずしお送信しようずしたしたが、ほずんどの堎合、テキストでコマンドを曞くのではなく、スクリヌンショットを撮っお自分の手でそれらを操䜜したした。 これにより、より速く理解し、芚えやすくなりたす。 これが䞍䟿であるこずは十分に理解しおいたすが、このアプロヌチを遞択するこずにしたした。

ネットワヌク図




VBOXでの仮想マシンの䟋




VM1の蚭定-むンタヌフェヌスずしおブリッゞずしお接続したす。 任意のむンタヌフェむスを遞択しお、そのすべおを閲芧できたす。 完党を期すために、システム2ブリッゞアダプタヌbr0、br1にアダプタヌを䜜成し、vm1、vm2、r1アダプタヌ1をbr0に、s1、r1アダプタヌ2をbr2に接続したした。

アダプタのセットアップ䟋




残りの3぀の蚭定は䌌おいたす。



I. VLANを調査したす。 1぀のVLANでvm1、vm2の間にネットワヌクを構築したす。 pingを実行し、パケットをキャッチし、芋出しを調べたす。





vm1ずvm2を起動し、コマンドを䜿甚しおシステムのむンタヌフェむスを確認したす
ip addr
      
      



IP aず省略

結果




新しいデバむスを远加したす。これはeth0.100ず呌ばれ、id = 100のタグ付きむンタヌフェヌスになりたす。

結果




ip link add -

link eth0 - eth0

name eth0.100 - . , vlan.

type vlan - . 8021q - vlan

id 100 - id vlan









次に、このむンタヌフェむスにIPアドレスを割り圓おたす。

 ip addr add 10.10.10.10/24 dev eth0.100
      
      





レコヌドの短いビュヌ

 ip aa 10.10.10.10/24 dev eth0.100
      
      





結果




私たちは次のこずに泚意を払っおいたすノヌキャリアずダりン

これは、むンタヌフェむスにネットワヌクケヌブルが接続されおおらず、むンタヌフェむス自䜓がダりンしおいるこずを意味したす。

結果




ケヌブルを接続するず、次の図が衚瀺されたす。

結果




そしお、コマンドでむンタヌフェヌスを有効にしたしょう

 ip link set dev eth0.100 up
      
      





結果




したがっお、vlan id = 100のタグ付きパケットを受信するむンタヌフェむスを䜜成したため、このむンタヌフェむスを介しおパケットがネットワヌクにリリヌスされるず、タグ100がパケットにハングアップしたす。 そしお圌にIPアドレス10.10.10.10/24を割り圓おたした

VM2でも同じこずを行い、アドレス10.10.10.20/24を割り圓おたす

結果




VM1ずVM2間の接続の確認VM2で10.10.10.10にpingを実行したす

結果




芁玄するず、1番目のロヌカルネットワヌクの2台のマシンで䜜成し、100番目のVLANの2぀のタグ付きむンタヌフェむスを䜜成し、それらの間の接続を確認したした。



これはすべお嘘や挑発ではないこずを確認したす VM1でリスナヌを起動し、VM2ずトラフィックトラフィックでリスナヌをノックしたす。

1. VM1で実行する

nohup nc -lvp 3000 &

tcpdump -n host 10.10.10.20 -i eth0 -e







2. VM2で実行する

nc 10.10.10.10 3000





結果




チャネルレベルvlan 100のヘッダヌに衚瀺されたす。したがっお、ネットワヌク䞊のパケットは実際にはタグ付きであり、これはマザヌグヌスの発明ではありたせん。



II。 vm1 vm2を異なるVLANに分割したす。 R1を䜿甚したintervlanルヌティングの構成。





次に、ポむント番号2に進みたす。これら2぀の仮想マシンを異なるVLANに分割し、ルヌタヌを構成したす。

VM1の堎合

タグ200のeth0.200むンタヌフェむスを远加し、アドレス192.168.0.2を割り圓おたす

VM2の堎合

タグ300のeth0.300むンタヌフェむスを远加し、アドレス172.16.0.2を割り圓おたす

独立しお

結果VM1




結果VM2




R1ルヌタヌをオンにしお構成したす。 ルヌタヌでは、VM1、VM2ずは異なり、vlan 200ずvlan 300の䞡方にむンタヌフェヌスを䜜成する必芁がありたす-このむンタヌフェヌスはこれらのネットワヌクのゲヌトりェむになりたす。 それらにアドレス192.168.0.1、172.16.0.1を割り圓おたす。

結果






接続を確認しおください。 192.168.0.2および172.16.0.2のルヌタヌからpingを実行したす。 ずころで、VM2でeth0.300を蚭定するのを間違えたため、ここに小さな問題がありたした。

゚ラヌが芋぀かりたせんでした
id = 300の代わりに、id = 200を登録したした



結果






それで、VM1、R1ずVM2、R1の間に接続ができたした。 VM1、VM2をR1経由で接続しおみたしょう。

ルヌタヌがむンタヌフェむス間でパケットを転送できるようにするには、蚱可する必芁がありたす。 /etc/sysctl.confファむルのnet.ipv4.ip_forward = 1ディレクティブのコメントを倖し 、 sysctl -pコマンドで倉曎を適甚する必芁がありたす。

 # nano /etc/sysctl.conf # sysctl -p net.ipv4.ip_forward = 1
      
      





結果




そしお今、最も重芁なこず。 ルヌティングを構成する必芁がありたす。 これを行うには、3぀の䞀般的な方法がありたす。

1.デフォルトルヌトを指定したす。 ぀たり 宛先IPの堎所がわからないため、ルヌタヌのロヌカルネットワヌクヘルメットに属さないすべおのパケット。

2.特定のサブネットのゲヌトりェむを指定したす。 ネットワヌクが異なるルヌタヌの背埌でアクセス可胜な堎合、これを行う必芁がありたす。

3.パッケヌゞを受け取る人の背埌にあるむンタヌフェむスを瀺したす。 この状況は、たずえば、必芁に応じお、サブネットをルヌティングするためにデヌタセンタヌで発生したした。 ぀たり デヌタセンタヌが私に割り圓おられたサブネットを静的にルヌティングした倖郚アドレスぞの仮想ルヌタヌがありたした。 次に、このサブネットのIPアドレスが、内郚にあるルヌタヌのむンタヌフェむスの1぀にあるこずを指摘したした。 パケットはこのむンタヌフェむスに送信され、これらのホワむトアドレスが割り圓おられた仮想マシンによっお反察偎で受信されたした。 ぀たり この状況では、ゲヌトりェむの指定は完党にオプションでした。

VM1のルヌトのリストを芋おみたしょう。

 ip ro
      
      





結果




仮想マシンは、2぀のサブネット10.10.10.0/24ず192.168.0.0/24のみを認識しおいたす。 ホスト172.16.0.2に぀いおは䜕も蚀われおいたせん pingを詊しおも、䜕も機胜しないためです。

結果




サブネット172.16.0.0/24ぞのルヌトを远加したす。

 ip ro add 172.16.0.0/24 via 192.168.0.1
      
      





via-誰を経由するかを意味したす。 ぀たり ホスト192.168.0.1にパケットを送信するず、それがわかりたす。

ルヌティングテヌブルを調べるず、次の決定が行われたす。

1.このパッケヌゞの察象者 ホスト172.16.0.2

2.パケット172.16.0.2を誰に送信すればよいですか ホスト192.168.0.1

3.ホスト192.168.0.1に぀いお䜕を知っおいたすか 圌は盎接接続されおいたす。 このサブネットは私たちのものです。 チャネルレベルでは、゜ヌスMACアドレスを䜜成し、ホストMACアドレスは192.168.0.1、゜ヌスIPは192.168.0.2、宛先IPアドレスは172.16.0.2であり、eth0.200むンタヌフェヌスを介しお送信したす。 ポッドキャスト「最小のネットワヌク」の著者が蚀ったように、パッケヌゞの運呜は私たちを悩たせたせん。

隣接VLANのゲヌトりェむにpingを詊行しおみたしょう。
 ping 172.16.0.1
      
      





結果




動䜜したす しかし、172.16.0.2にpingを実行するずどうなりたすか 埩路がないため、機胜したせん。 パケットはホストVM2に到達したすが、VM2はそれを送り返すこずができたせん。 どこがわからない VM2に戻るルヌトを远加しおみたしょう。

VM2のデフォルトルヌトを远加したす。 これを行うには、サブネットずマスク0.0.0.0/0-぀たり、絶察にすべおのアドレスが該圓するを指定するか、デフォルトのキヌワヌドを䜿甚したす。

結果




同じ結果が埗られたす。 そしお最埌に、VM1はVM2に自由にpingを実行したす。 やった



芁玄するず、Linuxルヌタヌを䜿甚しお2぀のVLAN間をルヌティングする方法を孊びたした。



III。 Iptables。 マスカレヌドをカスタマむズしたす。 倖郚ネットワヌクぞのアクセスをシミュレヌトしたす。





パブリックサヌバヌS1を远加したす。 その䞊にapache2をむンストヌルしapt install apache2、むンタヌネット䞊のWebサヌバヌを暡倣したす。 䞀方、VM1、VM2はルヌタヌの背埌にあるプラむベヌトマシンです。 2番目のむンタヌフェむスルヌタヌは、その堎しのぎのむンタヌネットを芋たす。

R1の2番目のむンタヌフェヌス-eth1を远加し、VLANなしでIPアドレス8.8.8.100を蚭定し、S1-8.8.8.8に蚭定したす。

結果




コン゜ヌルに入力したすべおのコマンドは、再起動するたで機胜しないこずに泚意しおください。 2぀のむンタヌフェむスを远加しお仮想マシンをオフにした埌、再起動埌に未構成のマシンを受け取ったため、すべおのコマンドを再床適甚する必芁がありたした。

結果




私の埌にVBOXの構成を繰り返す堎合、S1ずR1の䞡方でbr1に䞡方のネットワヌクカヌドを远加するこずを忘れないでください。 次のコマンドを䜿甚しお、システムのブリッゞむンタヌフェむスを䜜成できたす。

 ip link add br1 type bridge
      
      



。

ただし、䞀般的に、ラボ党䜓を䜜成し、1぀のむンタヌフェむスで䜕も䜜成するこずはできたせん。

スむッチのようなブリッゞをシミュレヌトするために、分離を匷調したす。



S1、R1を構成した埌、接続を確認したすping 8.8.8.8.8を実行したす-R1で動䜜するはずです。 さらに、VM2でpingを実行するず、pingは実行されたせん。

なんで
S1はネットワヌク172.16.0.0に぀いお知らないためです。 R1をS1のデフォルトゲヌトりェむずしお远加したす。

 ip ro add default via 8.8.8.100
      
      









さらに、VM1を䜿甚しおサヌバヌにpingを実行するず、通垞、ネットワヌクが利甚できないず衚瀺されたす。

なんで
デフォルトのgwをたったく登録しなかったが、ネットワヌク172.16.0.0/24の堎所を瀺したためです。





ゲヌトりェむを䜜成しお、これを修正したしょう。

結果






これで、4台すべおが完党に盞互にpingを実行したした。 しかし、これはすべきではありたせん。 灰色のアドレスはオンラむンにしないでください たた、R1が2番目のむンタヌフェむスを参照するネットワヌクは、アドレス172.16。*。*、192.168。*。*がどこにあるかを知らないはずです。

S1でデフォルトのgwを削陀したす。

 ip ro del default
      
      







芁玄するず、必芁なネットワヌクぞのルヌトを登録する方法ず、ルヌタヌの背埌にあるグレヌアドレスを「非衚瀺」にしお、1぀のホワむトアドレスのみからすべおのトラフィックを「出力」する方法を孊びたした。



それはNATに぀いお話す時間です。 NAT英語版。ネットワヌクアドレス倉換-「ネットワヌクアドレス倉換」は、TCP / IPネットワヌクのメカニズムであり、通過パケットのIPアドレスを倉換できたす。 IPマスカレヌディング、ネットワヌクマスカレヌディング、ネむティブアドレス倉換ずも呌ばれたす。 マスカレヌドを怜蚎したす。 これはSourceNATSNAT&& DestinationNATDNATです。

NATには本圓に䜕が必芁ですか ただし、ルヌタヌの送信元IPアドレスを受信するには、S1ぞの発信パケットが必芁であり、戻っおくるず、宛先アドレスずしお仮想アドレスを再床取埗したす。



17.16.0.0/24サブネットのマスカレヌドを蚭定したしょう-ルヌタでコマンドを実行したす

 iptables -t nat -A POSTROUTING -p tcp -m tcp -s 172.16.0.0/24 ! -d 172.16.0.0/24 -j MASQUERADE
      
      





iptablesの仕組みに぀いおは詳しく説明したせん。 これは非垞に倚くのブナであり、この蚘事は明らかにこれのためではありたせん。 これは勉匷するのにずおも良い蚘事です。

泚意するだけ! -d 172.16.0.0/24



! -d 172.16.0.0/24



これが必芁な理由。 これは、ルヌタヌの背埌にある可胜性のある172.16.0.0/24サブネットのホストリモヌトvpnクラむアントなどがこのルヌルに該圓しないようにするために必芁です。

iptables-save



コマンドで埗られた結果を芋るこずができたす



それで、私たちは䜕を達成したしたか VM2のマスカレヌドを蚭定したす。 ぀たり、S1をノックするず、S1はVM2のアドレスではなく、ルヌタヌのアドレスを芋るこずになりたす いく぀かの蚌明

結果




しかし、この時点でS1は䜕を芋たすか

結果




8.8.8.8は8.8.8.100ず完党に通信し、172.16.0.2ずは通信せず、臭いもしたせんでした

しかし、この瞬間にルヌタヌで䜕が起こるのでしょうか このキッチンはどのように機胜したすか 「灰色」eth0.300むンタヌフェヌスの盗聎

結果




そしお、これは「倖郚」ネットワヌクぞの出力をどのように芋るかです

結果






カヌネルはそれを凊理し、パケットの方向に応じお正しいIPアドレスに眮き換えたす。 ただし、VM1で同じ操䜜を行うず、S1には灰色のアドレスが衚瀺されたす。 単玔にこのリク゚ストに応答したせん。 自分で芋おください。 S1のGWを削陀する必芁があるこずを思い出させおください。



芁玄するず、灰色のネットワヌクを隠し、ルヌタヌの背埌にあるホストをリリヌスし、゜ヌスアドレスipをルヌタヌアドレスに眮き換えたした。 そしお別の方向-特定の仮想マシンの特定のポヌトを「倖郚」に転送する方法を孊び、S1サヌバヌから「パブリック」ネットワヌクからVM1仮想マシンのグレヌアドレスに接続するこずができたした。



IV。 Iptables。 NATの背埌にあるvm1およびv2䞊のサヌビスのポヌト転送を構成する





S1がむンタヌネットからの特定のクラむアントであり、VM1ルヌトがなく、マスカレヌドが構成されおいないクラむアントに接続したいずしたす。 sshを介しお接続しようずしたす。 デフォルトではSSHはポヌト22でハングしたすが、これらのサヌバヌが耇数ある堎合はどうでしょうか 䞀般に、最も単玔なネットワヌクスキャナヌを削陀するには、ポヌト22からsshを垞に削陀する必芁がありたす。 たずえば、ポヌト30022を䜿甚しお、ssh経由でVM1にアクセスしたす。



どのように機胜したすか

S1は、R1に到着するパケットs.ip = S1.ip、d.ip = R1.ip、s.port = N、d.port = 30022を送信したす。

R1はiptablesを芋おDNATルヌルを適甚し、パケットを圢成したすルヌルに埓っおs.ip = S1.ip、d.ip = VM1.ip; s.port = N、d.port = 22

ルヌティングテヌブルをスキャンし、eth0.200を介しおvm1パケットを送信したす。



次に、VM1はパケットを受信し、デヌタを受信し、応答を生成したすs.ip = VM1.ip、d.ip = S1.ip; s.port = 22、d.port = N。

R1はパケットを受信し、s1が最初にアクセスした元のs.ipを埩元したす。

s.ip = R1.ip、d.ip = S1.ip、s.port = 22、d.port = N



これは次のようにしお達成できたす。

結果




接続しおみおください

結果






芁玄するず、特定のルヌタヌの背埌にある仮想マシンにあるサヌビスぞのアクセスを提䟛する方法を孊びたしたそうでなければ、NATの背埌にある仮想マシンにアクセスできたす。これは、最も頻繁に必芁ずされるものです



V. iptables。 セキュリティゟヌンを構成したす。 tcpセッションを勉匷したす。





このレッスンで最埌に怜蚎したいのは、tcpセッションずこれらのセッションのむンストヌルの方向です。 したがっお、たずえば、サヌバヌずクラむアントの2぀のセグメントを怜蚎しおください。 たずえば、クラむアントは、ドメむンコントロヌラヌぞのサヌバヌセグメントに「移動」できる必芁がありたす。 ただし、ドメむンコントロヌラヌはクラむアントマシン䞊では䜕の関係もありたせん。 そのような䟋は数倚くあり、あるネットワヌクセグメントから別のネットワヌクセグメントに移動できる理由ずそうでない理由はありたす。 なぜこれが必芁なのでしょうか たずえば、むンタヌネットを「監芖」し、攻撃者に「奪われる」Webサヌバヌがありたす。 このサヌバヌから、圌は䌁業ネットワヌクをノックしようずするかもしれたせん。 ただし、このセグメントからのセッションの確立を犁止するず、これは起こりたせん。 ぀たり 少なくずも攻撃者の生掻を耇雑にしたす。 VM2がVM1に移動するこずを犁止するルヌルを远加しお、VM1からVM2に移動できるようにしたす。

結果




VM1からVM2に移動しようずしたす。

結果




そしお反察方向に

結果




なぜこれが起こっおいるのですか TCPセッションを確立する瞬間に、TCP SYNパケットが到着したすSYN ACKがそれに応答し、ACKずセッションが確立されたず芋なされたす。 最初に曞き留めたルヌルNEWを䜿甚では、TCP SYNパケットを192.168.0.0ネットワヌクから172.16.0.0に転送できたす。

2番目の参加者がこれず埌続のパケットに応答するず、確立されたセッションの2぀のルヌルがアクションに該圓し、ネットワヌク172.16.0.0からのそのようなパケットが通過したす。 しかし、圌自身がセッションたたはpingを確立しようずするず、1.2の芏則には該圓せず、このパッケヌゞがドロップする3番目の芏則に該圓したす。 出来䞊がり



芁玄するず、セキュリティゟヌン間のトラフィックの方向を制埡するために、tcpセッションのむンストヌルの方向を管理する方法を孊びたした。



ご枅聎ありがずうございたした



講矩の草案を電報チャンネルt.me/bykvaadmに投皿したす



All Articles