Rworks ホーム | お問い合わせ

Linux のファイアウォールの設定方法

Linux ホストではデフォルトでファイアウォールが有効になっています。 必要に応じて ASTEC-X を利用した接続で使用するポートの制限を変更してください。

GUI を利用した設定

Red Hat Linux 系 の場合

以下は、CentOS 6.2 の例です。

  1. GUI パネルを開きます

    メニューから "システム" → "管理" → "ファイヤーウォール" を選んで、"ファイアウォールの設定" のパネルを開きます。
    または、/usr/bin/system-config-firewall をコマンド実行します。

    左下のメッセージや、"有効" のボタンがグレイアウトしていて選択できないことから、 ファイアウォールが有効になっていることがわかります。

  2. もし、ファイアウォールを完全に解除する場合は、 パネルの中の "無効" のボタンを押したあと、"適用" のボタンを押してください。

    確認のダイアログが表示されますので、[はい] を選ぶと、 ファイアウォールの設定が解除されます。

    ファイアウォールを有効にしたまま必要なポートを空ける場合には "無効" のボタンを押さずに、さらに次のステップに進んでください。

  3. セキュアシェル(ssh) による通信を許可する場合は、 [信頼したサービス] のパネルで設定します。

    サービス名 "SSH" 、ポート/プロトコル "22/tcp" の行の冒頭のチェックボックスにチェックをして、"適用" を押してください。
    確認のダイアログが表示され、[はい] を選ぶと、セキュアシェル接続のためのポートが開きます。

  4. XDMCP での接続を許可する場合は、[その他のポート] のパネルで設定します。

    パネル左側に表示されている項目の "その他のポート" クリックし、 パネル右側の[追加(A)] ボタンを押してください。

    [ポートとプロトコル]というパネルが開きますので、 "ポート、プロトコル、サービス" が "177 udp xdmcp" となっている行を選択して、[OK] を押します。
    確認のダイアログが表示され、[はい] を選ぶと、XDMCP接続のためのポートが開きます。

SUSE Linux 系の場合 (YaST による設定)

以下は英語モードの画面です。日本語モードについては適宜読み替えてください。

  1. YaST を起動して、"Security and Users" の "Firewall" を選択します。
  2. 開いたパネルの左側に表示されているツリーの "Allowed Services" を選び、 "Service to Allow" のプルダウンメニューから "xdmcp" を選びます。
  3. [Add] ボタンを押すと Allowed Service に xdmcp が追加されます。
  4. [Next] ボタンを押すと、ファイアウォールの設定内容について表示されます。

    下の例では、xdmcp のためのポートがあいていることがわかります。
    問題がなければ [Finish] を押して設定を終了します。

コマンド実行による設定

ファイアウォールの設定を確認する

/sbin/iptables に -L オプションをつけて実行すると、現時点で iptables に適用されているパケットフィルタリングのルールが一覧表示されます。

# /sbin/iptables -L
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 による通信を許可する場合

#/sbin/iptables -I INPUT -p tcp -m tcp --dport 512 --syn -j ACCEPT

XDMCP 接続のために、 Xディスプレイマネージャが待ち受ける 177番ポートに対して udp による通信を許可する場合

#/sbin/iptables -I INPUT -p udp -m udp --dport 177 -j ACCEPT

セキュアシェル接続のために、 セキュアシェルサーバデーモンが待ち受ける 22番ポートに対して tcp による通信を許可する場合

# /sbin/iptables -I INPUT -p tcp -m tcp --dport 22 --syn -j ACCEPT
【先頭に戻る】

フィルタリングのルールを保存する

iptables-save コマンドの出力結果をそのまま保存したものを iptables の設定ファイルとして利用することができます。
上記のコマンドによる指定を保存する場合には、 例えば下記のようにして、 iptables-save コマンドの出力をファイルにリダイレクトして保存してください。

# /sbin/iptables-save > iptables.astecx

iptables が起動時に読み込む設定は、 初期設定では /etc/sysconfig/iptables に置かれることになっていますので、保存した iptables.astecx を /etc/sysconfig/iptables にコピーすれば、 起動する時点で修正した設定が有効になります。
このとき、念のため元の /etc/sysconfig/iptables ファイルのバックアップを取っておくことをお勧めします。

【先頭に戻る】
Copyright © 2000-2022 Rworks, Inc. All rights reserved. / 個人情報保護方針 / 著作権・リンクについて