Vine Linuxでiptablesを使って、ファイアウォールを構築する方法

Vine 4 hacks

/

ファイアウォールの構築

ProEvo / Vine Evo / Vine4 hacks / ファイアウォールの構築

Vine Linux 4を安全に使うためにファイアウォールを構築する方法


1. ファイアウォールについて

1.1 ファイアウォールとはなにか?

ファイアウォール(Fire Wall)とは防火壁の意味でインターネット上で自分のネットワークを外部ネットワークからの不正アクセスから守るためのソフトウェアまたはハードウェアです。
Vine Linux 4ではiptablesというソフトウェアでファイアウォールを構築することができます。

1.2 iptablesとはなにか?

Linuxのカーネル2.4以降ではnetfilterというパケット処理のためのフレームワークがあります。iptablesはこれを制御してファイアウォールを実現するツールです。

iptablesでは、チェインと呼ばれるテーブルにパケットフィルタの設定が書き込まれます。
基本では、インターネット→クライアント向けのINPUT,ルータとして使うためのFORWARD,クライアント→インターネットのOUTPUTの3つのチェインがあり、それぞれを設定することでファイアウォールを実現します。

2. ファイアウォールの設定

2.1 iptablesによる設定の概要

iptablesは/etc/sysconfig/iptablesに設定されています。
設定の変更はiptablesコマンドを使用します。 iptablesコマンドの詳細は、日本LINUX協会 - iptablesを参照してください。

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

ここでは実際にiptablesを使ってファイアウォールを設定します。
次の手順で、ファイアウォールを設定します。

  1. Vine 4にrootでログインします。
    
    [atsushifx@agartha atsushifx]$ su -
    パスワード(P): *****
    [root@agartha root]# 
  2. iptables -Fとし、設定を破棄します。
    [root@agartha root]# iptables -F
    [root@agartha root]#
  3. 以下のようにiptablesコマンドを実行し、ファイアウォールを設定します。
    
    [root@agartha root]# iptables -A FORWARD -j DROP  <--- ROOTINGは使わないので不可
    [root@agartha root]# iptables -A INPUT -i lo -j ACCEPT  <--- localhostでの接続は全て可
    [root@agartha root]# iptables -A INPUT -p icmp -j ACCEPT  <--- icmp(ping)に応答する
    [root@agartha root]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT   <--- 接続中のデータは全て許可
    [root@agartha root]#
    [root@agartha root]# iptables -A INPUT -p tcp --dport ssh -j ACCEPT   <--- sshによる接続を許可
    [root@agartha root]# iptables -A INPUT -p tcp --dport ftp -j ACCEPT   <--- FTPによる接続を許可
    [root@agartha root]# iptables -A INPUT -p tcp --dport ftp-data -j ACCEPT
    [root@agartha root]# iptables -A INPUT -p udp --dport ftp-data -j ACCEPT   <--- FTPによるデータ転送を許可
    [root@agartha root]# iptables -A INPUT -j DROP   <--- 上記以外のプロトコルは不可
    [root@agartha root]# 
    以上で、iptablesの設定は終了です。
  4. 上記の設定で問題なければ、設定を/etc/sysconfig/iptablesに保存します。
    
    [root@agartha root]# /etc/init.d/iptables save
    [root@agartha root]# 

以上で、iptablesの設定は終了です。
このときのiptablesは次のようになります。

/etc/sysconfig/iptables
# Generated by iptables-save v1.3.6 on Wed Jan 17 11:47:36 2007
*filter
:INPUT ACCEPT [262622:20554868]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [333864:281165088]
[0:0] -A INPUT -i lo -j ACCEPT
[0:0] -A INPUT -p icmp -j ACCEPT
[672:48738] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
[1:92] -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
[0:0] -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
[0:0] -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
[0:0] -A INPUT -p udp -m udp --dport 20 -j ACCEPT
[6:376] -A INPUT -j DROP
[0:0] -A FORWARD -j DROP
COMMIT
# Completed on Wed Jan 17 11:47:36 2007

AMAZON



$Revision: 221 $
$Date: 2007-09-09 13:37:09 +0900 (日, 09 9月 2007) $