Linuxシステムへのインバウンドまたはアウトバウンド接続を許可する必要がありますか?Iptables、Uncomplicated Firewall (UFW)、Firewalldなどのファイアウォールソフトウェアを使用している場合、コマンドラインから簡単にポートを開くことができます。ConfigServer Firewall (CSF)やAdvanced Policy Firewall (ADP)のような製品の場合、ポートを開くためのファイアウォールルールを追加するのは、ファイアウォール設定ファイルを編集するのと同じくらい簡単です。このwikiHow記事では、Ubuntu、Debian、CentOS、Red Hat、Fedora、その他のLinuxディストリビューションで最も一般的な5つのファイアウォールでポートを開閉する方法を説明します。
知っておくべきこと
- Linuxベースのファイアウォール製品であれば、TCPポートとUDPポートを簡単に開くことができます。
- IptablesはほとんどのLinuxディストリビューションにプリインストールされており、設定も非常に簡単です。
- Firewalldを使っている場合、firewall-cmdコマンドに--permanentフラグを追加することで、ファイアウォールを停止・再起動しても変更が元に戻らないようにすることができる。
Iptables
-
Linuxサーバーにログインするか、ターミナルウィンドウを開く。Ubuntu、Debian、Fedora、Red Hatを含むほとんどのLinuxディストリビューションには、IPtablesがすでにインストールされています。簡単なコマンドを使用して、Iptablesでポートを開くことができます。
-
service iptables statusを実行し、ファイアウォールがアクティブであることを確認する。ファイアウォールが稼動していない場合は、service iptables startを使って起動する。
-
sudo iptables -Lを使って、現在のファイアウォールルールをリストアップする。ルールはチェーンに分かれています:
- INPUTチェーンはホストシステムへのインバウンド接続用。
- FORWARDチェーンはルーティングに使われる。
- OUTPUTチェーンは、ホストシステムから出るアウトバウンドデータに使用される。
- 各チェーンには、パケットに何が起こるかを決定するポリシーがあります。ポートを開くときには、チェーンを指定する必要がある。例えば、着信接続を開くにはINPUTチェーンを使う。
-
ポートを開くには、sudo iptables -I INPUT -p tcp -m tcp --dport 22 -j ACCEPTを使う。この例では、22番ポートに着信接続を開いているが、22番を開きたいポートに置き換えることができる。
- 送信ポートを開く場合は、INPUTをOUTPUTに置き換える。
- UDPポートを開く場合は、tcpをudpに置き換えてください。
- 特定のIPアドレスまたはサブネットに対してのみポートを開くには、sudo iptables -I INPUT -s xxx.xxx.xxx.xxx -p tcp -m tcp --dport 22 -j ACCEPTを使用する。
-
sudo service iptables saveを使って変更を保存する。それでもうまくいかない場合は、以下のコマンドを試してみてください:
- sudo /sbin/iptables-save UbuntuとDebianの場合。
- CentOS、Red Hat、Fedoraの場合は、/sbin/service iptables save。
- ポートを閉じるには、iptables -I INPUT -p tcp --dport 22 -j REJECTを使う。現在サーバーにSSH接続している場合は、絶対にポート22を閉じないこと!
複雑でないファイアウォール
-
Ubuntuサーバーにログインします。UFWは全てのUbuntuシステムにプリインストールされています。GUIインターフェースにログインしている場合は、.
-
sudo ufw status verbose と入力して ↵ Enter を押します。UFW がすでに実行されている場合、ステータスメッセージと、すでに存在するファイアウォールルール(開かれたポートを含む)のリストが表示されます。
- Status: inactiveというメッセージが表示されたら、ファイアウォールを有効にする必要があります:
- sudo ufw enable と入力し、Enterキーを押してファイアウォールを起動します。
- ファイアウォールのログをオンにするには、sudo ufw logging onを使います。
-
ポートを開くには sudo ufw allow [port number] と入力します。例えば、SSHポート(22)を開きたい場合は、kbdと入力してEnterを押すとポートが開きます。変更はすぐに反映されるので、ファイアウォールを再起動する必要はない。
- 開くポートが/etc/servicesにリストされているサービス用の場合は、ポート番号の代わりにサービス名を入力すればいい。例: sudo ufw allow ssh.
- 特定の範囲のポートを開くには、sudo ufw allow 6000:6007/tcpという構文を使い、6000:6007を実際の範囲に置き換えてください。範囲が UDP ポートの場合は、tcp を udp に置き換えます。
- ポートにアクセスできる IP アドレスを指定するには、次の構文を使用します: sudo ufw allow from 10.0.0.1 to any port 22.sudo ufw allow from 10.0.0.1 to any port 22. 10.0.0.1をIPアドレスに、22をそのアドレスに開きたいポートに置き換えてください。
- ポートを閉じるには、sudo ufw deny 22を使用し、22を閉じたいポートに置き換えます。
-
不要なファイアウォールルールを削除する。特に開いていないポートはデフォルトでブロックされます。ポートを開いていて閉じたくなった場合は、以下の手順を使います:
- sudo ufw status numbered と入力して Enter キーを押します。ファイアウォールルールの一覧が表示されます。
- 削除したいルールの先頭にある番号を確認します。例えば、ポート22を開放するルールを削除したいとします(現在SSHを使ってサーバーにアクセスしている場合は、この操作はしないでください)。
- sudo ufw delete 2 と入力してEnterを押すと、2行目のルールが削除されます。
Firewalld
-
サーバーにログインします。CentOS、Red Hat Enterprise、SUSE、FedoraシステムでFirewalldを使用している場合、コマンドラインから簡単にポートを開くことができます。Firewalldは、これらすべてのディストリビューションのデフォルトのファイアウォール・ソリューションです。
-
firewall-cmd --list-ports を実行すると、開いているポートがすべて表示されます。PUBLICゾーンは
- あるいは、sudo firewall-cmd --list-all を実行することで、firewalld のコンフィギュレーション全体を表示し、許可されたポートや拒否されたポート、サービスをすべて表示することができます。
-
ポートを開くにはfirewall-cmdコマンドを使います。この例では、リモートアクセス用のSSHポート(22)を開く方法を紹介します:
- firewall-cmd --zone=public --add-port=22/tcp は即座にポートを開くが、変更を永続化しない。
- この変更を永続的にするには、コマンドに--permanentフラグを追加する: firewall-cmd --zone=public --permanent --add-port=22/tcp.
- UDPポートを開くには、tcpをudpに置き換える。
- サービス名でポートを開くには、firewall-cmd --zone=public --permanentを使用します。
-
特定のIPアドレスのポートを開く。1つのIPへの接続または1つのIPからの接続だけを許可したい場合は、そのアドレス用に新しいファイアウォールゾーンを作成する必要があります。
- 新しいゾーンを作成するには、firewall-cmd --new-zone=MYZONENAME --permanentを使う。
- その後、firewall-cmd -reloadを実行して設定をリフレッシュする。
- firewall-cmd --get-zonesを実行してゾーンを表示すると、新しいゾーンが表示されます。
- IPアドレスをゾーンにリンクするには、firewall-cmd --zone=MYZONENAME --add-source=10.0.0.1 --permanentを使います。同じIPアドレスを適切なアドレスに置き換える。
- 次に、"public:" の代わりにゾーン名を指定して、ゾーンへのポートを開く firewall-cmd --zone=MYZONENAME --permanent --add-port=22/tcp.
-
ポートを閉じる。ポートを閉じる必要がある場合は、firewall-cmdコマンドで別のフラグを使って閉じることができます。この例では、22番ポートを恒久的にパブリックに閉じます: firewall-cmd --zone=public --remove-port=22/tcp --permanent。
コンフィグサーバー・ファイアウォール
-
サーバーにログインします。rootユーザーとしてログインしていない場合は、rootにsuして設定を調整するか、コマンドの前にsudoをつけてください。
-
CSF設定ファイルを含むディレクトリに移動します。このファイルはcsf.confと呼ばれ、デフォルトでは/etc/csf/csf.confに保存されています。 これを実行するには、cd /etc/csfと入力して↵ Enterキーを押します。
-
csf.conf をテキストエディタで開きます。vimやnanoなど、好きなテキストエディタを使うことができます。
- vimでcsf.confを開くには、vim csf.configとタイプし、↵ Enterを押します。
-
TCP_INリストに受信ポートを追加します。TCPポート。ファイルを開くと、TCP_INセクションとTCP_OUTセクションが表示されます。TCP_INセクションには、オープンな受信TCPポートがカンマ区切りでリストされています。簡単にできるようにポートは数字順になっていますが、必ずしもこの順番に従わなければならないわけではありません。カンマで区切るだけで、ポートを順番の最後に追加することができます。
- 例えば、ポート999を開きたいとして、現在開いているポートが20、21、22、25、53、80、110、143、443、465、587、993、995だとします。
- ポート999をリストに追加すると、以下のようになる:20, 21, 22, 25, 53, 80, 110, 143, 443, 465, 587, 993, 995, 999.
- vimで挿入/入力モードにするには、キーボードのiキーを押してください。
-
TCP_OUTリストに発信TCPを許可する。受信ポートと同じように、開きたい送信TCPポートをTCP_OUTリストに追加する。
-
変更を保存して、ファイルを終了します。以下の手順に従って、ファイルを保存して終了します:
- Escキーを押します。
- wq!
- Enterキーを押します。
-
service csf restart と入力し、↵ Enterキーを押します。これでファイアウォールが再起動し、新しいポートが開きます。
- ポートを拒否するには、ファイルを再度開き、ポートを削除してファイルを保存し、ファイアウォールを再起動します。
アドバンスド・ポリシー・ファイアウォール
-
Linuxサーバーにログインする。Linux システムで APF を使用している場合は、APF 設定ファイルでファイアウォール設定を変更します。
-
APF設定ファイルを含むディレクトリに移動します。cd /etc/apfと入力して、そのディレクトリに入ります。
-
テキストエディタで/etc/apf/conf.apfを開く。vimやnanoなど、好きなテキストエディタを使うことができる。
- vimでconf.apfを開くには、sudo vim /etc/apf/conf.apfと入力してEnterを押す。
-
IG_TCP_CPORTSリストにインバウンド・ポートを追加する。ファイルを開くと、IG_TCP_CPORTSとEG_TCP_CPORTSセクションが表示されます。IG_TCP_CPORTSセクションには、開いているインバウンド・ポートがカンマ区切りでリストされています。物事を簡単にするためにポートを数字順に並べていますが、これにこだわる必要はありません。カンマで区切るだけで、ポートを列の最後に追加することができます。
- 例えば、ポート999を開きたいとして、現在開いているポートが20、21、22、25、53、80、110、143、443、465、587、993、995だとする。
- ポート999をIG_TCP_CPORTSリストに追加すると、以下のようになります:20, 21, 22, 25, 53, 80, 110, 143, 443, 465, 587, 993, 995, 999.
- vimで挿入/入力モードにするには、キーボードのiキーを押してください。
-
EG_TCP_CPORTSリストに送信ポートを許可します。受信ポートと同じように、開きたい送信TCPポートをEG_TCP_CPORTSリストに追加します。
-
変更を保存して、ファイルを終了します。以下の手順に従って、ファイルを保存して終了します:
- Escキーを押します。
- wq!」と入力します。
- Enterキーを押します。
-
service apf -r と入力し、↵ Enter キーを押します。これでAPFファイアウォールが再起動し、新しいポートが開きます。
- ポートを拒否するには、ファイルを再度開き、ポートを削除してファイルを保存し、ファイアウォールを再起動します。
コメント
最新を表示する
NG表示方式
NGID一覧