「ルーター」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
28行目: 28行目:
 
===IP の設定===
 
===IP の設定===
 
ネットワークインターフェイスを設定する必要があります。一番良い設定方法は [[netctl]] プロファイルを使うことです。2つプロファイルを作成してください。
 
ネットワークインターフェイスを設定する必要があります。一番良い設定方法は [[netctl]] プロファイルを使うことです。2つプロファイルを作成してください。
  +
{{Note|PPPoE だけを使ってインターネットに接続する場合は、extern0-profile を設定・有効化する必要はありません。PPPoE の設定は下を見てください。}}
{{Note|If you will be connecting to the Internet only via PPPoE (you have one WAN port) you '''do not need''' to setup or enable the extern0-profile. See below for more information on configuring PPPoE.}}
 
 
* {{ic|/etc/netctl/extern0-profile}}
 
* {{ic|/etc/netctl/extern0-profile}}
 
Description='Public Interface.'
 
Description='Public Interface.'
51行目: 51行目:
 
rp-pppoe を使って、ファイアウォールの {{ic|extern0}} インターフェイスに ADSL モデムを接続して Arch で接続を管理することができます。モデムは''ブリッジ''モードに設定してください (ハーフブリッジまたは RFC1483)、そうしないとモデムもルーターとして機能してしまいます。{{pkg|rp-pppoe}} パッケージを[[インストール]]してください。
 
rp-pppoe を使って、ファイアウォールの {{ic|extern0}} インターフェイスに ADSL モデムを接続して Arch で接続を管理することができます。モデムは''ブリッジ''モードに設定してください (ハーフブリッジまたは RFC1483)、そうしないとモデムもルーターとして機能してしまいます。{{pkg|rp-pppoe}} パッケージを[[インストール]]してください。
   
  +
PPPoE だけを使ってインターネットに接続する場合 (モデムに接続するポート以外に WAN ポートが存在しない場合)、外部の擬似インターフェイスが ppp0 になるので {{ic|extern0-profile}} をセットアップする必要はありません。
It should be noted that if you use only PPPoE to connect to the internet (ie. you do not have other WAN port, except for the one that connects to your modem) you do not need to set up the {{ic|extern0-profile}} as the external pseudo-interface will be ppp0.
 
   
 
===PPPoE の設定===
 
===PPPoE の設定===
 
netctl を使って pppoe 接続のセットアップができます。コピーして編集してください:
 
netctl を使って pppoe 接続のセットアップができます。コピーして編集してください:
 
# cp /etc/netctl/examples/pppoe /etc/netctl/
 
# cp /etc/netctl/examples/pppoe /etc/netctl/
  +
モデムに接続するインターフェイスを選択してください。PPPoE でインターネットに接続するだけなら {{ic|extern0}} になります。後のフィールドは ISP の情報で埋めてください。フィールドの詳細は netctl.profile の man ページの pppoe セクションを参照。
For the interface configuration choose the interface that connects to the modem. If you only connect to the internet through PPPoE this will probably be {{ic|extern0}}. Fill in the rest of the fields with your ISP information. See the pppoe section in netctl.profile man page for more information on the fields.
 
   
 
==DNS と DHCP==
 
==DNS と DHCP==
75行目: 75行目:
 
Somewhere below, you will notice you can also add "static" DHCP leases, i.e. assign an IP-address to the MAC-address of a computer on the LAN. This way, whenever the computer requests a new lease, it will get the same IP. That is very useful for network servers with a DNS record. You can also deny certain MAC's from obtaining an IP.
 
Somewhere below, you will notice you can also add "static" DHCP leases, i.e. assign an IP-address to the MAC-address of a computer on the LAN. This way, whenever the computer requests a new lease, it will get the same IP. That is very useful for network servers with a DNS record. You can also deny certain MAC's from obtaining an IP.
   
  +
dnsmasq を起動:
Now start dnsmasq:
 
 
# systemctl start dnsmasq.service
 
# systemctl start dnsmasq.service
   
84行目: 84行目:
 
[[シンプルなステートフルファイアウォール]]に [[iptables]] ファイアウォールと NAT の設定方法がまとまっています。
 
[[シンプルなステートフルファイアウォール]]に [[iptables]] ファイアウォールと NAT の設定方法がまとまっています。
   
  +
Dnsmasq を使用する場合、DHCP と Domain の例外をファイアウォールに追加してください:
Make sure you added the firewall exceptions for DHCP and Domain, if you want to use Dnsmasq:
 
   
 
* ルールの追加:
 
* ルールの追加:
93行目: 93行目:
   
 
===Shorewall===
 
===Shorewall===
  +
iptables フロントエンドの Shorewall を使うことで簡単に設定できます。詳しくは [[Shorewall]] を見てください。
Shorewall, an iptables frontend, can be used as an easier alternative. See [[Shorewall]] for detailed configuration.
 
   
 
