はじめに
LinuxカーネルにはNetfilterが含まれています サブシステム。サーバーに向かう、またはサーバーを経由するネットワークトラフィックの運命を操作または決定するために使用されます。最新のLinuxファイアウォールソリューションはすべて、このシステムをパケットフィルタリングに使用しています。
UFW –複雑でないファイアウォール
Ubuntuのデフォルトのファイアウォール設定ツールはUFWです。 iptablesファイアウォール構成を容易にするために開発されたUFWは、IPv4またはIPv6ホストベースのファイアウォールを作成するためのユーザーフレンドリーな方法を提供します。
デフォルトでは、UFWは最初は無効になっています。 UFWのマニュアルページから:
「UFWは、コマンドインターフェイスを介して完全なファイアウォール機能を提供することを目的としていませんが、代わりに、単純なルールを追加または削除する簡単な方法を提供します。現在、主にホストベースのファイアウォールに使用されています。」
Ubuntu \ DebianにUFWをインストールするにはどうすればいいですか?
UFWは標準のUbuntu20.04インストールの一部であり、システムに存在する必要があります。何らかの理由でインストールされていない場合は、次のように入力してパッケージをインストールできます。
# Install UFW
sudo apt update
sudo apt install ufw
Code language: PHP (php)
UFWを有効または無効にする方法
このコマンドを使用すると、オペレーティングシステムでUFWエージェントを有効または無効にできます。また、この記事で以下に示す3番目のオプションリセットもあります。
# Enable uncomplicated firewall
sudo ufw enable
# Disable uncomplicated firewall
sudo ufw disable
Code language: PHP (php)
デフォルトポリシーの設定
UFWファイアウォールのデフォルトの動作は、すべての着信および転送トラフィックをブロックし、すべての発信トラフィックを許可することです。これは、特にポートを開かない限り、サーバーにアクセスしようとする人は誰も接続できないことを意味します。サーバーで実行されているアプリケーションとサービスは、外部にアクセスできるようになります。
# Setting Up Default Policies
sudo ufw default deny incoming
sudo ufw default allow outgoing
Code language: PHP (php)
特定のポートを追加または拒否する方法
ポートを許可すると、その特定のポートへの接続が許可されます。この場合、ポート22へのssh接続を許可するか、必要に応じて拒否します。
# Add port
sudo ufw allow 22
# Deny port
sudo ufw deny 22
Code language: PHP (php)
特定のルールを削除する方法
作成したルールの一部が不要な場合があるため、この簡単なコマンドでルールを削除できます。
# Remove rule
sudo ufw delete deny 22
Code language: PHP (php)
特定のIPからのポートのみを許可する
この場合、IPアドレス192.168.0.2からのみサーバーへのアクセスを許可し、他のIPアドレスは拒否されます。
# Allow 192.168.0.2 to access our server
sudo ufw allow proto tcp from 192.168.0.2 to any port 22
Code language: CSS (css)
ファイアウォールのステータスを確認する
UFWはデフォルトで無効になっています。次のコマンドを使用して、UFWサービスのステータスを確認できます。
# Check status
sudo ufw status
Code language: PHP (php)
アプリケーションの操作
アプリケーションプロファイルは、サービスを説明し、サービスのファイアウォールルールを含むINI形式のテキストファイルです。アプリケーションプロファイルは、/etc/ufw/applications.d
に作成されます パッケージのインストール中のディレクトリ。
# View which applications have installed a profile
sudo ufw app list
# Allow application
sudo ufw allow samba
# Allow only specific IP or IP-range to enter application
ufw allow from 192.168.0.0/24 to any app samba
ufw allow from 192.168.0.2 to any app samba
# Details about which ports, protocols, etc., are defined for an application
sudo ufw app info samba
Code language: PHP (php)
UFWのログを有効にする
ファイアウォールログは、攻撃の認識、ファイアウォールルールのトラブルシューティング、およびネットワーク上の異常なアクティビティの通知に不可欠です。ただし、ファイアウォールにロギングルールを含めて生成する必要があります。また、ロギングルールは、該当する終了ルール(ACCEPT、DROP、REJECTなどのパケットの運命を決定するターゲットを持つルール)の前に配置する必要があります。
# Enable logs
sudo ufw logging on
# Disable logs
sudo ufw loggin off
Code language: PHP (php)
特定のネットワークインターフェースへの接続
特定のネットワークインターフェースにのみ適用されるファイアウォールルールを作成する場合は、「allow in on」に続けてネットワークインターフェースの名前を指定することで、作成できます。
# Check what is your card name
ip addr
# Example
1: <strong>eth0</strong>: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
# Allow card to port name
sudo ufw allow in on eth0 to any port 80
Code language: PHP (php)
UFWのリセット
これにより、UFWが無効になり、以前に定義されたルールがすべて削除されます。いずれかの時点で変更した場合、デフォルトのポリシーは元の設定に変更されないことに注意してください。これにより、UFWを新たに始めることができます。
# Reset UFW
sudo ufw reset
Code language: PHP (php)