コンテンツにスキップ

「Shorewall」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
en:Shorewallへの転送ページ
 
編集の要約なし
1行目: 1行目:
[[Category:ファイアウォール]]
#redirect[[en:Shorewall]]
[[en:Shorewall]]
[http://www.shorewall.net/ Shoreline Firewall] (通称 "Shorewall") は Netfilter を設定するための高準位ツールです。

一連の設定ファイルでエントリを使用してファイアウォールやゲートウェイの要件を定義すると、Shorewall は設定ファイルを読み込んで iptables のユーティリティを利用し、要件に沿うように Netfilter を設定します。

Shorewall は専用のファイアウォールシステム、複数の機能を併せ持ったゲートウェイ/ルーター/サーバー、あるいはスタンドアロンの GNU/Linux システムで使うことができます。Shorewall は Netfilter の ipchains 互換モードを使わないので、Netfilter の接続状態トラッキング機能を利用することが可能です。

== インストール ==
{{Pkg|shorewall}} パッケージを[[インストール]]してください。

== 設定 ==
以下の設定は Shorewall ウェブサイトの [http://www.shorewall.net/two-interface.htm two-interface ドキュメント] を元にしています。

shorewall パッケージに付属しているサンプル設定ファイルを利用します:

# cp /usr/share/doc/shorewall/Samples/one-interface/* /etc/shorewall/ # If you have a desktop-type system with a single network interface
# cp /usr/share/doc/shorewall6/Samples6/one-interface/* /etc/shorewall6/ # If you have a desktop-type system with a single network interface, pkg shorewall6
# cp /usr/share/doc/shorewall/Samples/two-interfaces/* /etc/shorewall/ # If you have a router with two network interfaces
# cp /usr/share/doc/shorewall/Samples/three-interfaces/* /etc/shorewall/ # If you have a router with three network interfaces

===/etc/shorewall/interfaces===

使用しているイーサネットデバイスの名前に合うようにインターフェイスの設定を変更して、ローカルネットワークで DHCP 通信を許可します。{{ic|/etc/shorewall/interfaces}} を編集:

ビフォー:
net eth0 dhcp,tcpflags,nosmurfs,routefilter,logmartians
loc eth1 tcpflags,nosmurfs,routefilter,logmartians

アフター:
net wan dhcp,tcpflags,nosmurfs,routefilter,logmartians
loc lan dhcp,tcpflags,nosmurfs,routefilter,logmartians

===/etc/shorewall/policy===

ポリシーファイルを編集してルーター (Shorewall を設定するマシン) からインターネットへのアクセスを許可します。{{ic|/etc/shorewall/policy}} を編集:

ビフォー:
{{bc|
###############################################################################
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST

loc net ACCEPT
net all DROP info
# THE FOLLOWING POLICY MUST BE LAST
all all REJECT info
}}

アフター:
{{bc|
###############################################################################
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
$FW net ACCEPT
loc net ACCEPT
net all DROP info
# THE FOLLOWING POLICY MUST BE LAST
all all REJECT info
}}

===/etc/shorewall/rules===

DNS ルックアップは dnsmasq で処理 (実際は転送) するので、Shorewall で通信を許可する必要があります。{{ic|/etc/shorewall/rules}} に以下の行を追加:

{{bc|
# Accept DNS connections from the local network to the firewall
#
DNS(ACCEPT) loc $FW
}}

===/etc/shorewall/masq===

ネットワークインターフェイスを外部 (WAN) ネットワークに接続しているインターフェイスに変更して、IP もローカルネットワークで使っている IP に変える:

eth0 192.168.1.0/24

==== SSH ====
任意: インターネット上のコンピュータから SSH でルーターに接続できるようにしたい場合、以下の行を追加:

{{bc|
# Accept SSH connections from the internet for administration
#
SSH(ACCEPT) net $FW TCP <SSH port used>
}}

====ポートフォワーディング (DNAT)====
* {{ic|/etc/shorewall/rules}}: LAN 上の IP 10.0.0.85 にウェブサーバーがある場合の例です。"外部" IP のポート 5000 からアクセスすることができます:
DNAT net loc:10.0.0.85:80 tcp 5000

===/etc/shorewall/shorewall.conf===

上記の変更を完了したら、設定ファイル {{ic|/etc/shorewall/shorewall.conf}} で以下を変更することで Shorewall を有効化:

ビフォー:
STARTUP_ENABLED=No

アフター:
STARTUP_ENABLED=Yes

詳しくは [http://shorewall.net/manpages/shorewall.conf.html man ページ] を参照。

== 起動 ==
{{ic|shorewall.service}} を[[起動]]・[[有効化]]してください。

2016年1月6日 (水) 02:40時点における版

Shoreline Firewall (通称 "Shorewall") は Netfilter を設定するための高準位ツールです。

一連の設定ファイルでエントリを使用してファイアウォールやゲートウェイの要件を定義すると、Shorewall は設定ファイルを読み込んで iptables のユーティリティを利用し、要件に沿うように Netfilter を設定します。

Shorewall は専用のファイアウォールシステム、複数の機能を併せ持ったゲートウェイ/ルーター/サーバー、あるいはスタンドアロンの GNU/Linux システムで使うことができます。Shorewall は Netfilter の ipchains 互換モードを使わないので、Netfilter の接続状態トラッキング機能を利用することが可能です。

インストール

shorewall パッケージをインストールしてください。

設定

以下の設定は Shorewall ウェブサイトの two-interface ドキュメント を元にしています。

shorewall パッケージに付属しているサンプル設定ファイルを利用します:

# cp /usr/share/doc/shorewall/Samples/one-interface/* /etc/shorewall/     # If you have a desktop-type system with a single network interface
# cp /usr/share/doc/shorewall6/Samples6/one-interface/* /etc/shorewall6/  # If you have a desktop-type system with a single network interface, pkg shorewall6
# cp /usr/share/doc/shorewall/Samples/two-interfaces/* /etc/shorewall/    # If you have a router with two network interfaces
# cp /usr/share/doc/shorewall/Samples/three-interfaces/* /etc/shorewall/  # If you have a router with three network interfaces

/etc/shorewall/interfaces

使用しているイーサネットデバイスの名前に合うようにインターフェイスの設定を変更して、ローカルネットワークで DHCP 通信を許可します。/etc/shorewall/interfaces を編集:

ビフォー:

net     eth0          dhcp,tcpflags,nosmurfs,routefilter,logmartians
loc     eth1          tcpflags,nosmurfs,routefilter,logmartians

アフター:

net     wan          dhcp,tcpflags,nosmurfs,routefilter,logmartians
loc     lan          dhcp,tcpflags,nosmurfs,routefilter,logmartians

/etc/shorewall/policy

ポリシーファイルを編集してルーター (Shorewall を設定するマシン) からインターネットへのアクセスを許可します。/etc/shorewall/policy を編集:

ビフォー:

###############################################################################
#SOURCE         DEST            POLICY          LOG LEVEL       LIMIT:BURST

loc             net             ACCEPT
net             all             DROP            info
# THE FOLLOWING POLICY MUST BE LAST
all             all             REJECT          info

アフター:

###############################################################################
#SOURCE         DEST            POLICY          LOG LEVEL       LIMIT:BURST
$FW             net             ACCEPT
loc             net             ACCEPT
net             all             DROP            info
# THE FOLLOWING POLICY MUST BE LAST
all             all             REJECT          info

/etc/shorewall/rules

DNS ルックアップは dnsmasq で処理 (実際は転送) するので、Shorewall で通信を許可する必要があります。/etc/shorewall/rules に以下の行を追加:

#       Accept DNS connections from the local network to the firewall
#
DNS(ACCEPT)     loc              $FW

/etc/shorewall/masq

ネットワークインターフェイスを外部 (WAN) ネットワークに接続しているインターフェイスに変更して、IP もローカルネットワークで使っている IP に変える:

eth0        192.168.1.0/24

SSH

任意: インターネット上のコンピュータから SSH でルーターに接続できるようにしたい場合、以下の行を追加:

#       Accept SSH connections from the internet for administration
#
SSH(ACCEPT)     net             $FW         TCP      <SSH port used>

ポートフォワーディング (DNAT)

  • /etc/shorewall/rules: LAN 上の IP 10.0.0.85 にウェブサーバーがある場合の例です。"外部" IP のポート 5000 からアクセスすることができます:
DNAT        net        loc:10.0.0.85:80        tcp        5000

/etc/shorewall/shorewall.conf

上記の変更を完了したら、設定ファイル /etc/shorewall/shorewall.conf で以下を変更することで Shorewall を有効化:

ビフォー:

STARTUP_ENABLED=No

アフター:

STARTUP_ENABLED=Yes

詳しくは man ページ を参照。

起動

shorewall.service起動有効化してください。