さくらVPS初期設定 その3(iptables編)

iptablesの設定

新しく契約したさくらVPS(バーチャル・プライベート・サーバー)の初期設定を備忘録として記載します。Macから接続しているので、Macユーザーの参考になればと。
今回は「iptablesの設定」です。

3−1. iptablesとは

 iptablesとは、IPv4 のパケットフィルタとNAT管理するツールのことです。ファイアーウォール機能となるので、用途を勘案し理解しながら進めて行きたいと思います。

3−2. iptablesコマンド

 iptablesを設定する上で、必要な項目を纏めます。

チェイン

チェイン 説明
-P (policy) 指定チェインのポリシーを変更
-A (–append) 指定チェインに新しいルールを追加
-D (–delete) 指定チェインのルールを削除
-N (–new-chain) 新しいユーザー定義チェインを作成
-X (–delete-chain) 指定ユーザー定義チェインを削除
-F ルールの初期化(※policyの設定は初期化されません)

条件

条件 説明
-j (–jump) ターゲット 条件に合った際のアクションを指定
-p (–protocol) プロトコル名 プロトコル名(tcp, udp, icmp, all)を指定
-s (–source) IPアドレス 送信元アドレス(IPアドレスかホスト名)を指定
-d (–destination) IPアドレス 送信先アドレス(IPアドレスかホスト名)を指定
–sport 送信元ポート番号 送信元ポート番号(80, httpなど)を指定
–dport 宛先ポート番号 宛先ポート番号(80, httpなど)を指定
-i (–in-interface) デバイス パケット入力のインターフェースを指定
-o (–out-interface) デバイス パケットを出力するインターフェースを指定

アクション

アクション 説明
ACCEPT パケットの通過を許可
DROP 通過しようとするパケットの破棄
LOG ログの取得
REJECT パケットを拒否し、ICMPメッセージを返信

3−3. 現在の登録状況を確認

 まだiptablesの登録を行っていないので、何も登録されていないと思いますが、確認してみます。登録したユーザーnewuserで接続します。

[newuser@ ~]$ sudo iptables -nL
[sudo] password for newuser: 
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

 

 何も登録されていませんので、設定を行って行きたいと思います。

3−4. iptablesの追加方法

 iptabkesの追加: iptables -A <チェイン> <条件> <アクション>で追加を行います。

*filter
# INPUTチェイン宣言(全ての入力パケットを許可する)
:INPUT ACCEPT [0:0]
# FORWARDチェイン宣言(全ての転送パケットを許可する)
:FORWARD ACCEPT [0:0]
# OUTPUTチェイン宣言(全ての出力パケットを許可する)
:OUTPUT ACCEPT [0:0]

#Firewallのセッティング
:Firewall-setting1-INPUT - [0:0]
-A INPUT -j Firewall-setting1-INPUT
-A FORWARD -j Firewall-setting1-INPUT
# ループバックインターフェースへの入力パケットを許可する
-A Firewall-setting1-INPUT -i lo -j ACCEPT
# 全てのICMPパケットを許可する。
-A Firewall-setting1-INPUT -p icmp --icmp-type any -j ACCEPT
# Remote Mail Checking Protocolを許可する。
-A Firewall-setting1-INPUT -p 50 -j ACCEPT
# IMP Logical Address Maintenanceを許可する。
-A Firewall-setting1-INPUT -p 51 -j ACCEPT
# multicastDNSを許可する
-A Firewall-setting1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
# 接続状態が「ESTABLISHED(確立),RELATED」の時にアクセスを許可する
-A Firewall-setting1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 外部からTCPポート20番(ftp-data接続)へのアクセスを許可
-A Firewall-setting1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
# 外部からTCPポート21番(ftp接続)へのアクセスを許可
-A Firewall-setting1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
# 外部からTCPポートxxxxxx番(SSH接続)へのアクセスを許可
-A Firewall-setting1-INPUT -m state --state NEW -m tcp -p tcp --dport xxxxxx -j ACCEPT
# 外部からTCPポート80番(HTTP接続)へのアクセスを許可
-A Firewall-setting1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# 拒否された ICMP パケットの応答としてエラーパケットを返す
-A Firewall-setting1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

 

上記のような内容で登録します。</ br> ssh接続で使用するポートはxxxxxとしているので、自分で設定したポート番号に変更します。

]
[newuser@ ~]$ sudo vi /etc/sysconfig/iptables     

 

iptablesというファイルが無いので、新しい画面が開きます。上記で考えたファイアウォールパターンをコピーしてペーストします。「:wq」で書き込み終了します。登録したiptabelesを有効にするため再起動します。再起動後、iptables -nLで有効になった内容を確認します。

[newuser@ ~]$ sudo /etc/rc.d/init.d/iptables restart
[newuser@ ~]$ sudo iptables -nL

 

これでファイアフォールの設定が終わったので、次はApacheのインストールを行いたいと思います。

コメント

タイトルとURLをコピーしました