上村崇VPSによるWebサーバー運用講座の連載4回目です。今回は、iptablesを使ってサーバーのファイアウォールの設定を行います。7系ではファイアウォールの仕組みが違うのでこの設定は使えませんので注意してください。)まず、ファイアウォールの基本を学ぼうVPSをセットアップしてWebサーバーを公開したら、Webコンテンツを全世界に発信できるようになりますが、同時に悪意ある第三者の攻撃にさらされる宿命を負います。ファイアウォールは和訳すると「防火壁」です。サーバーが提供するサービス以外の不要な侵入口を塞ぐことで、最低限のセキュリティを確保します。Webサーバーを公開するならばぜひともファイアウォールは設定しておきたいところです。「使っているサービスの口はオープンにして、使ってないサービスの口は閉じる」ということです。使っているサービスの通信は許可して、使っていないサービスの通信は遮断するのがファイアウォールです。HTTPサーバーなどのサービスはそれぞれ固有の「ポート番号」を使用しています。使用する通信プロトコルとしてTCPとUDPがあり、それぞれにポート番号の概念があります。「TCPのポート番号80」と「UDPのポート番号80」は別物ですので注意してください。代表的なサービスのプロトコルとポート番号は以下のようになっています。22Webサーバーだけの機能を持つサーバーの場合、以下のようにSSH(SFTP)、HTTP、HTTPSのポートを許可して、他の通信は拒否する設定にします。0〜1023までのポート番号のどこかに割り当てられています。詳しくは、以下のページをご覧ください。Wikipediaあなたのサーバーについて、どのポートを許可すべきかをあらかじめ調べておきましょう。ファイアウォールiptablesの設定を行うそれでは実際にiptablesの設定を行います。はじめに、iptablesがインストールされていることを確認しましょう。返ってくる場合は、すでにiptablesはインストールされています。逆に、以下のようなメッセージが表示された場合はiptablesがインストールされていません。(/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)この場合は、yumコマンドでインストールしてください。iptablesiptablesの基本的な考え方iptablesには、INPUT、OUTPUT、FORWORDという3つのポリシーがあります。それぞれの通信の基本ポリシーを”DROP”(拒否)、”ACCEPT”(許可)のどちらかに設定できます。INPUTは、サーバーに入ってくる通信のポリシーです。ここでは基本ポリシーを”DROP”にして、あとで個別のポートに対して許可する設定にします。OUTPUTは、サーバーから出て行く通信のポリシーです。基本ポリシーは”ACCEPT“にします。FORWARDは、受信したデータを他のサーバーへ転送する際に適用される設定です。ここでは、特に転送するサーバーは無いので”DROP”にします。実際の設定事例と解説ポリシーを決めたあとに、個別のポートを許可する設定を行います。事例を見てもらった方が早いと思いますので、実際のiptablesの設定ファイル内容を以下に紹介します。