GNU/Linux >> Linux の 問題 >  >> Cent OS

UbuntuとCentOSでiptablesを使用してファイアウォールを設定する方法

このチュートリアルでは、 iptablesを使用してファイアウォールを設定する方法を紹介します。 オペレーティングシステムとしてUbuntuまたはCentOSを実行しているLinuxVPSの場合。 Iptablesは、IPv4パケットフィルタリングとNATの管理ツールであり、LinuxカーネルでIPv4パケットフィルタールールのテーブルを設定および管理するために使用されます。

ファイアウォールを適切に構成および設定することは、サーバーを保護するために実行する必要がある最も重要で重要なことの1つです。

iptablesを使用すると、いくつかの異なるパケットマッチングテーブルが定義され、各テーブルには、ユーザーが定義したいくつかのチェーンだけでなく、いくつかの組み込みチェーンを含めることができます。チェーンは実際にはパケットのセットに一致するルールのリストであり、各ルールは一致したパケットをどう処理するかを指定します。

デフォルトのテーブルはfilterです テーブルには、組み込みのチェーンINPUT、FORWARD、およびOUTPUTが含まれています。 INPUTチェーンはローカルソケット宛てのパケットに使用され、FORWARDチェーンはボックスを介してルーティングされるパケットに使用され、OUTPUTチェーンはローカルで生成されたパケットに使用されます。

SSH経由でサーバーに接続し、次の構文を使用して特定のチェーンで定義されたルールを一覧表示します。

sudo iptables -L CHAIN

CHAINを組み込みチェーンの1つに置き換えて、定義されたルールを確認します。チェーンが選択されていない場合、すべてのチェーンが出力に表示されます。

sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

ファイアウォールルールは、特定の基準に一致する場合に特定のパケットを処理する方法を指定し、パケットが基準に一致しない場合は、チェーンで定義されている次のファイアウォールルールが調べられます。ブロッキングルールの後にローカルIPアドレスからのパケットを受け入れるルールを定義すると、サーバーから簡単にロックアウトできるため、これはファイアウォールルールを定義するときに知っておくべき非常に重要なことです。

ファイアウォールルールに使用できるターゲットは、ACCEPT、DROP、QUEUE、およびRETURNです。 ACCEPTはパケットを通過させ、DROPはパケットをドロップし、QUEUEはパケットをユーザースペースに渡し、RETURNは現在のチェーンのパケットトラバースを停止し、前のチェーンの次のルールで再開します。デフォルトのチェーンポリシーは、パケットが特定のファイアウォールルールに一致しない場合のパケットの処理を定義します。最初のコマンドの出力でわかるように、すべての組み込みチェーンのデフォルトポリシーはACCEPTに設定されています。 ACCEPTはパケットを通過させるので、基本的に保護はありません。

特定のルールを追加する前に、次のルールを追加してください。

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

これにより、すでに確立されている接続が切断されるのを防ぎ、現在のSSHセッションがアクティブなままになります。

次に、ループバックインターフェイスでトラフィックを許可するルールを追加します。

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

次に、ローカルIPアドレスのSSH経由でサーバーへのアクセスを許可して、自分だけがサーバーにアクセスできるようにします。

sudo iptables -A INPUT -s 111.111.111.111 -p tcp --dport 22 -j ACCEPT

ここで、111.111.111.111 はローカルIPアドレスであり、22 SSHデーモンのリスニングポートです。ローカルIPアドレスが動的に変更される場合は、-s 111.111.111.111を省略するのが最適です。 分割し、別の方法を使用して、SSHサービスを不要なトラフィックから保護します。

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

次に、HTTP/HTTPSサーバーなどの重要なサービスへのアクセスを許可します。

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

[ecko_alert color =” blue”]どこかに行き詰まりましたか?私たちからVPSを入手してください。サーバーを適切に保護し、ファイアウォールを無料で構成します。[/ ecko_alert]

次に、現在のルールをリストし、すべてがOKかどうかを確認します。詳細な出力については、次のコマンドを使用できます。

sudo iptables -nvL

アクセスを許可したい他のサービスがある場合は、今すぐそれを行うのが最善です。完了したら、INPUT組み込みチェーンのデフォルトポリシーをDROPに設定できます。

sudo iptables -P INPUT -j DROP

これにより、ファイアウォールルールの基準に一致しないパケットがすべてドロップされます。最終的な出力は次のようになります。

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0

ただし、サーバーを再起動すると、定義したファイアウォールルールがすべて失われるため、ルールを永続的にすることが非常に重要です。

Ubuntu VPSを使用している場合は、その目的のために追加のパッケージをインストールする必要があります。先に進み、次のコマンドを使用して必要なパッケージをインストールします。

sudo apt-get install iptables-persistent

Ubutnu 14.04 以下のコマンドを使用して、ファイアウォールルールを保存および再ロードできます。

sudo /etc/init.d/iptables-persistent save
sudo /etc/init.d/iptables-persistent reload

Ubuntu 16.04 代わりに次のコマンドを使用してください:

sudo netfilter-persistent save
sudo netfilter-persistent reload

CentOS VPSを使用している場合は、次のコマンドを使用してファイアウォールルールを保存できます。

service iptables save

もちろん、フルマネージドVPSホスティングサービスのいずれかを使用している場合は、これを行う必要はありません。その場合は、専門のLinux管理者にサーバーでのiptablesの構成を依頼するだけです。 24時間年中無休でご利用いただけます。リクエストはすぐに処理されます。

PS 。 UbuntuとCentOSでiptablesを使用してファイアウォールを設定する方法に関するこの投稿が気に入った場合は、下のボタンを使用してソーシャルネットワーク上の友達と共有するか、コメントセクションにコメントを残してください。ありがとう。


Cent OS
  1. CentOSのIptablesでHttpポート(80)を開く方法

  2. IPtablesを使用してUbuntuとCentOSでポートを開く方法

  3. UbuntuとCentOSでNginxサーバーブロックを設定する方法

  1. Ubuntu\DebianでUFWを使用してファイアウォールを設定する方法

  2. UbuntuとCentOSでiptablesを使用してファイアウォールを設定する方法

  3. CentOS8でファイアウォールを使用してファイアウォールを設定する方法

  1. Ubuntu18.04でUFWを使用してファイアウォールを設定する方法

  2. CentOS7でfirewalldを有効にして使用する方法

  3. Ubuntu16.04でUFWを使用してファイアウォールを設定する方法