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を使ってファイアウォールを設定します。
次の手順で、ファイアウォールを設定します。
- Vine 4にrootでログインします。
[atsushifx@agartha atsushifx]$ su -
パスワード(P): *****
[root@agartha root]#
- iptables -Fとし、設定を破棄します。
[root@agartha root]# iptables -F
[root@agartha root]#
- 以下のように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の設定は終了です。
- 上記の設定で問題なければ、設定を/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
|