検索
ubuntu logo
記事の項目

最近の投稿

ufw(Uncomplicated FireWall)

セキュリティー向上に必要な不要な通信をフィルタリンングするファイアウォールツール ufw の設定方法

この記事の項目

ファイアウォール

Ubuntu標準のファイアウォールであるUFWを設定するとともに、基本的な使い方を説明します。

基本的な考え方として「必要最小限のサービスを必要最小限のホストに開放する」ということを心がけましょう。絶対とは言えませんが、ある程度はセキュアに保つことができると思います。

参考サイト : https://ubuntu.com/server/docs/security-firewall

UFW

Ubuntu 22.04 Serverの標準的なインストールを実施したのであれば、UFWはインストール済みのはずです。

有効化

UFWを有効化するには次のコマンドを実行します。

				
					$ sudo ufw enable
				
			

ポートの開放

UFWを有効化すると、サーバーへの全ての通信が遮断されるので注意が必要です。
特に、SSHで遠隔操作している時は、次回からの接続ができなくなります。もしも、SSH接続ができなくなったら、サーバー本体のターミナルからポートの解放をしましょう。

SSHでUFWを有効にする場合は、最初にポートは22 を解放しましょう。

				
					$ sudo ufw allow 22

Rule added
Rule added (v6)
				
			

UFWのポート 22 が有効化されているか確認してみましょう。

				
					$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22                         ALLOW IN    Anywhere                  
[ 2] 22 (v6)                    ALLOW IN    Anywhere (v6)   
				
			

この場合、IPv4アドレスに加えIPv6アドレスのポートも解放されました。

ポートの開放設定の削除

IPv4のポートのみ解放したい場合は、IPv6の22番ポートの設定を削除します。

UFWの設定を番号を指定して削除します。

この場合、番号2のポート22 IPv6 ポート22 ([ 2] 22 (v6) ALLOW IN Anywhere (v6) )を削除してみる。

				
					$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22                         ALLOW IN    Anywhere                  
[ 2] 22 (v6)                    ALLOW IN    Anywhere (v6)   <---削除したい
				
			
				
					$ sudo ufw delete 2

Deleting:
 allow 22
Proceed with operation (y|n)? y
Rule deleted (v6)

$ sudo ufw status numbered

Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22                         ALLOW IN    Anywhere      
				
			

[ 1] 22 ALLOW IN Anywhere だけになり、ポート22 IPv6 からアクセスはできなくなりました。

ポートとTCPの開放

通信には TCP と UDP があり、TCP の Port 22 のみを解放するには、

				
					$ sudo ufw allow proto tcp to 0.0.0.0/0 port 22

$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere         
				
			

ポートの閉鎖

UFWのデフォルトでは、すべてのポートは閉鎖されていますが、あえてポートを閉鎖するには、deny を使用します。

				
					$ sudo ufw deny ポート番号
				
			

特定のIPアドレスに対するポートの開放

実際には特定のIPアドレスに対してSSHのポートを開放したい場合が多いでしょう。

その時は次のように実行します。

				
					$ sudo ufw allow proto tcp from 192.168.0.2 to any port 22
				
			

特定のサブネットに対してSSHのポートを開放したい場合は、

				
					$ sudo ufw allow proto tcp from 192.168.0.0/24 to any port 22
				
			

特定のサブネット IP/24 ならば、192.168.0.0 – 192.168.0.255  のアドレス以外からの通信は遮断されます。

操作コマンド
ufwの状態確認$ sudo ufw status verbose
ufwの停止$ sudo systemctl stop ufw
ufwの起動$ sudo systemctl start ufw
ufwの再起動$ sudo systemctl restart ufw
設定のリロード$ sudo systemctl reload ufw
自動起動の有効化$ sudo systemctl enable ufw
自動起動の無効化$ sudo systemctl disable ufw
ufwの状態確認(デーモン)$ sudo systemctl status ufw
ufwの状態確認(設定)$ sudo ufw status verbose
ufwの設定の有効化$ sudo ufw enable
ufwの設定の無効化$ sudo ufw disable

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Redis

$ sudo apt update $ sudo