今回はVPSにファイアーウォールを設定します。
使用するのはiptablesです。
これを設定しないと、全ポートが解放されている状態となり、
仮に、サーバに悪意のあるソフトが仕込まれ、ポートをlistenしている状態になっていると、
攻撃者はそのポートにアクセスするだけで簡単にサーバを書き換えることができてしまいます。
しかし、iptableを設定することで、外からの許可されたポート以外は全てiptablesでブロックしてくれます。
まずは、現状を確認
# iptables -nL
たぶん全ポート開放状態です。
データを持たないパケットを破棄
# iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
SYNflood攻撃と思われる接続を破棄
# iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
ステルススキャンと思われる接続を破棄
# iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
localhostからの通信とpingを許可
# iptables -A INPUT -i lo -j ACCEPT
httpによるアクセスを許可
# iptables -A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp –dport 443 -j ACCEPT
その他、使用しているサービスのポートを許可する
# iptables -A INPUT -p tcp -m tcp –dport [ポート番号] -j ACCEPT
確立済みの通信を許可に設定
# iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
許可した通信以外のサーバに受信するパケットを拒否し、サーバから送信するパケットを許可
# iptables -P INPUT DROP
# iptables -P OUTPUT ACCEPT
この状態で、使用しているサーバアクセスが一通りできることを確認する。
できなければ、そのポートを開放する。
で、この設定を保存するんだけど、通常ならservice iptables saveでできるはずなんだけど、
なぜかできないので、スクリプトを作って、再起動する度に設定を行うようにする。(めんどくせー)
これでファイアーウォールの設定できました!
「VPSにファイアーウォールを設定する」への1件のフィードバック