対象サービス・プラン 
 

ファイアウォール機能であるiptablesは、サーバへ接続させる通信のルールを設定できます。 
このページでは、簡易的な設定を一例として紹介します。
注意事項
- iptablesの設定内容は、サーバへの攻撃対策方法やお客様の利用用途により多岐にわたり、 
 このページに紹介する設定の限りではありません。
- このページは、あくまでも参考としてご覧いただき、実際の設定は、お客様にてサーバへの攻撃対策方法や 
 ご利用用途をご確認のうえ追加での対策設定などを、各種参考書籍をもとに行ってください。
前提条件
- さくらのVPSの標準OS(CentOS 6)がインストールされているサーバが対象です。
- その他のOSでの設定は、各OSのマニュアルをご確認ください。
- iptables以外にもセキュリティ対策を行ってください。
iptabelsの設定
サーバにログイン
リモートコンソールやターミナルソフトなどを利用してroot権限を持ったユーザでサーバにログインします。 
※ここでは、rootでログインした場合で説明します。 
※さくらのVPS ベアメタルプランの場合、1行目は「SAKURA Internet [BareMetal Server SERIVCE]」と表示されます。

設定の確認
iptablesの設定を確認します。
| # iptables -L | 

特にルールは記載されていないため、ルールを設定します。

ルールの設定
ルールの設定について
外部からの不正アクセスに対してサーバを保護するため、最も一般的な攻撃を遮断するようにファイアウォールルールを 
追加することが出来ます。 
本格的なDDoS攻撃等に対してiptablesのみによる防衛では不十分ですが、ネットワークをスキャンしてセキュリティホールを 
突くボットの被害にあうことを先送りにすることができます。
サーバへの攻撃対策のルールを設定します。
| # iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP ------① # iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP ------② # iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP ------③ | 
※上記はあくまで参考の設定例です。設定例として記載したルールは以下の内容です。 
①データを持たないパケットの接続を破棄する 
②SYNflood攻撃と思われる接続を破棄する 
③ステルススキャンと思われる接続を破棄する

許可する通信の設定
localhostからの通信とpingを許可に設定します。
| # iptables -A INPUT -i lo -j ACCEPT # iptables -A INPUT -p icmp -j ACCEPT | 

サーバの利用用途に合わせて許可するポート番号を設定します。
| # iptables -A INPUT -p tcp -m tcp --dport ** -j ACCEPT | 
※「**」は、許可するポート番号です。

[参考]
主なポート番号は以下の通りです。
| プロトコル | ポート番号 | 
|---|---|
| HTTP | 80 | 
| HTTP(SSL) | 443 | 
| SMTP | 25 | 
| SMTP(SSL) | 465 | 
| POP3 | 110 | 
| POP3(SSL) | 995 | 
| IMAP | 143 | 
| IMAP(SSL) | 993 | 
| SSH | 22 | 
※ポート番号を変更している場合は、この限りではありません。
確立済みの通信を許可に設定します。
| # iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT | 

許可した通信以外のサーバに受信するパケットを拒否し、サーバから送信するパケットを許可に設定します。
| # iptables -P INPUT DROP # iptables -P OUTPUT ACCEPT | 

iptablesの設定を設定ファイルに保存します。
| # service iptables save | 

設定の確認
iptablesの設定ファイルに設定が記載されているか確認します。
| # cat /etc/sysconfig/iptables | 


iptablesの設定を確認します。
| # iptables -L | 

ルールが設定されていれば、「iptablesの設定」は完了です。


