ネットワーク設定 · 2 min read · Oct 28, 2025

NATゲートウェイ、Iptables、ポートフォワーディング、DNSおよびDHCP設定 - Ubuntu 8.10サーバー

NATゲートウェイ、Iptables、ポートフォワーディング、DNSおよびDHCP設定 - Ubuntu 8.10サーバー

あなたはもう一つの高価なルーターを購入する余裕がなく、自分でやりたいと思っています。あなたは正しいチュートリアルを見つけました!このチュートリアルでは、NAT、ポートフォワーディング、DNSサーバー、DHCPサーバーを備えたUbuntu 8.10ルーターの設定方法を示します。

なぜUbuntuなのか?

Ubuntuは素晴らしいオペレーティングシステムであるだけでなく、非常に柔軟で強力であり、すぐに立ち上げることができます!注意:各ステップの後にコンピュータを再起動してください。これにより、すべてが正しく動作していることが確認できます。

必要な基本的なものは以下の通りです…

DHCP – dhcp3-server
DNS – bind9
iptables – ubuntuに含まれています

まず最初に

2つのネットワークカードが必要です。最初のネットワークカードを取り、WAN接続をそこに接続します。このネットワークカードが何であるか(eth0、eth1など)を知っているはずです。わからない場合は、試行錯誤してください。

WANカードがeth0であると仮定しましょう(もしeth1の場合は、すべて同じように行い、設定を調整してください)。ファイル/etc/network/interfacesを見つけます。次のようにVIでファイルを開きます。

sudo vi /etc/network/interfaces

ファイルには(まだ何も設定していない場合)次のように表示されます:

# このファイルは、システム上で利用可能なネットワークインターフェースとそれをアクティブにする方法を説明しています。
# 詳細については、interfaces(5)を参照してください。
# ループバックネットワークインターフェース
auto lo
iface lo inet loopback

これをファイルに追加します。ちなみに、VIの使い方がわからない場合は、nanoを使用するか、VIを学んでください。

auto eth0
iface eth0 inet dhcp

auto eth0コードは、eth0がブート時に開始することを指示します。これは、次のように実行するのと似ています。

sudo ifconfig eth0 up

コードiface eth0 inet dhcpは、eth0インターフェースがDHCPサーバーを探し、そこから情報を取得することを指示します。これは、ケーブルモデムに接続している場合に重要です。ISPからパブリックIPを取得する必要があります。

次のステップは、ネットワークカードeth1を設定することです。これが「LAN」カードになります。

覚えているかもしれませんが、/etc/network/interfacesの設定は次のようになっていました。

# このファイルは、システム上で利用可能なネットワークインターフェースとそれをアクティブにする方法を説明しています。
# 詳細については、interfaces(5)を参照してください。
# ループバックネットワークインターフェース
auto lo
iface lo inet loopback
# プライマリネットワークインターフェース
auto eth0
iface eth0 inet dhcp

再度、interfacesファイルをVIで開き、いくつかの行を追加します。

sudo vi /etc/network/interfaces

ファイルの下部にこれらの行を追加します。

auto eth1
iface eth1 inet static
        address         172.17.207.121
        netmask         255.255.255.0
        broadcast       172.17.207.255
        network         172.17.207.0

これにより、LANカードのサーバーに静的IPアドレスが割り当てられます。

ファイルは次のようになります。

# このファイルは、システム上で利用可能なネットワークインターフェースとそれをアクティブにする方法を説明しています。
# 詳細については、interfaces(5)を参照してください。
# ループバックネットワークインターフェース
auto lo
iface lo inet loopback
# プライマリネットワークインターフェース
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
        address         172.17.207.121
        netmask         255.255.255.0
        broadcast       172.17.207.255
        network         172.17.207.0

さて、忘れないうちに、/etc/hostsファイルを編集しましょう。

sudo vi /etc/hosts

ファイルを私のように見せてください。ただし、サーバーをuserveまたはmyserverと呼ぶ場合は変更できます。

また、asus.localというドメイン名に注意してください。自分のmydomain.localのようなものを使用するのが良いアイデアですが、学習目的で私のものを使用しても構いません。

.localを使用するのは覚えやすく、公開されていないため、何かに干渉することはありません。

127.0.0.1       localhost server.localhost
172.17.207.121  server.asus.local server asus.local

インターフェースの設定が完了したので、DHCPサーバーをインストールして設定します。DHCPサーバーをインストールするには、次のコマンドを実行します。

sudo apt-get install dhcp3-server

次に、dhcpd.confファイルを編集します。次のコマンドを実行して開始します。

sudo vi /etc/dhcp3/dhcpd.conf

そのファイルに何かがある場合は、削除してください

これをファイルにコピーして貼り付け、書き込みと終了を行います。

ddns-update-style none;
option domain-name "whatever.local"; //これをmydomain.localのような自分の好きなものに変更してください
option domain-name-servers 172.17.207.121, 24.92.226.41; //2つ目のDNSサーバーをISPのローカルDNSサーバーに変更することをお勧めします
option routers 172.17.207.121;
default-lease-time 42300;
max-lease-time 84600;
authoritative;
log-facility local7;
subnet 172.17.0.0 netmask 255.255.255.0 {
        range 172.17.207.1 172.17.207.100; //範囲を.100から.254などに変更することで拡張できます
}

次のコマンドを実行します。

sudo /etc/init.d/dhcp3-server start

これにより、DHCPサーバーが起動し、この部分は完了とラベル付けできます。

次は… DNS

Bindは私たちが使用するDNSパッケージです。これをインストールするには、次のように実行します。

