【Ubuntu】ufwの使い方ー入門編ー

Ubuntu

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)           

コメント

タイトルとURLをコピーしました