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

推薦する

Docker Hubの動作原理と実装プロセスの分析

GitHub が提供するコード ホスティング サービスと同様に、Docker Hub はイメージ ホ...

マウス追従ゲームを実現するjs

この記事では、マウス追従ゲームを実装するためのjsの具体的なコードを参考までに共有します。具体的な内...

JS正規RegExpオブジェクトについての簡単な説明

目次1. RegExpオブジェクト2. 文法2.1 定義2.2 修飾子2.3 角括弧2.4 メタ文字...

この構成ファイルの排他ロックに失敗したという VMware 仮想マシンのプロンプトの解決方法

VMware が異常シャットダウンした後、再起動すると「この構成ファイルを排他的にロックできませんで...

VMware 仮想マシンでの CentOS7 ネットワーク構成 (ホストのワイヤレス インターネット アクセス)

CentOS7 システムを使用するのは今回が初めてで、ネットワーク構成を行う際に多くの問題が発生し...

node-media-serverを使用してシンプルなストリーミングメディアサーバーを構築する

node-media-server を使用するプロセスの一部を記録します。この記事の環境はWindo...

MySQLストアドプロシージャの原理と使用法の詳細な説明

この記事では、例を使用して、MySQL ストアド プロシージャの原理と使用方法を説明します。ご参考ま...

JavaScript における Promise の詳細な説明

目次Promise の基本的な使用法: 1. Promiseオブジェクトを作成する2. プロミス方式...

Vue3はフロントエンドのログを出力するためにaxiosインターセプターを使用する

目次1. はじめに2. axiosインターセプターを使用してフロントエンドログを出力する1. はじめ...

Springboot アプリケーションを迅速にデプロイするために Docker とアイデアを統合する詳細なプロセス

目次1. はじめに2. 環境とツール3. Dockerをインストールし、リモート接続を構成する4. ...

ZooKeeper をベースにした Hadoop 高可用性クラスタの構築のチュートリアル図

目次1. 高可用性の概要1.1 可用性の高い全体アーキテクチャ1.2 QJMに基づく共有ストレージシ...

Linux で MySQL スケジュール タスク バックアップ データを実装する方法

序文バックアップは災害復旧の基礎であり、システム操作エラーやシステム障害によるデータ損失を防ぐために...

JavaScript 円グラフの例

描画効果実装コードJavaScript var キャンバス = document.getElemen...

DELL R730 サーバーの構成 RAID とインストール サーバー システムとドメイン制御の詳細なグラフィック チュートリアル

最近、会社で DELL R730 サーバーを購入したのですが、偶然次のチュートリアルを見つけたので、...

Vueは動的コンポーネントを使用してTAB切り替え効果を実現します

目次問題の説明Vueの動的コンポーネントとはアプリケーションシナリオの説明実装手順ステップ 1 (新...