Linux のファイアウォールの設定方法
Linux ホストではデフォルトでファイアウォールが有効になっています。 必要に応じて ASTEC-X を利用した接続で使用するポートの制限を変更してください。
GUI を利用した設定
Red Hat Linux 系 の場合
以下は、CentOS 6.2 の例です。
- GUI パネルを開きます
メニューから "システム" → "管理" → "ファイヤーウォール" を選んで、"ファイアウォールの設定" のパネルを開きます。
または、/usr/bin/system-config-firewall をコマンド実行します。左下のメッセージや、"有効" のボタンがグレイアウトしていて選択できないことから、 ファイアウォールが有効になっていることがわかります。
- もし、ファイアウォールを完全に解除する場合は、
パネルの中の "無効" のボタンを押したあと、"適用" のボタンを押してください。
確認のダイアログが表示されますので、[はい] を選ぶと、 ファイアウォールの設定が解除されます。
ファイアウォールを有効にしたまま必要なポートを空ける場合には "無効" のボタンを押さずに、さらに次のステップに進んでください。
- セキュアシェル(ssh) による通信を許可する場合は、
[信頼したサービス] のパネルで設定します。
サービス名 "SSH" 、ポート/プロトコル "22/tcp" の行の冒頭のチェックボックスにチェックをして、"適用" を押してください。
確認のダイアログが表示され、[はい] を選ぶと、セキュアシェル接続のためのポートが開きます。 - XDMCP での接続を許可する場合は、[その他のポート] のパネルで設定します。
パネル左側に表示されている項目の "その他のポート" クリックし、 パネル右側の[追加(A)] ボタンを押してください。
[ポートとプロトコル]というパネルが開きますので、 "ポート、プロトコル、サービス" が "177 udp xdmcp" となっている行を選択して、[OK] を押します。
確認のダイアログが表示され、[はい] を選ぶと、XDMCP接続のためのポートが開きます。
SUSE Linux 系の場合 (YaST による設定)
以下は英語モードの画面です。日本語モードについては適宜読み替えてください。
- YaST を起動して、"Security and Users" の "Firewall" を選択します。
- 開いたパネルの左側に表示されているツリーの "Allowed Services" を選び、
"Service to Allow" のプルダウンメニューから "xdmcp" を選びます。
- [Add] ボタンを押すと Allowed Service に xdmcp が追加されます。
- [Next] ボタンを押すと、ファイアウォールの設定内容について表示されます。
下の例では、xdmcp のためのポートがあいていることがわかります。
問題がなければ [Finish] を押して設定を終了します。
コマンド実行による設定
ファイアウォールの設定を確認する
/sbin/iptables に -L オプションをつけて実行すると、現時点で iptables に適用されているパケットフィルタリングのルールが一覧表示されます。
Chain INPUT (policy ACCEPT)
target prot opt source destination
RH-Lokkit-0-50-INPUT all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain RH-Lokkit-0-50-INPUT (1 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT udp -- dns.astec-x.com anywhere udp spt:domain
REJECT tcp -- anywhere anywhere tcp flags:SYN,RST,ACK/SYN reject-with icmp-port-unreachable
REJECT udp -- anywhere anywhere udp reject-with icmp-port-unreachable
iptables では、チェインという単位でルールを細かく設定できるようになっています。
上記の結果を見ると、明示的に許可されていないアクセスは、最後の 2行ですべて REJECT されるようになっています。ASTEC-X との接続を行うためには XDMCP で利用する 177 番のポートや、rexec 接続で利用する 512 番のポート、セキュアシェル 接続で利用する 22番のポートへのアクセスを必要に応じて許可しなければいけません。
フィルタリングのルールを編集する
コマンドラインから下記のコマンドを実行すると、
一時的に iptables のルールを変更し、
外部からの接続要求を受け入れるようになります。
ここでは、INPUT というチェインに対して設定を行っていますが、
別にチェインを作成して細かく制御を行っている場合には、
実際の環境に合わせて変更してください。
rexec 接続のために、 rexec デーモンが待ち受ける 512番ポートに対して tcp による通信を許可する場合
XDMCP 接続のために、 Xディスプレイマネージャが待ち受ける 177番ポートに対して udp による通信を許可する場合
セキュアシェル接続のために、 セキュアシェルサーバデーモンが待ち受ける 22番ポートに対して tcp による通信を許可する場合
フィルタリングのルールを保存する
iptables-save
コマンドの出力結果をそのまま保存したものを
iptables の設定ファイルとして利用することができます。
上記のコマンドによる指定を保存する場合には、
例えば下記のようにして、
iptables-save コマンドの出力をファイルにリダイレクトして保存してください。
iptables が起動時に読み込む設定は、
初期設定では /etc/sysconfig/iptables
に置かれることになっていますので、保存した iptables.astecx を
/etc/sysconfig/iptables にコピーすれば、
起動する時点で修正した設定が有効になります。
このとき、念のため元の /etc/sysconfig/iptables
ファイルのバックアップを取っておくことをお勧めします。