ufwの使い方 入門編
ufwの使い方の入門編です。
ufwはファイアウォール(iptables)の設定を簡単に行うためのコマンドで、サーバを運用していくためには良くお世話になります。
今回は入門編ということなので、とりあえず普段良く使いそうな下記の操作方法を簡単に説明していきます。
- ファイアウールが起動しているかどうかの確認 ufw status
- ファイアウォールを起動(有効化)させる ufw enable
- ファイアウォールを停止(無効化)させる ufw disable
- 登録されているルールの確認 ufw status
- 通信を許可するルールの登録 ufw allow
- 通信を遮断するルールの登録 ufw deny
- 登録されているルールの削除 ufw delete
ファイアウォールが起動しているかどうかの確認
ufw statusコマンドを実行することで、ファイアウォールが現在動作して「いる」「いない」かを確認することが出来ます。
動作している場合
動作している場合は「Status: active」と表示されます。
$ sudo ufw status Status: active
動作していない場合
動作していない場合は「Status: inactive」と表示されます。
$ sudo ufw status Status: inactive
ファイアウォールを起動(有効化)させる ufw enable
起動(有効化)させる場合はufw enableコマンドを実行します。
$ sudo ufw enable Firewall is active and enabled on system startup
ファイアウォールが起動し、サーバ起動時にも自動的に起動する設定もされます。
ファイアウォールを停止(無効化)させる ufw disable
停止(無効化)させる場合はufw disableコマンドを実行します。
$ sudo ufw disable Firewall stopped and disabled on system startup
ファイアウォールが停止し、サーバ起動時の自動起動設定も無効化されます。
登録されているルールの確認
下記のコマンドでファイアウォールに登録されているルールを確認することが出来ます。
- ufw status
- 登録されているルールを表示します。
- ufw status verbose
- ログの採取状態や、デフォルトのルール等の情報も合わせて表示します。
- ufw status numbered
- 登録されているルールを番号付きで表示します。
ufw status
ufw statusを実行することで、ファイアウォールの動作状態と登録されているルールが表示されます。
$ sudo ufw status Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)
ufw status verbose
ufw status verboseを実行することで、Loggingの項目でログの収集状態と、Defaultの項目でデフォルトの通信ルールもあわせて表示されるようになります。
$ sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22/tcp ALLOW IN Anywhere 22/tcp (v6) ALLOW IN Anywhere (v6)
ログの収集状態
ログの収集が「on」か「off」なのかが表示され、「on」の場合は収集される情報のレベルも「low」「medium」「high」「full」で表示されます。
収集されたログは「/var/log/ufw.log」に記録されます。
デフォルトの通信ルール
デフォルトの通信ルールはサーバへの入力、サーバからの出力、サーバを介しての転送についてルールが表示されています。
- incoming 自分のサーバへの通信(入力)
- outgoing 自分のサーバから他のサーバへの通信(出力)
- routed 自分のサーバを介して他のサーバへ転送(転送)
初期状態ではサーバへの入力(incoming)はdeny(遮断)に設定されているはずなので、必要なポート番号の通信を許可するルールを追加して行くという流れになっていきます。
サーバからの出力(outgoing)はallow(許可)に設定されているので、特に理由がない限りはそのままで良いでしょう。
サーバを介しての転送(routed)は、サーバをルータとして動作させている場合に使用するので、ルータとして動作させる設定を行っていない場合はdisable(無効化)されています。
ufw status numbered
ufw status numberedを実行することで、登録されているルールに番号が表示されます。
$ sudo ufw status numbered Status: active To Action From -- ------ ---- [ 1] 22/tcp ALLOW IN Anywhere [ 2] 22/tcp (v6) ALLOW IN Anywhere (v6)
表示された番号を指定してルールを削除したり、特定の場所にルールを挿入したい場合に使用できます。
通信を許可するルールの登録 ufw allow
通信を許可したい場合は下記のように、通信を許可(allow)したいポート番号とTCPかUDPのプロトコルを指定します。
ufw allow ポート番号/プロトコル(tpc|udp)
実際にSSH接続用のポート22番を許可してみます。
$ sudo ufw allow 22/tcp Rule added Rule added (v6)
これで、Rule addedと表示されているように22番ポートの通信を許可するルールが追加されました。
$ sudo ufw status Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)
通信を遮断するルールの登録 ufw deny
通信を遮断したい場合は下記のように、通信を遮断(deny)したいポート番号とTCPかUDPのプロトコルを指定します。
ufw deny ポート番号/プロトコル(tpc|udp)
実際に80番ポートの通信を遮断するルールを追加してみます。
$ sudo ufw deny 80/tcp Rule added Rule added (v6)
Rule addedと表示されルールが登録されました。
ufw statusで登録されているルールを表示させると、80番ポートの通信を遮断するルールが追加されていることが確認できます。
$ sudo ufw status Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 80/tcp DENY Anywhere 22/tcp (v6) ALLOW Anywhere (v6) 80/tcp (v6) DENY Anywhere (v6)
登録されているルールの削除 ufw delete
登録されているルールを削除する場合、ルールを直接指定して削除する方法と、ufw status numberedで表示されたルール番号を指定して削除する方法があります。
ufw delete 削除するルール ufw delete 削除するルール番号
ルールを指定して削除
現状登録されているルールから、80番ポートを遮断しているルールを指定して削除していきます。
$ sudo ufw status Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 80/tcp DENY Anywhere 22/tcp (v6) ALLOW Anywhere (v6) 80/tcp (v6) DENY Anywhere (v6)
80番ポートを遮断しているルール「deny 80/tcp」を指定して削除します。
$ sudo ufw delete deny 80/tcp Rule deleted Rule deleted (v6)
ufw statusで確認すると、「deny 80/tcp」のルールが削除されていることが確認できます。
$ sudo ufw status Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)
ルール番号を指定して削除
ufw status numberedでルールに番号を付けて表示させ、削除したいルールの番号を指定して削除を行います。
$ sudo ufw status numbered Status: active To Action From -- ------ ---- [ 1] 22/tcp ALLOW IN Anywhere [ 2] 80/tcp DENY IN Anywhere [ 3] 22/tcp (v6) ALLOW IN Anywhere (v6) [ 4] 80/tcp (v6) DENY IN Anywhere (v6)
実際に4番目のルールを削除してみます。
削除対象のルールが表示されて、削除処理を続けても良いかの確認メッセージが表示されるので、削除するルールに間違いが無ければ「y」を入力してください。
$ sudo ufw delete 4 Deleting: deny 80/tcp Proceed with operation (y|n)? y Rule deleted (v6)
ufw statusでルールの一覧を表示させると、指定した4番目のルールが削除されていることが確認できます。
$ sudo ufw status numbered Status: active To Action From -- ------ ---- [ 1] 22/tcp ALLOW IN Anywhere [ 2] 80/tcp DENY IN Anywhere [ 3] 22/tcp (v6) ALLOW IN Anywhere (v6)
コメント