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

推薦する

html.cssオーバーフローの包括的な理解

html.cssオーバーフローの包括的な理解XML/HTML コードコンテンツをクリップボードにコピ...

CSS 不透明度子要素が親要素の透明度を継承するためのソリューションの詳細な説明

プロジェクト ページの作成中に、子要素が親要素の透明度を継承するという問題に遭遇しました。多くのドキ...

Alibaba Cloud Server Linux システムは Tomcat を構築して Web プロジェクトを展開します

私は全体のプロセスを 4 つのステップに分けます。 JDKをダウンロードしてインストールするTomc...

MySQLのexplain型の詳細な説明

導入:多くの場合、さまざまな選択ステートメントを使用して必要なデータを照会した後、多くの人は作業が正...

dockerコンテナにvimをインストールするソリューション

目次物語の始まりvimをインストールし、hadoop-hive.envを編集します。不注意で回避しま...

Centos6.5 glibc アップグレードプロセスの紹介

目次シナリオ要件glibc バージョンglibcのインストールglibc ソフトリンクシナリオ要件C...

DOCTYPE 文書型宣言 (Web ページ愛好家必読)

DOCTYPE 宣言 作成するすべてのページの先頭に、ドキュメント宣言が必要です。はい、そうでしょう...

MySQL ルートパスワードを変更する 4 つの方法 (要約)

方法1: SET PASSWORDコマンドを使用するまずMySQLにログインします。フォーマット: ...

Docker データ ストレージ ボリュームの詳細な説明

デフォルトでは、コンテナ データの読み取りと書き込みはコンテナのストレージ レイヤーで行われます。コ...

CentOS7.5 の MySQL8.0.19 のインストールチュートリアルの詳細な手順

1. はじめにこの記事には MySQL インストール部分のスクリーンショットがないので、ある程度の基...

Docker で MySQL をデプロイする詳細なプロセス (Docker でデプロイされる一般的なアプリケーション)

以前にも紹介しました: docker (一般的なアプリケーションのデプロイ): docker dep...

HTML でのアンカーポイントの使用_PowerNode Java アカデミー

ここで、アンカー ポイントを制御するいくつかの状況をまとめてみましょう。 1. 同じページ <...

UbuntuはPythonスクリプトのサンプルコードを定期的に実行する

オリジナルリンク: https://vien.tech/article/157序文この記事では、Ub...

nginx でのリクエストのカウント追跡の簡単な分析

まずは適用方法を説明します。nginxモジュールにはjtxyとjtcmdの2つがあります。 http...

HTML フォーム コンポーネントのサンプル コード

HTML フォームは、さまざまな種類のユーザー入力を収集するために使用されます。次のコードは、HTM...