sudo apt-get install bind9

これにより、bindサーバーがダウンロードされ、インストールされます。

次のコマンドを実行して開始します。

vi /etc/bind/named.conf

次に、ファイル内のすべてを削除し、私のコメントを探します。通常、//で示されます。

// これはBIND DNSサーバーnamedの主要な設定ファイルです。 // この設定ファイルをカスタマイズする前に、/usr/share/doc/bind9/README.Debian.gzを読んでください。 // ゾーンを追加するだけの場合は、/etc/bind/named.conf.localでそれを行ってください。 include "/etc/bind/named.conf.options"; // ルートサーバーの知識でサーバーをプライムします zone "." { type hint; file "/etc/bind/db.root"; }; // localhostのフォワードおよびリバースゾーン、およびRFC 1912に従ったブロードキャストゾーンに対して権威を持ちます zone "asus.local" { //asus.localをmydomain.localのように変更してください type master; file "/etc/bind/zones/asus.local.db"; //このファイルまたはフォルダーは存在しないので、作成する必要があります }; zone "207.17.172.in-addr.arpa" { type master; file "/etc/bind/zones/rev.207.17.172.in-addr.arpa";//このファイルは存在しないので、作成する必要があります }; zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; }; include "/etc/bind/named.conf.local";

asus.local.dbとrev.207.17.172.in-addr.arpaの2つのファイルを作成する前に、別のファイルを編集する必要があります。次に、

sudo vi /etc/bind/named.conf.options

ファイル内のすべてを削除し、次のようにします。

options {
        directory "/var/cache/bind";
        // 名前サーバーとの間にファイアウォールがある場合は、
        // 複数のポートが通信できるようにファイアウォールを修正する必要があります。  
        // ISPが安定した名前サーバー用に1つ以上のIPアドレスを提供した場合、
        // それらをフォワーダーとして使用することをお勧めします。
        // 次のブロックのコメントを解除し、
        // すべての0のプレースホルダーを置き換えるアドレスを挿入します。
         forwarders {
          24.92.226.41; //非常に重要、これをローカルISPのDNSサーバーに変更してください
      24.92.224.40;
         };
        auth-nxdomain no;    # RFC1035に準拠
        listen-on-v6 { any; };
};

コメントに注意してください。これにより、ローカルISPのDNSにフォワーダーアドレスを変更するように指示しています。

次に、bindディレクトリに移動します:

cd /etc/bind/
sudo mkdir zones
cd zones
sudo vi asus.local.db

(または、mydomain.local.dbなど、ドメイン名を使用します。)

asus.local.dbファイルまたはmydomain.local.dbファイル(呼び名に応じて)に入ったら、これをコピーして貼り付け、ドメイン名に適切な変更を加えます。

$ORIGIN .
$TTL 4000 ;
asus.local.     IN SOA  server.asus.local. admin.asus.local. (
2007031001      ; シリアル
28800           ; リフレッシュ
3600            ; 再試行
604800          ; 有効期限
38400           ; 最小
)
                NS      server.asus.local.
$ORIGIN asus.local.
                IN      A       172.17.207.121
www             IN      A       172.17.207.121 //例
server          IN      A       172.17.207.121 //例
macpro          IN      A       172.17.207.4   //例

macproのnslookupを実行すると、172.17.207.4が返されるので、ドメイン名とIPを設定に応じて変更してください。

次に、まだ存在しないrev.207.17.172.in-addr.arpaファイルをviで開きます。しかし、保存すると作成されます。したがって、まだzonesフォルダーにいると仮定します。

vi rev.207.17.172.in-addr.arpa

ここにある内容をコピーして貼り付け、適切な変更を加えます。

$ORIGIN .
$TTL 28800      ; 8時間
207.17.172.IN-ADDR.ARPA IN SOA server.asus.local. admin.asus.local. (
                                2008110601 ; シリアル
                                28800      ; リフレッシュ (8時間)
                                7200       ; 再試行 (2時間)
                                604800     ; 有効期限 (1週間)
                                86400      ; 最小 (1日)
                                )
                        NS      server.asus.local.
$ORIGIN 207.17.172.IN-ADDR.ARPA.
4                     PTR    macpro.asus.local.

これで、172.17.207.4の逆引きを実行すると、macpro.asus.localが得られます。

次のコマンドを実行してnamedを起動します。

sudo /etc/init.d/named start

起動しない場合は、/var/logsのログを確認してください。

最後に、IPTABLES

まず最初に、/etc/のフォルダー内のsysctl.confを編集する必要があります。次のようにします。

sudo vi /etc/sysctl.conf

28行目のコメントを解除します。つまり、その前の#を削除します。行はnet.ipv4.ip_forward=1である必要があります。

次に、rc.localに移動します。

sudo vi /etc/rc.local

ファイルの下部に次の2行を追加します。

/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE

これにより、iptablesを使用してゲートウェイが設定されます。この基本的な設定よりも安全にするためにiptablesを使用できます。

ポートを転送するには、rc.localファイルの最後に次のようなものを追加できます。

/sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 -d jgibbs.dyndns.org --dport 3389 -j DNAT --to 172.17.207.4:3389

上記の長い行は、ポート3389のすべての受信トラフィックをIP 172.17.207.4に転送するため、ネットワーク外からWindowsボックスにリモートデスクトップ接続できます。

これは、任意のポートに対して行うことができます。

再起動!

また、問題があれば報告してください。このチュートリアルを更新して修正します。ありがとう、Jeremy user gibbsj。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。