シェルスクリプトマガジン

第21回 サーバーを守る(ファイアウォール)

最初にすべてのアクセスを禁止するように、次のコマンドを実行します。

明示的に指定しない限り、ufwコマンドで施した設定はIPv4とIPv6のどちらにも適用されます。「default」は初期状態の設定、「deny」は禁止です。
ufwコマンドでは、「incoming」(入力)、「outgoing」(出力)、「routed」(ルーティング)という三つの位置に対して通信の許可や禁止などを設定できます。何も指定しなければ、「incoming」に対する設定になります。なお、まだファイアウォールを有効にしていないので、上のコマンドを実行しても設定は反映されません。
次にリモートアクセスを許可します。アクセスを許可や禁止にするには、利用しているポート番号またはサービス名が必要です。ここでのリモートアクセスには、暗号化通信の「SSH」(Secure Shell)を用いています。SSHが標準で利用するポート番号は、TCPポート「22」番になります。また、サービス名は小文字の「ssh」です。サービス名は「/etc/services」ファイルに書かれていますので、確認してみてください(図4)。

図4 /etc/servicesファイルの内容

リモートアクセスを許可するなら、許可の「allow」を指定し、

または、

を実行します。ここでは、TCP以外にUDPも有効にしていますが、ポート番号の後に「/tcp」や「/udp」を追加するとTCPやUDPの通信だけを許可にできます。