VPSにファイアーウォールを設定する

今回は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件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください