本記事では自宅サーバーをルーター化する方法をご紹介致します。
本記事の読者層は以下の方を想定しています。
- ノートパソコンなどの小型パソコンをルーター化したい方
ルーターとは?
ルーターとは、ネットワーク内の複数台のパソコンをインターネットに接続することができる機械です。ネットワークの信号を分岐したりする「ハブ」とは違い、WAN側(インターネット側)のポートからLAN側(イントラネット側)ポートへの情報とその逆の信号を交通整理する機械です。このため、2つのポート、すなわち、LANポートとWANポートが必要です。
LAN側には、プライベートIPアドレスを割り振るためのDHCPサーバーの機能があり、WAN側にはプロバイダーと契約しているPPoE方式やIPoE方式などのデータ通信ができるようになっています。
次の章ではこのあたりを少し丁寧に紹介します。
WANとLANの違い
LANとはローカルエリアネットワークのことです。一方、WANとは遠く離れた場所と繋ぐネットワークのことです。WAN側の情報をルーターを通してLAN側へ送り、LAN側の情報をルーターの外へ送る際に、このLANとWANの違いと特徴をしって置かなくてはいけません。これらの特徴を以下にまとめます。
- 局所的ネットワーク
- 多数のコンピューターやネットワークに接続
- ツリー型トポロジーもしくはメッシュ型トポロジー
- 低速での通信
- セキュリティーが低い
- 広域ネットワーク
- 物理的に同じ場所にあるコンピューターやネットワークに接続
- バス型トポロジーもしくはスター型トポロジー
- 高速通信
- セキュリティーが高い
グローバルIPアドレスとプライベートIPアドレス
WAN内で割り振られるIPアドレスはグローバルIPアドレスと呼んでいます。一方、LAN内で割り振られるIPアドレスはプライベートIPアドレスです。グローバルIPアドレスは、インタネット上で一意である必要があるのに対して、プライベートIPアドレスはローカルネットワーク内のデバイスに割り荒れ照れており、インタネット上で一意である必要がありません。このため、プライベートIPアドレスをインタネット上で利用するためには、ネットワークアドレス変換(NAT)が必要となります。
サーバーをルーター化するための方法?
市販で購入できる小型ルーター機には、様々な機能が備わっています。
例えば、一般的なルーターの機能一覧として下記のようなものがあります。
- 無線機能
- フィルタリング機能
- ルーティング機能
- モデム機能
- IPマスカレード機能
- ポートマッピング機能
- DHCPサーバー機能
- アクセスログ機能
- VPN機能
サーバー機を無料でルーター化するフリーソフト
- pfSense:オープンソースのファイアウォールおよびルータープラットフォームで、高度な機能やセキュリティ機能を提供します。
- OPNsense:pfSenseから派生したオープンソースのファイアウォールおよびルータープラットフォームで、高度な機能やセキュリティ機能を提供します。
- RouterOS:MikroTikによって開発された、高度なルーティング機能とセキュリティ機能を備えたルーターOSです。
- DD-WRT:多くのルーターモデルで使用できる、オープンソースのルーターOSで、高度な機能を提供します。
Linux Ubuntuをルーター化するためのオープンソフト
これらの機能を一通り使えるようにしてくれるオープンソースソフトがあります。
- 1. iptables:パケットフィルタリング型のファイアウォール機能
- 2. dnsmasq:小規模な内部ネットワーク向けのDNSキャッシュサーバとDHCPサーバを兼ねたソフトウェア。
- 3. hostapd:特定のネットワークインターフェイスをアクセスポイント&認証サーバーにする。
- 4. ppp:電話回線を通して、インターネット接続をできるようにするサーバ
- 5.isc-dhcp-server:DHCPサーバーのインストール
Ubuntuでインストールする場合は以下のコマンドでそれぞれソフトウェアをインストールします。
sudo apt-get install dnsmasq
sudo apt-get install iptables
sudo apt-get install hostapd
sudo apt-get install ppp
sudo apt install isc-dhcp-server
ハード側の設定
1.NICを二枚用意する
サーバーに2つのネットワークインターフェースを追加します。このために、Linuxマシンを用意し、二枚のNICを指します。片方は、WAN(ワイドエリアネットワーク)側で、もう片方のNICはLAN(ローカルエリアネットワーク)側となるようにインターフェイスを分けます。
WAN側の設定
LAN側の設定
サーバー上のLAN側には、ルーティングソフウェアをインストールします。ルーティングテーブルとIPマスカレードの設定を行います。この設定で、WANインターフェースとLANインターフェイスを接続して、サーバーがルーターとして機能するように設定します。
IPマスカレードの設定
グローバルIPアドレス1つで、イントラネット内の複数マシンが同時にインターネットを利用できるようになります。これよりIPアドレス資源を有効に使用できます。
iptablesコマンドを利用
iptablesとは、ポリシー チェーンを使用してWANとLANのトラフィックを許可またはブロックするファイアウォール ユーティリティです。Linuxカーネルに組み込まれているファイアウォールで、ルーティングやNAT機能をサポートしています。コマンドラインベースのため高度な設定が可能です。
インストールは以下の手順でできます。
sudo apt-get install iptables
iptablesでは、サーバーへ接続される通信ルールを設定できます。ローカルネットワークからは、インターネットに接続することができない場合、ローカルネットワークから、WAN側にでられるように許可するためiptablesを構成します。またIPのフィルタリングを掛けたいといったことができるようになります。
SSHでリモート接続している場合は注意
外部からサーバーへSSHでリモート接続している場合にはコマンドを間違えると、サーバー機に直にタイプするまで、外部からアクセスできなくなる恐れがあります。
DNSサーバーの構築
dnsmasqコマンドを利用
dnsmasqは、軽量で高速なDNS(Domain Name System)とDHCP(Dynamic Host Configuration Protocol)サービスを提供できるようになります。LinuxやUNIX系オペレーティングシステムに広く利用されています。
dnsmasqは、標準のLinuxディストリビューションであるUbuntuやDebianなどの多くのLinuxディストリビューションに含まれており、簡単にインストールすることができます。
インストールは以下の手順でできます。
sudo apt-get install dnsmasq
dnsmasqは、小規模なネットワークに最適であり、特に自宅やオフィス内のネットワークに適しています。dnsmasqは、ローカルホスト上の設定ファイルから、クエリに対する応答、DHCPアドレス割り当て、DHCPオプションの配布など、さまざまな機能を提供します。
電話通信PPP
PPP は、電話回線、モデム、さらにはイーサネット接続などのシリアル インターフェイスを介したネットワークデータの送信を可能にする標準プロトコルです。サーバー上のWAN側に、以下の手順でpppをインストールします。
sudo apt-get install ppp
近年では電話通信が少なくなりましたが、ダイヤルアップ接続に利用できます。
DHCPサーバーの構築
isc-dhcp-serverコマンドを利用
isc-dhcp-serverとは、Internet Systems Consortiumが開発したLinuxやUNIX系オペレーティングシステム用DHCP(Dynamic Host Configuration Protocol)サーバアプリです。isc-dhcp-serverは、DHCPサーバーの役割を担い、クライアントがネットワークに接続されたときに必要なIPアドレスやその他のネットワーク情報を割り当てることができます。
インストールは以下の手順でできます。
sudo apt install isc-dhcp-server
DHCPサーバーの構築では、LAN側のPCに自動的にプライベートIPアドレスが割り振られるようにします。ローカルPCの名前解決は行わなくてもよいでしょう。
最後に、サーバーのLANインターフェースには、ローカルネットワークで利用するIPアドレスを設定します。IPアドレスにはプライベートIPアドレスを利用します。
hostapdを使ったWiFiアクセスポイントの設定
必要に応じて、ポートフォーワードやNATの設定を行い外部から内部へアクセスできるように対応します。hostapdを使ったWiFiアクセスポイントの設定ができます。
インストールは以下の手順でできます。
sudo apt install isc-dhcp-server
まとめ
本記事では、サーバーをルーター化する方法を紹介しました。
- DHCPサーバーの立ち上げ
- DNSサーバーの立ち上げ
- ファイヤーウォールサーバーの立ち上げ
- ダイヤルアップ接続の確立
- WiFiのアクセスポイントの設定
が必要です。
次回の記事をご期待下さい。どうぞよろしくお願いいたします。
コメント