==その他の設定==
 
==その他の設定==
154行目: 154行目:
 
===snort による侵入検知===
 
===snort による侵入検知===
   
[[Snort]] を見て下さい。
+
[[en2:Snort|Snort]] を見て下さい。

2016年1月18日 (月) 15:58時点における版

関連記事

この記事ではコンピュータをインターネットゲートウェイ/ルーターに仕立てる方法を解説しています。ゲートウェイはインターネットに直接接続されるため、セキュリティが重要です。外部からアクセスできるサービスを実行するのは好ましくありません。ゲートウェイとして機能するためのサービスだけを実行し、セキュリティ上の穴を作ってしまうおそれがある httpd, ftpd, samba, nfsd などは動かさないようにします。

クロスオーバーケーブルによる PC 間の接続の共有方法については扱っていません。インターネット共有をする方法は、インターネット共有を見て下さい。

ハードウェアの要件

  • 最低でも 1GB のディスク容量が必要です。ベースインストールは大体 500MB くらいですが、ウェブキャッシュプロキシなどを使うことを考えて、キャッシュ用に容量を確保しておく方が良いでしょう。
  • 最低でも2つの物理的なネットワークインターフェイスが必要です: ゲートウェイは2つのネットワークを相互に接続します。ネットワークは物理的に同一のコンピュータに接続する必要があります。インターフェイスの片方は外部のネットワークに接続し、もう片方は内部のネットワークに接続します。
  • ハブやスイッチ、UTP ケーブルが必要です: 他のコンピュータをゲートウェイに接続するための機器が必要です。

ネットワークインターフェイスの名称

このガイドでは、混乱を避けるために、わかりやすいインターフェイス名を使用します。

  • intern0: LAN に接続されたネットワークカード。実際のコンピュータ上では enp2s0, enp1s1 といった名前が付けられます。
  • extern0: 外部ネットワーク (もしくは WAN) に接続されたネットワークカード。enp2s0, enp1s1 といった名前になります。

ネットワークインターフェイスの設定

永続的な命名とインターフェイス名の変更

Systemd は自動的にそれぞれのインターフェイスに一意なインターフェイス名を決めます。決められた名前は永続的で、再起動しても変わることはありません。インターフェイスの名前をユーザーフレンドリーな名前に変更したい場合は、ネットワーク設定#デバイス名を読んで下さい。

IP の設定

ネットワークインターフェイスを設定する必要があります。一番良い設定方法は netctl プロファイルを使うことです。2つプロファイルを作成してください。

ノート: PPPoE だけを使ってインターネットに接続する場合は、extern0-profile を設定・有効化する必要はありません。PPPoE の設定は下を見てください。
  • /etc/netctl/extern0-profile
Description='Public Interface.'
Interface=extern0
Connection=ethernet
IP='dhcp'
  • /etc/netctl/intern0-profile
Description='Private Interface'
Interface=intern0
Connection=ethernet
IP='static'
Address=('10.0.0.1/24')
ノート: The example configuration above assumes a full subnet. If you are building the gateway for a small amount of people, you will want to change the CIDR suffix to accommodate a smaller range. For example /27 will give you 10.0.0.1 to 10.0.0.30. You can find many CIDR calculators online.

次に netctl でインターフェイスをセットアップします:

# netctl enable extern0-profile
# netctl enable intern0-profile

ADSL 接続/PPPoE

rp-pppoe を使って、ファイアウォールの extern0 インターフェイスに ADSL モデムを接続して Arch で接続を管理することができます。モデムはブリッジモードに設定してください (ハーフブリッジまたは RFC1483)、そうしないとモデムもルーターとして機能してしまいます。rp-pppoe パッケージをインストールしてください。

PPPoE だけを使ってインターネットに接続する場合 (モデムに接続するポート以外に WAN ポートが存在しない場合)、外部の擬似インターフェイスが ppp0 になるので extern0-profile をセットアップする必要はありません。

PPPoE の設定

netctl を使って pppoe 接続のセットアップができます。コピーして編集してください:

# cp /etc/netctl/examples/pppoe /etc/netctl/

モデムに接続するインターフェイスを選択してください。PPPoE でインターネットに接続するだけなら extern0 になります。後のフィールドは ISP の情報で埋めてください。フィールドの詳細は netctl.profile の man ページの pppoe セクションを参照。

DNS と DHCP

LAN のための DNS と DHCP デーモンとして dnsmasq を使います。dnsmasq は小規模なネットワーク用に設計されています。公式リポジトリから dnsmasqインストールしてください。

DHCP サーバーとするには Dnsmasq の設定が必要です:

/etc/dnsmasq.conf を編集:

