この記事では、Ubuntu18.04でUFWファイアウォールを設定する方法を紹介します。 Ubuntuでは、デフォルトのファイアウォールはUFWで、 Uncomplicated FireWallの略です。 。これはUbuntu18.04のリリース以来存在しており、非常に複雑なiptables構成を簡素化するために構築されました。
運用を使用する場合、ファイアウォールは、システムのセキュリティに関する限り、考慮しなければならない最も重要な機能の1つです。ファイアウォールは、PCとインターネットの間に存在するシールドまたはバリアであり、システムへのリモートアクセスなどの不正なトラフィックをブロックし、インターネットを絶えず通過する悪意のあるコードから保護するのに役立ちます。ファイアウォールは、ハードウェアまたはソフトウェアのいずれかです。ハードウェアファイアウォールは、ネットワークに配置されるスタンドアロンのファイアウォールシステムであり、ネットワークとの間のトラフィックの流れを制御することで保護レイヤーを追加し、ユーザーが不要なサイトにアクセスするのをブロックします。ソフトウェアファイアウォールは、LinuxやWindowsなどのオペレーティングシステムに組み込まれており、システムを外部からの攻撃から保護するのに役立ちます。
また読む:
- Ubuntu UFWファイアウォールでルールを有効、拒否、許可、削除する方法
UFWのインストール
デフォルトでは、Ubuntu18.04にはufwがインストールされています。ただし、以前のシステムでは、以下のコマンドを実行する必要があります
apt-get install ufw
ufwが実行されているかどうかを確認するにはrun
systemctl status ufw
実行中の場合は、以下の出力が得られるはずです
● ufw.service - Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enab
Active: active (exited) since Tue 2018-04-10 22:03:30 UTC; 4min 1s ago
Process: 376 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SU
Main PID: 376 (code=exited, status=0/SUCCESS)
Tasks: 0
Memory: 0B
CPU: 0
CGroup: /system.slice/ufw.service
Apr 10 22:03:30 ip-172-31-41-251 systemd[1]: Started Uncomplicated firewall.
Warning: Journal has been rotated since unit was started. Log output is incomple
アクティブか非アクティブかを確認するには実行
ufw status
非アクティブな場合は、以下の出力が表示されます
Status: inactive
デフォルトのルールセットでUFWをオンにするには、実行します
ufw enable
ファイアウォールの実行を無効にするには
ufw disable
デフォルトのufwルールの設定
すべての送信プロトコルを許可するデフォルトのルールを設定するには、rootとしてログインして実行します
ufw default allow outgoing
出力
Default outgoing policy changed to 'allow'
(be sure to update your rules accordingly)
すべての着信接続を拒否するには、
を実行しますufw default deny incoming
出力
Default outgoing policy changed to 'deny'
(be sure to update your rules accordingly)
上記のコマンドは、すべての発信接続を許可し、すべての着信接続を拒否またはブロックします。
この時点で、ファイアウォールを有効にすることをお勧めしますが、有効にする前に、まずsshを許可してください。これにより、以前にすべての着信接続の拒否を指定したため、サーバーへの切断が防止されます。
sshを許可するには、実行します
ufw allow 22/tcp
送信
Skipping adding existing rule
Skipping adding existing rule (v6)
sshアクセスはサービス名でも許可できます
ufw allow ssh
ルールの実行を削除する場合
ufw delete allow 22/ssh
名前でサービスを拒否するにはrun
ufw deny service-name
たとえば
ufw deny ssh
システムで許可または拒否できるすべてのサービスを確認するには、/etc/services
を確認してください。 ファイル。
cat /etc/services | less
サンプル出力
ftp-data 20/tcp
ftp 21/tcp
fsp 21/udp fspd
ssh 22/tcp # SSH Remote Login Protocol
ssh 22/udp
telnet 23/tcp
smtp 25/tcp mail
time 37/tcp timserver
time 37/udp timserver
rlp 39/udp resource # resource location
nameserver 42/tcp name # IEN 116
whois 43/tcp nicname
tacacs 49/tcp # Login Host Protocol (TACACS)
tacacs 49/udp
re-mail-ck 50/tcp # Remote Mail Checking Protocol
re-mail-ck 50/udp
domain 53/tcp # Domain Name Server
domain 53/udp
ufwファイアウォールを開始しています
ファイアウォールをアクティブにするには、rootとしてログインし、次のコマンドを実行します。
ufw enable
次の警告が表示される場合があります
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
[はい]を選択すると、以下の出力が表示されます
Firewall is active and enabled on system startup
これでファイアウォールがアクティブになり、起動するたびにファイアウォールが起動します。ファイアウォールルールをもう一度確認できます:
ufw status
出力には、ファイアウォールのステータスと許可されているサービス/ポートが表示されます
出力
ufw status active
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
22 ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
22 (v6) ALLOW Anywhere (v6)
ufwでの接続の許可
ufwのポート/範囲、アプリケーション名、IPアドレス/サブネットでの着信接続を簡単に許可できます。
以下の例を確認してください。
a)名前またはポート番号/範囲によるアプリケーションの許可
ufw allow service-name
または
ufw allow port/tcp
例
ufw allow ssh or ufw allow 22/tcp
ufw allow ftp or ufw allow 21/tcp
sudo ufw allow 1500:2000 / tcp
b)IPアドレス/サブネットを許可する
以下のコマンドは、特定のIPまたはサブネットからの接続を許可し、特定のポート番号を使用することもできます。
特定のIPアドレスからの接続を許可するには
ufw allow from 10.200.20.45
特定のポートへの接続を許可するIPを指定するには実行
ufw allow from 10.200.20.45 to any port 22
上記では、IPアドレス10.200.20.45はssh経由でのみ接続できます
IPの特定のサブネットがシステムに接続できるようにするには、ネットマスクを指定するためにCIDR表記を使用します
ufw allow from 192.168.1.0/24
上記により、192.168.1から192.168.1.254までのIPがシステムに接続できるようになります
サブネットの宛先ポートを指定することもできます
ufw allow from 192.168.1.0/24 to any port 22
これは、192.168.1から192.168.1.254までのIPがsshであるポート22を介してシステムに接続できることを意味します。
c)インターフェース名で許可
インターフェイス名を介した接続を許可する必要がある場合は、可能です
ufw allow in on eth0 to any port 80
ufwで接続を拒否する方法
デフォルトでは、ufwはすべての着信接続を拒否するように設定されています。
a)IPアドレス/サブネット
特定のIPアドレスへのアクセスをブロックする場合は、次のコマンドでブロックできます。
ufw deny from 192.168.1.15
これにより、IPアドレス192.168.1.15のホストからのすべての着信接続がブロックされます
次に、サブネット全体をブロックしましょう:
ufw deny from 150.165.125.0/24
これにより、このサブネットからのすべての接続がブロックされます。
b)ポートとアプリケーションを拒否する
ポートまたはサービスを拒否するには
ufw deny 80/tcp
または
ufw deny http
sudo ufw deny 1500:2000 /tcp*これによりポート範囲が拒否されます*
ルールの削除と追跡
多くのルールを追加する場合、それらの番号を表示することで、それらをより適切に追跡できます。次のコマンドで数字を取得できます:
ufw status numbered
出力
ufw status numbered
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 22 ALLOW IN Anywhere
[ 3] 80/tcp ALLOW IN Anywhere
[ 4] 53/tcp ALLOW IN Anywhere
[ 5] 22/tcp (v6) ALLOW IN Anywhere (v6)
[ 6] 22 (v6) ALLOW IN Anywhere (v6)
[ 7] 80/tcp (v6) ALLOW IN Anywhere (v6)
[ 8] 53/tcp (v6) ALLOW IN Anywhere (v6)
ルール番号2を削除するとします。これを行うには、次のコマンドを実行します。
ufw delete 2
注:
ファイアウォールの2番目のルールを削除すると、ルール3が新しいルール2になります。したがって、現在のルール3を削除する場合は、番号2を使用して削除します。
ufw delete allow http
ルールのリセット
現在のルールに不満があり、最初からやり直したい場合は、を実行してやり直すことができます
ufw reset
ロギングとリロード
ロギングを有効にするには、次のコマンドを使用します:
ufw logging on
何らかの理由でロギングを無効にしたい場合(非推奨)、次のコマンドを使用できます:
sudoufwログオフ
ログはデフォルトで/var/log/ufw.log
にあります それらをリアルタイムで表示するには、次のようにtail-fを使用します。
tail -f /var/log/ufw.log /pre>
You will see all actions of firewall in that file. If you need to reload firewall for some reason, because you changed some config files manually, use following command.
ufw reload
最近追加されたルールを確認したい場合
ufw show added
UFW設定ファイル
ほとんどのシナリオでは、ターミナルコマンドを使用できますが、場合によっては、構成ファイルを直接編集する必要があります。 ufwには、複数の構成ファイルがあります。つまり、次のとおりです。
/etc/ufw/before.rules
/etc/ufw/before6.rules
これらの2つのファイルには、ufwコマンドで追加したすべてのルールの前に評価されるルールが含まれています。したがって、最初に何らかのルールを適用する場合は、そこに適用する必要があります。最初のファイルはipv4用で、2番目のファイルはv6用です
/etc/ufw/after.rules
/etc/ufw/after6.rules
これらはufwコマンドルールの後に評価されます。いくつかのルールをオーバーライドして、何があってもそれを適用したい場合に使用すると便利です。繰り返しになりますが、現在使用されているIPプロトコルの2つのバージョン用の2つのファイル。
/etc/default/ufw
ここに、ufwが使用するカーネルモジュールとその他の一般的な設定があります。この構成ファイルはrootとしてのみ編集でき、任意のテキストエディタを使用できます。
重複するルールを追加しないでください
次に、重複するルールに対するメカニズムを観察しましょう。最初にポート101を開きます
sudo ufw allow 100
上記のようなプロトコルなしのコマンドは、UDPポートとTCPポートの両方を開くことに注意してください。それでは、同じコマンドをもう一度実行して、何が起こるかを見てみましょう
ufw allow 100
出力
Skipping adding existing rule
Skipping adding existing rule (v6)
重複するルールを追加することはできません。それは良いことですが、この一連のコマンドによって、重複するルールを追加できる可能性があります。
ufw allow 101/udp
ufw allow 101/tcp
ポート101でTCPとUDPの両方を許可した後でも、すべてのプロトコルに開いているポート101を追加できます。これは、ポート101がプロトコルごとに1回、すべてのプロトコルに1回ずつ、合計2回開かれるため重複するルールです。
ufw allow 101
これはエラーの余地を残し、一般的には良い習慣ではありません。ポート101のデフォルトに戻したい場合は、ufwdeleteコマンドで3つのコマンドすべてを元に戻す必要があります。
一部のポートを閉じるには、同じコマンドを実行します。代わりに、allow、denyと入力します。
この記事では、トラフィックを許可または制限するために使用される単純なファイアウォールであるUFWの使用法について説明しました。これは、システムへのトラフィックを規制するための非常に強力なファイアウォールです。システムでコマンドを試してみてください。