07.さくらインターネットVPSを使ってみる。~ファイヤーウォールを使ってみる~

注意事項
サーバー管理については全くの素人が調べながら書いているので、セキュリティ的に脆弱な設定方法などが多々あると思われます。詳しい方は優しくご指摘いただけると幸いです。

さて、最後に少しだけセキュリティを高める為にファイヤーウォールを設定してみます。iptablesというのを使って必要なポートだけを許可するのが良いよいうです。

ファイヤーウォールの設定はシェルスクリプトというテキストファイルを作っておいてそれを適用するのが常套手段?の様なのでまずはシェルスクリプトを作成します。「emacs /etc/sysconfig/iptables.sh」

emacs /etc/sysconfig/iptables.sh

開いたシェルスクリプトに下記のようにiptablesのルールを書いていきます。

#! /bin/sh
# IPアドレス設定。
# 使い回すIPアドレスを変数に設定。
server=’xxx.xxx.xxx.xxx/xx’
home=’xxx.xxx.xxx.xxx/xx’
any=’0.0.0.0/0′

# iptabalesのサービスを停止。
/etc/rc.d/init.d/iptables stop

# iptablesの設定を初期化。
iptables -F
iptables -X

# まずは全てのポートを閉じる。
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# サーバー内部で使用されるLoopbackを許可。
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# ssh接続用のポートを許可。
iptables -A INPUT -p tcp -s $home -d $server –dport 40022 -j ACCEPT
iptables -A OUTPUT -p tcp -s $server –sport 40022 -d $home -j ACCEPT

# Web用のポートを許可。
iptables -A INPUT -p tcp -s $any -d $server –dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -s $server –sport 80 -d $any -j ACCEPT

# その他のポートへのアクセスをログで取得。
iptables -N LOGGING
iptables -A LOGGING -j LOG –log-level warning –log-prefix “DROP:” -m limit
iptables -A LOGGING -j DROP
iptables -A INPUT -j LOGGING
iptables -A OUTPUT -j LOGGING

# 再起動してもiptablesの設定が保持される様に保存。
/etc/rc.d/init.d/iptables save

# iptablesのサービスを開始。
/etc/rc.d/init.d/iptables start

あとは作ったシェルスクリプトに「chmod 700 /etc/sysconfig/iptables.sh」で実行権限を与えて「/etc/sysconfig/iptables.sh」でiptablesを設定します。

chmod 700 /etc/sysconfig/iptables.sh
/etc/sysconfig/iptables.sh

これでiptablesのポート制限は完了したはずです。でもiptablesを設定するとyumが使えなくなってしまいます。。。orz 色々と調べたんですけど、ネットの情報を適用しても上手くいきませんでした。何故なんでしょうね?

さくらインターネットVPSに色々なところから接続してみましたが、レスポンスも良かったです。 一番気に入ったのはコントロールパネルからいつでもディスクを初期状態に戻せる事ですかね。 レンタルサーバーの制限で悩まされる事もなくなり、且つ安価なのはやっぱり魅力的ですね。 まあ、それなりのサーバー管理の知識がないと難しいですが。。。