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 キャンバス

推薦する

なぜCSSをヘッドタグに配置する必要があるのか

考えてみてください。なぜcss 、 javascriptのようにbodyタグの末尾ではなく、 hea...

Vueはパーセンテージバー効果を実現します

この記事では、パーセンテージバーを実現するためのVueの具体的なコードを参考までに共有します。具体的...

MySQL 8.0.12 のインストールと設定のチュートリアル

この記事はMySQL 8.0.12のインストールと設定に関する詳細なチュートリアルを記録しています。...

xshellを使用してLinuxサーバーに接続する

xshellを使用してLinuxに接続する利点Windows環境でLinuxを直接操作できるインター...

MySQL でテーブルデータをクリアする 2 つの方法とその違い

MySQL でデータを削除するには 2 つの方法があります。切り詰めは大まかな伐採の一種である削除は...

IE8 ベータ 1 には注意が必要な 2 つの領域があります

<br />関連記事: Web スキル: 複数の IE バージョンを共存させるソリューシ...

HTML ページはダーク モードの実装をサポートします

2019年から、AndroidとiOSの両方のプラットフォームでダークモードが使用され始めました。も...

Adobe Brackets の簡単な使い方のグラフィックチュートリアル

Adobe Brackets は、HTML、CSS、JavaScript 用のオープンソースでシンプ...

WeChat アプレット計算機の例

この記事では、参考までに、計算機を実装するためのWeChatアプレットの具体的なコードを紹介します。...

数千万件のレコードをMySQLに素早く挿入する方法に関する実践的なチュートリアル

1. データベースを作成する 2. テーブルを作成する1. deptテーブルを作成する テーブル「d...

WIN10 での JDK インストールと環境変数の設定手順 (詳細版)

目次1. JDKをダウンロードする(例としてjdk1.8.0を使用する) 2. JDK をインストー...

Velocity.js はページスクロール切り替え効果を実装します

今日は、複数ページのスクロール切り替え効果を備えた Web サイトを簡単かつ効率的に開発できる、小さ...

Vueはシンプルなデータ双方向バインディングを実装します

この記事では、Vueの具体的なコード例を参考までに紹介します。具体的な内容は以下のとおりです。初心者...

TypeScript を使用して Vue3 で axios をカプセル化する詳細な例

この axios パッケージは、vue3 デモで使用されます。便宜上、element-plus は ...

jQuery は拡張アニメーションによるナビゲーション バー効果を実装します

展開アニメーション効果のあるナビゲーションバーを設計してカスタマイズし、デモを作成してみました。設計...