本日、パブリックアカウントメッセージ機能がオープンしました!|記事の最後にある新築祝いのメリット
SNATポリシーの概要
SNATフルネーム:送信元ネットワークアドレス変換送信元アドレス変換
SNATは、Linuxファイアウォールのアドレス変換操作であり、iptablesコマンドのパケット制御の一種です。
SNAT機能:指定された条件に従って、データパケットの送信元IPアドレスを変更します。
IPアドレスのリソースが徐々に減少しているため、企業がパブリックIPアドレスを申請することは困難であるか、1つまたは少数のパブリックIPアドレスのコストしか認められないため、ほとんどの企業はLAN内のホストがアクセスする問題に直面します。インターネット需要。中小企業ネットワークを使用し、ゲートウェイでSNAT戦略を適用すると、LANでの共有インターネットアクセスの問題を解決できます。
Linuxゲートウェイサーバーは、インターネットにアクセスするLANホストの状況を分析するために、それぞれ2つのネットワークカードeth1とeth2を介してインターネットとLANに接続する必要があります。
LAN内の各ホストに正しいIPアドレス/サブネットマスク/デフォルトゲートウェイアドレスを設定します
Eth1:192.168.3.111/24 Gw:192.168.3.1
Eth2:192.168.1.7/24(ゲートウェイを構成せずに内部ネットワークカードに接続します)
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:f9:55:5b brd ff:ff:ff:ff:ff:ff
inet 192.168.1.7/24 brd 192.168.1.255 scope global eth2
inet6 2409:8a00:30f8:4d70:20c:29ff:fef9:555b/64 scope global dynamic
valid_lft 259010sec preferred_lft 172610sec
inet6 fe80::20c:29ff:fef9:555b/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:f9:55:65 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.111/24 brd 192.168.3.255 scope global eth1
inet6 fe80::20c:29ff:fef9:5565/64 scope link
valid_lft forever preferred_lft forever
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.3.0 0.0.0.0 255.255.255.0 U 1 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth2
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth2
ファイアウォールとselinuxをオフにします
# service iptables stop
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
# setenforce 0
ルーティングと転送のみを有効にし、アドレス変換を行わない場合、
ゲートウェイとして機能するLinuxサーバーは、ルーティングと転送を有効にして複数のネットワークに接続する必要があります。
アドレス変換戦略を使用しない場合、LAN PC 192.168.1.123からインターネットにアクセスするデータパケットの送信元IPは、ゲートウェイによって転送されるため、変更されないままになります。インターネット内のホストがこのような要求パケットを受信した場合、応答パケットが正しく返されないため、アクセスが失敗します。(プライベートネットワークアドレスは、インターネットでは正常にルーティングできません)
ルーティングと転送をオンにし、SNAT変換を設定します
。SNATポリシーがゲートウェイサーバーに正しく適用されている場合、データパケット転送の状況は異なります。
インターネットにアクセスするLANPCのデータパケットがゲートウェイサーバーに到着すると、ルーティングが最初に選択されます。データパケットを外部ネットワークインターフェイスeth1から転送する必要があることがわかった場合、送信元IPアドレス192.168.1.123は次のようになります。ゲートウェイの外部ネットワークインターフェイスアドレス192.1683.111に変更されてから、ターゲットホスト192.168.3.112に送信されます。
ゲートウェイサーバーのパブリックネットワークIPアドレスからデータアクセス要求を送信すると、ターゲットホストは応答データパケットを正しく返すことができるため、LANPCは同じパブリックネットワークIPアドレスを共有してインターネットにアクセスできます。
SNATによるアドレス変換の過程で、ゲートウェイサーバーは、以前に確立されたSNATマッピングに従って、応答データパケットをLAN内の送信元ホストに正しく返します。接続の最初のパケットがSNATによって処理される限り、データストリームに対応する接続およびその他のパケットはSNATによって自動的に処理されます。インターネット上のサーバーは、実際にはLAN内のPCのIPアドレスを認識しておらず、それらの間の変換は、イントラネット保護の役割を果たすことができるゲートウェイホストによって完全に完了します。
SNAT戦略アプリケーション
SNAT戦略アプリケーション:LAN共有インターネットアクセスのアクセス戦略を提供します。データパケット処理のカットイン時間はルーティング選択後です。送信されたデータパケットの送信元IPアドレスを変更します。ゲートウェイサーバーアドレスの外部ネットワークインターフェイスIPへのLAN。
SNAT戦略は、NATテーブルのルーティング後チェーンで使用されます。
SNATポリシーを作成するときは、iptablesコマンドを--to-source IP addressオプションと組み合わせて使用して、変更された送信元IPアドレスを指定する必要があります。
固定IPアドレスを共有してインターネットにアクセスします
。Linuxゲートウェイサーバーは、それぞれ2つのネットワークカードeth1とeth2を介してインターネットとLANに接続します。
すべてのLANPCのデフォルトゲートウェイ設定は192.168.1.7であり、DNSサーバーがセットアップされています。
192.168.3.0/24ネットワークセグメント上のPCは、共有を通じて通常どおりインターネットにアクセスできる必要があります。
ゲートウェイのルーティング転送をオンにする
IP転送は、/ procファイルシステムのip_forward設定に対応するルーティング機能を実現するための鍵です。
値が1の場合はオンを意味し、値が0の場合はオフを意味します。
Linuxホストをゲートウェイデバイスとして使用し、sysctl.conf構成ファイルを変更できます。また、ルーティングおよび転送機能を永続的に有効にする必要があります。
# vi /etc/sysctl.conf
7 net.ipv4.ip_forward = 1 # 将第 7 行的配置由原来的 0 改为 1
# sysctl -p # 读取修改后的配置
テスト中、ルーティングと転送を一時的にオンにすることができます。
# echo 1 > /proc/sys/net/ipv4/ip_forward
# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
SNAT戦略を正しく設定します。
インターネットにアクセスするLANPCのデータパケットにSNAT戦略を採用し、送信元アドレスをゲートウェイのパブリックIPアドレスに変更し、ファイアウォールルールを設定し、SNAT戦略を長期間有効に保ち、書き込みます。関連するコマンドをrc.local構成ファイルに追加します。起動後に自動的に設定できます。
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT--to-source 192.168.3.111
SNATポリシー共有アクセス結果をテストします。
ローカルエリアネットワークのPCを使用して、インターネット上のWebサイトに通常どおりアクセスします。
アクセスされたWebサイトサーバーは、ゲートウェイホスト192.168.3.111がWebログを取得するためにアクセスしていると見なし、アクセスしているのが実際の企業イントラネットのPCアドレス192.168.3.123であるかどうかはわかりません。
Windowsデバイスを起動し、実際の状況に応じてIPアドレスを構成し、接続をテストします。
WindowsオペレーティングシステムにIISサービスをインストールし、[インターネットインフォメーションサービス]オプションを選択します。
インストール後、ブラウザを開き、アクセスするマシンのIPアドレスを入力します。
動的IPアドレスを共有してインターネットをサーフィンする
iptablesは、マスカレードと呼ばれるデータパケット制御タイプを提供します。これは、データパケットの送信元IPアドレスを変更するために使用でき、-を使用せずに外部ネットワークインターフェイスのIPアドレスを自動的に取得できます。 to-sourceを使用して、固定IPアドレスを指定します。
MASQUERADEマスカレード戦略を使用するには、SNAT戦略で--to-source IPアドレスを削除してから、-jMASQUERADEを使用してパケット制御タイプを指定します。
ADSLブロードバンドリンク。通常、接続名はppp0、ppp1などです。
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
ゲートウェイが固定のパブリックIPアドレスを使用する場合は、マスカレード戦略ではなくSNAT戦略を選択して、不要なシステムオーバーヘッドを削減することをお勧めします。
DNAT戦略とアプリケーション
DNATのフルネーム:宛先ネットワークアドレス変換(宛先ネットワークアドレス変換)
DNATは、Linuxファイアウォールのもう1つのアドレス変換操作であり、iptablesコマンドのパケット制御の一種です。
機能:指定された条件に従って、データパケットの宛先IPアドレスと宛先ポートを変更します。
DNAT戦略の概要
DNAT:ターゲットIPアドレスとターゲットポートを変更するために使用され、NATテーブルのPREROUTINGチェーンとOUTPUTチェーンで使用されます。
SNATと同様に、SNATは送信元IPアドレスを変更するために使用され、NATテーブルのPOTROUTINGチェーンで使用されます。
インターネット環境では、登録されたWebサイトのドメイン名は正当なパブリックIPアドレスに対応している必要があり、ゲートウェイサーバーでDNATポリシーが正しく設定されていないと、インターネットPCは会社のイントラネットサーバーにアクセスできません。
インターネットPCによって送信されたHTTP要求が企業のゲートウェイサーバーに到達すると、ゲートウェイサーバーは最初にデータパケットの宛先アドレスと宛先ポートを判断し、データパケットがマシンのポート80にアクセスし、次に宛先IPにアクセスする必要があることを検出します。アドレスがイントラネット上のWebサイトに変更されます。サーバーのIPアドレスは、内部Webサーバーに送信されます。
ゲートウェイサーバーは、以前に確立されたDNATマッピングに従って、返されたHTTP応答パケットの送信元IPアドレスを変更し、それをインターネットPCに返します。
インターネットPCは、実際には企業のWebサイトサーバーのLANアドレスを認識していません。中間変換はゲートウェイホストによって行われます。設定されたDNAT戦略を通じて、企業の内部サーバーはインターネットにサービスを提供できます。
DNAT戦略アプリケーション
DNATアプリケーション:企業の内部サーバーをインターネット上に公開し、データパケットを処理するためのカットイン時間をルーティングの前に実行します。ゲートウェイの外部ネットワークインターフェイスのIPアドレスにアクセスするデータパケットの宛先アドレスを、実際にサービスを提供する内部サーバーのIPアドレスに変更します。
iptablesコマンドを使用してDNATポリシーを設定する場合は、-to-destination IPアドレスオプションを組み合わせて、内部サーバーのIPアドレスを指定する必要があります。
企業の内部Webサーバーを公開している会社
は、Webサイトのドメイン名を登録する必要があり、IPアドレスは192.168。です。
会社のウェブサーバーは、IPアドレスが192.168.3.112のローカルエリアネットワークにあります。
ウェブサイトのドメイン名にアクセスして、インターネットから会社のウェブサイトのコンテンツを表示できるようにする必要があります
オープンゲートウェイのルーティングと転送
# vi /etc/sysctl.conf
7 net.ipv4.ip_forward = 1 # 将第 7 行的配置由原来的 0 改为 1
# sysctl -p # 读取修改后的配置
インターネット内のすべてのホストがゲートウェイ80ポートのデータパケットにアクセスするようにDNAT戦略を正しく設定し、ターゲットアドレスをイントラネットにあるWebサイトサーバーのIPアドレスに変更します。
# iptables -t nat -A PREROUTING -i eth2 -d 192.168.1.7 -p tcp --dport 80 -j DNAT --to-destination 192.168.3.112
# iptables -t nat -L -n -v
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- eth2 * 0.0.0.0/0 192.168.1.7 tcp dpt:80 to:192.168.3.112
Chain POSTROUTING (policy ACCEPT 1 packets, 136 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 1 packets, 136 bytes)
pkts bytes target prot opt in out source destination
テストDNAT公開結果
がWebサイトサーバー192.168.3.112に正しく設定され、Webサービスを開始し、Webページをテストし、ホームページファイルをカスタマイズして、DNS解決なしでインターネットのクライアントを介してWebサイトにアクセスできます。直接アクセスすることもできます。
内部OpenSSHサーバー
DNAT戦略を公開します。データパケットの宛先IPアドレスを変更するために使用されますが、宛先ポート番号は必要に応じて変更することもできます。
ポート2345と22をそれぞれ使用して、ゲートウェイとWebサイトサーバーでOpenSSHサービスを有効にするようにOpenSSHサービスを構成します。
ゲートウェイのsshdサービスはインターネットに直接接続されているため、デフォルトのポートは使用されません。
オープンゲートウェイのルーティングと転送
# vi /etc/sysctl.conf
7 net.ipv4.ip_forward = 1 # 将第 7 行的配置由原来的 0 改为 1
# sysctl -p # 读取修改后的配置
DNAT戦略を正しく設定し
ます。ゲートウェイのsshdサービスは、アドレス変換なしでインターネットに直接接続されますが、Webサイトサーバーはイントラネットにあり、DNAT戦略を通じて公開する必要があります。
ゲートウェイはファイアウォールルールを設定し、外部ネットワークのIPアドレス2346ポートにアクセスするデータパケットを変更し、宛先アドレスとポートを変更してWebサーバーへの転送を容易にします。
# iptables -t nat -A PREROUTING -i eth2 -d 192.168.1.7 -p tcp --dport 2346 -j DNAT --to-destination 192.168.3.112:22
DNATリリースの結果をテストするには、
ssh -p 2345/2346 username @ eth2IPアドレスを使用してゲートウェイサーバーにログインします。