とあるさくらのVPS (4) iptablesを設定

すっかり忘れておったのですが

iptablsによる、プチ(?)ファイアーウォール的な設定を行います。セキュリティも自分の責任、ってのは意識が高まってよろしい。

今回も自分メモ的に、さくらのVPSをセットアップしたときの情報を載せて参ります。今回はiptablesの最低限の設定のみ。

iptablesを設定

調べていたら、いきなりドンピシャな情報を見つけてしまったので、ひとまず「さくらのVPS を使いはじめる 3 – iptables を設定する | アカベコマイリ」を参考にさせて頂いて設定。

% sudo emacs /etc/sysconfig/iptables

*filter
:INPUT   ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT  ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]

-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH, HTTP, FTP1, FTP2, MySQL
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport XXXXX -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80    -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20    -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21    -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306  -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

COMMIT

上のは参考元から引用させていただいてます。単語から流れは推測できるんですが、順次で記法も学習しないとです。SSH, HTTP, FTP, MySQL用のポートを開けておく、と。XXXXXは、自分が設定したSSH用のポートが設定されています。

そしてサービスを再起動して終わり。

% sudo /etc/rc.d/init.d/iptables restart

余談ですがphp.iniと文字コード

文字コードに起因する脆弱性を防ぐ「やや安全な」php.ini設定 - 徳丸浩の日記

文字コードがらみのセキュリティということで。普段業務で、PHPを利用したWebシステムを構築しているので、深い理解を得るため&今回のVPSの環境改善のために参考にさせていただきました。文字コードはアカデミックな匂いがツライなー。