Linux の ufw ファイアウォールの紹介

Linux の ufw ファイアウォールの紹介

Linux のufw (Uncomplicated Firewall) を見て、ファイアウォールに変更を加えるための洞察とコマンドをいくつか紹介します。

ufw (Uncomplicated FireWall) は iptables を非常に簡素化します。登場以来、ここ数年で Ubuntu や Debian などのシステムのデフォルトのファイアウォールになりました。また、 ufwは驚くほどシンプルなので、ファイアウォール管理の学習に多くの時間を費やす必要のある新しい管理者にとって大きなメリットとなります。

ufwには GUI クライアント (gufw など) もありますが、 ufwコマンドは通常、コマンド ラインで実行されます。この記事では、 ufwを使用するためのいくつかのコマンドを紹介し、その動作について説明します。

まず、 ufwの設定を確認する簡単な方法は、設定ファイル/etc/default/ufwを確認することです。次のコマンドを使用して、設定を表示します。Grep は、空白行とコメント (# で始まる行) の表示を抑制するために使用されます。

$ grep -v '^#\|^$' /etc/default/ufw
IPV6=はい
DEFAULT_INPUT_POLICY="ドロップ"
DEFAULT_OUTPUT_POLICY="受け入れる"
DEFAULT_FORWARD_POLICY="DROP"
DEFAULT_APPLICATION_POLICY="スキップ"
MANAGE_BUILTINS=いいえ
IPT_SYSCTL=/etc/ufw/sysctl.conf
IPT_MODULES="nf_conntrack_ftp nf_nat_ftp nf_conntrack_netbios_ns"

ご覧のとおり、デフォルトのポリシーでは入力はドロップされますが、出力は許可されます。特定の接続を受け入れることを許可するその他のルールは、個別に構成する必要があります。

ufwコマンドの基本的な構文を以下に示しますが、この概要はufwと入力するだけでよいことを意味するものではなく、必要なパラメータを示す簡単なリマインダーです。

ufw [--dry-run] [オプション] [ルール構文]

--dry-run オプションは、 ufw指定したコマンドを実行せず、実行された場合の結果を表示することを意味します。ただし、変更された場合はルールセット全体が表示されるため、出力行が多数になることに備えてください。

ufwのステータスを確認するには、次のコマンドを実行します。このコマンドでもsudoまたはrootアカウントの使用が必要であることに注意してください。

$ sudo ufwステータス
ステータス: アクティブ
アクションへ
-- ------ ----
22 192.168.0.0/24 を許可
9090 どこでも許可
9090 (v6) どこでも許可 (v6)

それ以外の場合は、次のようになります。

$ ufwステータス

エラー: このスクリプトを実行するには、root である必要があります
詳細オプションを追加すると、いくつかの追加の詳細が提供されます。

$ sudo ufw ステータス詳細
ステータス: アクティブ
ログ記録: オン (低)
デフォルト: 拒否 (受信)、許可 (送信)、無効 (ルーティング)
新しいプロフィール: スキップ
アクションへ
-- ------ ----
22 192.168.0.0/24 で許可
9090 どこでも許可
9090 (v6) どこでも許可 (v6)

次のコマンドを使用すると、ポート番号による接続の許可と拒否を簡単に行うことができます。

$ sudo ufw allow 80 <== http アクセスを許可 $ sudo ufw deny 25 <== smtp アクセスを拒否

/etc/servicesファイルを調べると、ポート番号とサービス名の関連を見つけることができます。

$ grep 80/ /etc/services
http 80/tcp www # ワールドワイドウェブ HTTP
socks 1080/tcp # socks プロキシサーバー
ソックス 1080/udp
http-alt 8080/tcp webcache # WWW キャッシュ サービス
http-alt 8080/udp
amanda 10080/tcp # amanda バックアップ サービス
アマンダ 10080/udp
カンナ 5680/tcp # カンナサーバー

あるいは、コマンドでサービス名を直接使用することもできます。

$ sudo ufw 許可 http
ルールが追加されました
ルール追加 (v6)
$ sudo ufw 許可 https
ルールが追加されました
ルール追加 (v6)

変更を加えた後、変更が有効になっているかどうかを確認するために、ステータスを再度確認する必要があります。

$ sudo ufwステータス
ステータス: アクティブ
アクションへ
-- ------ ----
22 192.168.0.0/24 を許可
9090 どこでも許可
80/tcp どこでも許可 <==
443/tcp どこでも許可 <==
9090 (v6) どこでも許可 (v6)
80/tcp (v6) どこでも許可 (v6) <==
443/tcp (v6) どこでも許可 (v6) <==

ufw が従うルールは/etc/ufwディレクトリに保存されます。これらのファイルを表示するには、それぞれに多数のルールが含まれているため、ルート アクセスが必要であることに注意してください。

$ ls -ltr /etc/ufw
合計 48
-rw-r--r-- 1 ルート ルート 1391 2017年8月15日 sysctl.conf
-rw-r----- 1 ルート ルート 1004 2017年8月17日 after.rules
-rw-r----- 1 ルート ルート 915 2017年8月17日 after6.rules
-rw-r----- 1 ルート ルート 1130 2018年1月5日 before.init
-rw-r----- 1 ルート ルート 1126 2018年1月5日 after.init
-rw-r----- 1 ルート ルート 2537 2019年3月25日 before.rules
-rw-r----- 1 ルート ルート 6700 2019年3月25日 before6.rules
drwxr-xr-x 3 ルート ルート 4096 11月12日 08:21 applications.d
-rw-r--r-- 1 ルート ルート 313 3月18日 17:30 ufw.conf
-rw-r----- 1 ルート ルート 1711 3月19日 10:42 user.rules
-rw-r----- 1 ルート ルート 1530 3月19日 10:42 user6.rules

この記事の前半で行った変更 (http アクセス用にポート 80 を追加、https アクセス用にポート 443 を追加) は、 user.rulesファイルとuser6.rulesファイルでは次のようになります。

# grep " 80 " ユーザー*.rules
user6.rules:### タプル ### tcp 80 ::/0 any ::/0 を許可
user6.rules: -A ufw6-user-input -p tcp --dport 80 -j ACCEPT
user.rules:### タプル ### tcp 80 0.0.0.0/0 any 0.0.0.0/0 を許可
ユーザールール: -A ufw-user-input -p tcp --dport 80 -j ACCEPT
/var/mail/rootに新しいメールがあります
# grep 443 ユーザー*.rules
user6.rules:### タプル ### tcp 443 ::/0 any ::/0 を許可
user6.rules: -A ufw6-user-input -p tcp --dport 443 -j ACCEPT
user.rules:### タプル ### tcp 443 0.0.0.0/0 any 0.0.0.0/0 を許可
ユーザールール: -A ufw-user-input -p tcp --dport 443 -j ACCEPT

ufwを使用すると、次のコマンドを使用して IP アドレスからの接続を簡単にブロックすることもできます。

$ sudo ufw 208.176.0.50 から拒否

ルールが追加されました

ステータス コマンドを実行すると変更内容が表示されます。

$ sudo ufw ステータス詳細
ステータス: アクティブ
ログ記録: オン (低)
デフォルト: 拒否 (受信)、許可 (送信)、無効 (ルーティング)
新しいプロフィール: スキップ
アクションへ
-- ------ ----
22 192.168.0.0/24 で許可
9090 どこでも許可
80/tcp どこでも許可
443/tcp どこでも許可
どこでも DENY IN 208.176.0.50 <== 新規
9090 (v6) どこでも許可 (v6)
80/tcp (v6) どこでも許可 (v6)
443/tcp (v6) どこでも許可 (v6)

全体として、ufw は設定が簡単なだけでなく、理解しやすいです。

要約する

Linux ファイアウォール ufw の紹介に関するこの記事はこれで終わりです。Linux ファイアウォール ufw に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linux ファイアウォールの iptables ルールを表示、追加、削除、変更する方法の概要
  • Linux ファイアウォールの状態と開閉コマンドの詳細な説明
  • Linux ファイアウォール iptables で IP を禁止およびブロック解除するための一般的なコマンドの詳細な説明
  • LinuxでMySQLのリモートアクセス権を有効にし、ファイアウォールでポート3306を開きます。
  • Linux のファイアウォールによってブロックされた MySQL 接続の解決策
  • selinux(ファイアウォール)を無効にする方法
  • Linux で iptables ファイアウォール ルールを追加する例

<<:  MySQL の計画タスクとイベント スケジュール例の分析

>>:  画像を読み込むための JavaScript キャンバス

推薦する

Ubuntu 18.04 向け VMware Tools のインストールと構成のチュートリアル

この記事では、Ubuntu 18.04でのVMware Toolsのインストールと設定について記録し...

Linuxパフォーマンス監視コマンドの簡単な紹介

システムでさまざまな IO ボトルネック、メモリ使用量の増加、CPU 使用率の増加などの問題が発生し...

SpringBoot プロジェクトの Docker 環境を実行するときに発生する無限再起動問題の詳細な説明

もしかしたら私の考え方が間違っていたのかもしれないし、問題の説明が少し乱雑だったのかもしれないが、こ...

Vue2.x の応答性の簡単な説明と例

1. Vue レスポンシブの使用法を確認する​ Vue の応答性は、私たち全員がよく知っています。 ...

Reactのコンポーネント共同利用実装

目次ネスティング親子コンポーネント通信ブラザーコンポーネント通信撤回するReact の Linked...

MySQL 分離レベル操作プロセスの詳細説明 (cmd)

コミットされていない読み取りの例の操作プロセス - コミットされていない読み取り1. 2 つの My...

Deepin Linuxでカーネルを手動でアップグレードする方法

deepinとUbuntuどちらもdebianをベースにしたディストリビューションであり、ここではU...

Linuxの一般ユーザー向けスケジュールタスクの詳細な説明

序文通常のユーザーはcrontabスケジュールタスクを定義します。たとえば、Oracleユーザーはス...

IE6 フォントを定義できません: 13px サイズは無効です。IE6 は自動的に大きいフォント ソリューションを表示します。

数日前、Web ページのモジュールを調整していたとき、ページのフォント サイズを 13px に設定し...

MySql8.0 のトランザクション分離レベルエラーの問題を解決する

目次MySql8.0 トランザクション分離レベルエラーの表示質問コマンドは次のように変更されますMy...

MySQL 5.7.13 のインストールと設定方法のグラフィック チュートリアル (win10 64 ビット)

この記事では、参考までにMySQL 5.7.13 winx64のインストールと設定方法のグラフィック...

MySQLのロック機構の詳細な説明

序文データの一貫性と整合性を確保するために、あらゆるデータベースにはロック メカニズムが備わっていま...

MYSQL 演算子の概要

目次1. 算術演算子2. 比較演算子3. 論理演算子4. ビット演算子5. 演算子の優先順位1. 算...

Web 上の要素を非表示にする方法とその利点と欠点

ソースコードの例: https://codepen.io/shadeed/pen/03caf6b36...

IDEA で mysql8.0.3 と mybatis-generator を使用する際に発生するバグ

1. プラグインを追加し、pomファイルの下に次の設定を追加します。 <!-- mybatis...