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

LinuxサーバーでIptablesのポートを開く方法

はじめに

Iptablesは、システム管理者がLinuxカーネルファイアウォールによって提供されるテーブルと、ファイアウォールが格納するチェーンおよびルールを構成できるようにするユーザースペースユーティリティプログラムです。ほとんどの場合、IptablesはすべてのLinuxディストリビューションにプリインストールされています。適切に構成されたファイアウォールを持つことは、サーバーの全体的なセキュリティにとって非常に重要です。

この記事では、UbuntuとCentosディストリビューションのIptablesファイアウォールでポートを開く手順を紹介します

前提条件

IptableがインストールされているUbuntuまたはCentosサーバーへのSudoアクセス。

ステップ1:現在のIptablesルールを一覧表示する

Sudoアクセスを使用してサーバーに接続し、iptablesに構成されている現在のルールを一覧表示するには、以下のコマンドを使用します

sudo iptables -L

以下のような出力が表示されます。これには、現在構成されているすべてのルールが表示されます

root@e2e:~# iptables -L
 Chain INPUT (policy DROP)
 target     prot opt source               destination         
 ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
 ACCEPT     all  --  anywhere             anywhere            
 ACCEPT     all  --  anywhere             anywhere            
 ACCEPT     icmp --  anywhere             anywhere            
 ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
 ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:http
 ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:https
 ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:1167
 ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:zabbix-agent
 Chain FORWARD (policy DROP)
 target     prot opt source               destination         
 Chain OUTPUT (policy ACCEPT)
 target     prot opt source               destination         
 root@e2e:~# 

ステップ2:Iptablesをバックアップする

Iptableにルールを追加する前に、Iptableルールのバックアップを取る必要があります。Iptablesの構成に問題が発生した場合に備えて、バックアップからルールを復元できます

以下のコマンドを使用して、Iptableルールを保存します

iptables-save > IPtablesbackup.txt

ステップ2:Iptableルールを追加/削除

現在構成されているルールを認識したら、以下のコマンドを使用してルールを追加することにより、IPtablesでポートを開くことができます。

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

注:xxxxを、開きたい必要なポート番号に置き換えてください

たとえば、Mysqlポートを開くには 3306 、以下のコマンドを実行する必要があります。

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

これは基本的に、Mysqlへの接続をパブリックに受け入れるようにIptableに指示します。

iptables -Lでも同じように表示できます ステップ1で述べたように

root@:~# iptables -L
 Chain INPUT (policy DROP)
 target     prot opt source               destination         
 ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
 ACCEPT     all  --  anywhere             anywhere            
 ACCEPT     all  --  anywhere             anywhere            
 ACCEPT     icmp --  anywhere             anywhere            
 ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
 ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:http
 ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:https
 ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:1167
 ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:zabbix-agent
 ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:mysql
 Chain FORWARD (policy DROP)
 target     prot opt source               destination         
 Chain OUTPUT (policy ACCEPT)
 target     prot opt source               destination         
 root@:~# 

最近追加されたルールを削除したい場合は、以下のコマンドを使用できます

sudo iptables -D INPUT -p tcp --dport xxxx -j ACCEPT

公にポートを開きたくない場合は、単一のIPのポートを開くことができます。

以下のコマンドを使用して、単一IP専用のポートを開きます

sudo iptables -A INPUT -p tcp -s your_server_ip --dport xxxx -j ACCEPT

注:上記のコマンドでyour_server_ipを必要なIPに置き換え、xxxxを必要なポートに置き換えてください

ステップ3:Iptableルールを保存する

ルールを追加したら、ルールを保存して永続化する必要があります。Ubuntuを使用している場合はiptables-persistentを使用でき、Centosの場合はiptablessaveコマンドを使用できます

Ubuntu 14.04では、次のコマンドを使用してiptablesルールを保存/再読み込みします

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

Ubuntu16.04およびUbuntu18.04では、次のコマンドを使用します

sudo netfilter-persistent save
sudo netfilter-persistent reload

CentOSを使用している場合は、以下のコマンドを使用してください

service iptables save

ステップ4:Iptablesバックアップを復元する

Iptables構成ルールに問題がある場合は、以下のコマンドを使用して変更を元に戻し、手順2でバックアップしたファイルを復元できます

iptables-restore < IPtablesbackup.txt 

結論

上記の記事に従うと、Linuxシステムのポートを開閉するのに役立ちます。適切なファイアウォールのIPテーブルを実装すると、システム管理者がシステムを保護し、必要なポートのみを公に許可するため、セットアップの優先度を常に高くする必要があります。それらを特定のIPに制限する


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

  2. Linux/Unix サーバーで開いているポートを一覧表示する方法

  3. CentOS / RHEL でポートを開くように IPtables を構成する方法

  1. LinuxサーバーでIptablesのポートを開く方法

  2. LinuxサーバーでIPアドレスをブロックする方法

  3. LinuxサーバーでIPアドレスをブロックする方法

  1. Linuxで開いているすべてのポートのリストを見つける方法

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

  3. Linuxでポートを開く方法