interface=intern0 # make dnsmasq listen for requests only on intern0 (our LAN)
expand-hosts      # add a domain to simple hostnames in /etc/hosts
domain=foo.bar    # allow fully qualified domain names for DHCP hosts (needed when
                  # "expand-hosts" is used)
dhcp-range=10.0.0.2,10.0.0.255,255.255.255.0,1h # defines a DHCP-range for the LAN: 
                  # from 10.0.0.2 to .255 with a subnet mask of 255.255.255.0 and a
                  # DHCP lease of 1 hour (change to your own preferences)

Somewhere below, you will notice you can also add "static" DHCP leases, i.e. assign an IP-address to the MAC-address of a computer on the LAN. This way, whenever the computer requests a new lease, it will get the same IP. That is very useful for network servers with a DNS record. You can also deny certain MAC's from obtaining an IP.

dnsmasq を起動:

# systemctl start dnsmasq.service

接続の共有

Time to tie the two network interfaces to each other.

iptables

シンプルなステートフルファイアウォールiptables ファイアウォールと NAT の設定方法がまとまっています。

Dnsmasq を使用する場合、DHCP と Domain の例外をファイアウォールに追加してください:

  • ルールの追加:
# iptables -t filter -I INPUT -i intern0 -p udp -m udp --dport 67 -j ACCEPT
# iptables -t filter -I INPUT -i intern0 -p tcp -m tcp --dport 67 -j ACCEPT
# iptables -t filter -I INPUT -i intern0 -p udp -m udp --dport 53 -j ACCEPT
# iptables -t filter -I INPUT -i intern0 -p tcp -m tcp --dport 53 -j ACCEPT

Shorewall

iptables フロントエンドの Shorewall を使うことで簡単に設定できます。詳しくは Shorewall を見てください。

その他の設定

UPnP

The above configuration of shorewall does not include UPnP support. Use of UPnP is discouraged as it may make the gateway vulnerable to attacks from within the LAN. However, some applications require this to function correctly.

ルーターで UPnP を有効にするには、UPnP インターネットゲートウェイデーモン (IGD) をインストールする必要があります。公式リポジトリから miniupnpd をインストールしてください。

詳細は Shorewall guide on UPnP を読んで下さい。

リモート管理

OpenSSH を使うことでルーターをリモートで管理することができます。"ヘッドレス" (モニタや入力デバイスを接続しない) に動かしたいときに有用です。

ウェブキャッシュプロキシ

ブラウジングを高速化したりセキュリティを高めるためにウェブプロキシを設定する方法は SquidPolipo を見て下さい。

時刻サーバー

ルーターを時刻サーバーとして使いたい場合、Network Time Protocol daemon を見て下さい。

Then, configure shorewall or iptables to allow NTP traffic in and out.

コンテンツフィルタリング

コンテンツフィルタリングが必要なときは DansGuardianPrivoxy をインストール・設定してください。

トラフィックシェーピング

トラフィックシェーピングは LAN 上に複数のマシンがある場合にとても便利です。トラフィックのタイプにあわせて優先度を割り当てます。インタラクティブなトラフィック (ssh やオンラインゲーム) は高い優先度を必要としますが、P2P のトラフィックは一番優先度が低くても問題ありません。

shorewall によるトラフィックシェーピング

Shorewall's Traffic Shaping/Control ガイドを読んで下さい。

設定例:

  • /etc/shorewall/tcdevices : here is where you define the interface you want to have shaped and its rates. I have got a ADSL connection with a 4MBit down/256KBit up profile.
ppp0        4mbit        256kbit 
  • /etc/shorewall/tcclasses : here you define the minimum (rate) and maximum (ceil) throughput per class. You will assign each one to a type of traffic to shape.
# interactive traffic (ssh)
ppp0            1       full    full    0
# online gaming
ppp0            2       full/2  full    5
# http
ppp0            3       full/4  full    10
# rest
ppp0            4       full/6  full    15              default
  • /etc/shorewall/tcrules : this file contains the types of traffic and the class it belongs to.
1       0.0.0.0/0       0.0.0.0/0       tcp     ssh
2       0.0.0.0/0       0.0.0.0/0       udp     27000:28000
3       0.0.0.0/0       0.0.0.0/0       tcp     http
3       0.0.0.0/0       0.0.0.0/0       tcp     https

I have split it up my traffic in 4 groups:

  1. interactive traffic or ssh: although it takes up almost no bandwidth, it is very annoying if it lags due to leechers on the LAN. This get the highest priority.
  2. online gaming: needless to say you ca not play when your ping sucks. ;)
  3. webtraffic: can be a bit slower
  4. everything else: every sort of download, they are the cause of the lag anyway.

snort による侵入検知

Snort を見て下さい。