あなたのLinuxマシンをセキュアにするために知っておくべきiptablesのルール10選

文:Jack Wallen(Special to TechRepublic) 翻訳校正:村上雅章・野崎裕子
2009-03-03 08:00:00
  • このエントリーをはてなブックマークに追加

#9:iptables -A INPUT -i eth0 -p tcp -m state --state NEW -m multiport --dports ssh,smtp,http,https -j ACCEPT

 これは「multiport」モジュールを使用したチェインであり、これによって複数のポートを指定できるようになる。「multiport」モジュールを用いることで、チェインを複数記述することなく、1つだけ記述すれば済むようになる。つまり、ssh、smtp、http、httpsごとにルールを指定するのではなく、1つのルールを指定するだけで済むようになるわけである。当然のことながら、こういった指定に対して「ACCEPT」や「DENY」、「REJECT」を適用することができる。

#10:iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 4 --packet 0 -j DNAT --to-destination 192.168.1.10:80

 ミラーリングを行っている複数のサーバ間でロードバランシングを行いたいという場合(この例では、192.168.1.10というウェブサーバのロードバランシングを行っている)、このルールを使用することになる。このルールで大事な部分は「nth」拡張モジュールであり、これによってiptablesは「n番目(nth)」のパケットごとに対する操作を指定できるようになるのだ。上記のiptablesの記述例では、カウンタ0を使用して4番目のパケットごとに操作が適用されるようになる。この指定を拡張することで、ミラーリングしたサイトのロードバランシングを行うことが可能になる。例えば、ミラーリングされている4台のサーバが稼働しており、それらの間でロードバランシングを行いたいという場合を考えてみよう。この場合、各サーバごとに次のような指定を行うことができる。

iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 4 --packet 0 -j DNAT --to-destination 192.168.1.10:80

iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 4 --packet 1 -j DNAT --to-destination 192.168.1.20:80

iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 4 --packet 2 -j DNAT --to-destination 192.168.1.30:80

iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 4 --packet 3 -j DNAT --to-destination 192.168.1.40:80

 見ていただくと判るように、192.168.1.10というサーバには各0番目のパケットがルーティングされ、 192.168.1.20のサーバには各1番目のパケットがルーティングされ、 192.168.1.30のサーバには各2番目のパケットがルーティングされ、 192.168.1.40のサーバには各3番目のパケットがルーティングされる。

他の方法は?

 iptablesのこういった10個のルールを活用することで、あなたのLinuxサーバをよりセキュアなものにできるはずだ。Linuxにまつわること全般について言える話であるが、他の方法で同じことを行える可能性もある。しかし、ここで紹介したルールはLinuxサーバのセキュリティを向上させるうえで、そしてLinuxのセキュリティについて議論するうえでも、素晴らしい出発点となるはずだ。

この記事は海外CNET Networks発のニュースをシーネットネットワークスジャパン編集部が日本向けに編集したものです。海外CNET Networksの記事へ

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]