パケットフィルタの運用について

Access Control List(ACL)を作るときの注意点

TCP/IPのトランスポート層には,

  1. TCP (Transmission Control Protocol)
  2. UDP (User Datagram Protocol)

があり,ファイアウォールのポリシーを設計するには,どちらのプロトコルかと発信元ポート番号,宛先ポート番号が重要となります.

ここで,色々なプロトコルの通信を考えてみると,HTTPやSMTP, POP3などは一方向の通信のように考えたくなりますが,実際はこちらの端末のリクエストに対するサーバのレスポンスのように双方向の通信です. なので,一方的に遮断することはできません.

パケットフィルタによるファイアウォールを設計する際には,TCPでは通信を確立する前に行われる3ウェイハンドシェイクと呼ばれる手続きに着目して,TCPに対する制御を行う場合には,3ウェイハンドシェイクの接続要求パケットでフィルタを掛けます. しかし,UDPを使う通信では3ウェイハンドシェイクのような手続きは無く,例えば,UDP:53番ポートのホスト名とIPアドレスの参照(name-domain)の参照を行う際,自ホストのランダムに決定された番号のポートとDNSサーバの53番ポートの間で双方向の通信が行われますので,パケットフィルタではUDPのパケットの方向と発信元ポート,宛先ポートでフィルタを掛けるしかありません.

したがって,パケットフィルタによるファイアウォールは,TCPに関してはほぼ方針通りに働きますが,UDPに関してはWell-Knownポートを発信元ポートに用いた外部からアクセスを遮断できないので,不完全となってしまうことに注意しなければなりません.

このUDPに関して,完全にフィルタリングするためには,パケットの中身を解析するステートフル・インスペクションと呼ばれる機能が必要であり,狭義のファイアウォールはこのステートフル・インスペクションを持っているものを指すので,その場合パケットフィルタはファイアウォールにはあてはまりません. 一方,パケットフィルタではパケットの中身を解析する必要が無く,機械的に行えるため,処理が早いというメリットがあります.

パケットフィルタのACLの例をこちらに示します.

ファイアウォールへのtftpを用いたファイルの転送

ファイアウォールがftpクライアントを提供していることは少ないですが,tftpクライアントは大体サポートしています. そこで,PCがtftpサーバとなればファイルの転送が可能です.

以下ではPCがRedHat系のLinuxと想定します. まず,tftp-serverパッケージをインストールし,/etc/xinetd.d/tftpの"server_args"の行を以下と変更します.

      server_args = -c -s /var/tftp
    

そして,/var/tftpディレクトリを作成し,nobody:nododyにユーザ:グループを変更して,tftpサーバを有効にし,転送したいファイルをこのディレクトリに入れておきます. あとは,ファイアウォールのtftpを用いた転送コマンドでPCのIPアドレスとファイル名を指定すれば,転送できます.

シリアルポートを使ったファイアウォールへのログイン方法

普通ファイアウォールにはIPアドレスを割り当てて,そのIPアドレスを使ってtelnetあるいはSSHでログインしますが,最初の状態ではIPアドレスが割り当てられてなかったり,デフォルトのIPアドレスが使用中のものと異なったりするので,最初はシリアルポートからのログインが必要となります. Windowsならばteratermなどポピュラーなシリアル端末のクライアントがあります. 一方,Linuxで通常使われるシリアル端末のクライアントであるminicomはデフォルトではモデムに接続するように設定されています. そのため,/etc/minirc.df1として以下の内容のファイルを作成して,ヘイズATコマンドの出力を抑制する必要があります.

      pr port             /dev/ttyS0
      pu baudrate         9600
      pu bits             8
      pu parity           N
      pu stopbits         1
      pu minit
      pu mreset
      pu rtscts           No
    

あとは,シリアルケーブルをつないでminicomを立ち上げれば,ログインできます.

Last update: 2006.9.14

[機械力学研究室ホームページに戻る]   [田村のホームページに戻る]