さとーC++ぶろぐ

アクセスカウンタ

zoom RSS Linuxでファイヤーウォール設定( iptables )

<<   作成日時 : 2007/03/12 14:03   >>

ブログ気持玉 0 / トラックバック 1 / コメント 0

Linuxでファイヤーウォールの設定。

ファイウォールを設定しないのは,家に鍵をかけずに出かけている様なものだ。ハッカー(クラッカーやね)やウイルスの危険が高くなる。

対策をしないと,のっとられる可能性が高くなる。
のっとられると,被害者となるのだが,のっとられた後に,踏み台(別サーバ攻撃拠点)にされたら,被害者じゃなくて加害者になってしまう。

余計な心配ごとは増やさないことだ。


ファイヤーウォールを設定するには iptables というコマンドを使う。

別サーバをたてて,そちらでファイヤーウォールのコンピュータを用意する場合は
http://www.atmarkit.co.jp/flinux/rensai/security04/security04a.html
が参考になります。(NAT http://e-words.jp/w/NAT.html )

ここでは,ファイヤーウォールを自分自身でたてる場合の方法です。

Debian時

デフォルトのインストールでは,iptablesはインストールされるが,有効にはなっていない。

サーバとして,インターネットに公開する場合は,有効にしないと,あぶなひ。
ファイヤーウォールがない状態でも,Windowsよりはましだが,常識的に考えて危険だ。

設定スクリプトの例 : http://www2s.biglobe.ne.jp/~satosi/soft/iptables_setting.sh
↑を編集・保存して実行すれば,設定を変更&保存できる。
(準備として mkdir /var/lib/iptables を実行しておこう。 /var/lib/iptables ディレクトリが無いと設定が保存できない)

参考:iptables設定スクリプトのベースを簡単に作れるページ
  http://easyfwgen.morizot.net/gen/

設定方法:

まず, iptablesが使える状態か確認
以下を実行 ( -L は一覧で, -nはIPアドレスから,DNSで逆引きしない設定。なくても良いがあれば表示が速くなる)
iptables -L -n

コマンドが使えなければ, apt-get install iptables を実行すれば,インストールできる。(Debianでのソフトのインストールはありえないぐらい簡単だ。)

Debian のときは,有効なときの設定以外に無効なときの設定も必要なので,先に無効なときの設定を作成。

ルールのクリアー
iptables -F

接続があったとき,全て受け付ける
iptables -P INPUT ACCEPT

ルーター用のものなので,受け付けない
iptables -P FORWARD DROP

こちらから,他のサーバへの接続をするのは,全て受け付ける
iptables -P OUTPUT ACCEPT

無効なときの設定を保存
/etc/init.d/iptables save inactive

なんか,最新版では, /etc/init.d/iptables がなくなっているっぽい。
 対策: /etc/init.d/iptables がない場合
 http://debian.fam.cx/index.php?cmd=read&page=Software&word=iptables#content_1_44
 
 1. ipmasq や firehol などを利用する

 2. /etc/init.d にスクリプトを置いて init スクリプトに登録する
  /usr/share/doc/iptables/examples/oldinitdscript.gz を /etc/init.d/iptables として展開。

 3. /etc/network/interfaces に書く
    iface eth0 inet dhcp
     pre-up /etc/myfirewall.sh

 4. /etc/network/*.d/ 等にスクリプトを置く




もし,ここで,
/var/lib/iptables/inactive: No such file or directory
の様なメッセージが出たら, /var/lib/iptables ディレクトリが存在しないので,以下を実行。

mkdir /var/lib/iptables

再度 /etc/init.d/iptables save inactive を実行。

/var/lib/iptables/inactive に無効なときの設定が保存される。


次は,有効なときの設定。
そのまま実行しても良いが,スクリプトファイルなどに書いておくと,設定が変わったときに編集して実行するだけでいいのでお勧め。


#!/bin/sh

/sbin/iptables -F
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT ACCEPT

# ping(icmp) とローカル( lo )を許可
/sbin/iptables -A INPUT -p icmp -j ACCEPT
/sbin/iptables -A INPUT -i lo -j ACCEPT

# Web http(80) https(443) と SSH(22)を許可 SSHは,-sオプションで,受付IP制限している
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 443 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -s '192.168.0.0/24' --dport 22 -j ACCEPT

# 実際の通信を可能にする。これが無いと通信できない。
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 設定を保存する
/etc/init.d/iptables save active


保存した設定ファイルの編集はややこしいので,設定を変更しやすいように実行するコマンド定スクリプトに書いておき (例 : http://www2s.biglobe.ne.jp/~satosi/soft/iptables_setting.sh ),これを書き換えて実行することで,設定を変更するほうが現実的で簡単。


最後,Linux起動時に,自動的に有効にする方法:

デフォルトで起動しないので,登録する。

# 起動時に自動で起動の登録
update-rc.d iptables defaults

# 起動時に自動で起動の登録をなくす。
update-rc.d -f iptables remove





参考 よく使うと思うポート:

DNS 53 (tcp/udp)
http: 80(tcp)
https: 443(tcp)
ssh(SSHのテレネット, SFTPdなど): 22(tcp)
telnet: 23(tcp)
ntp: 123(tcp)
ftp: 21(tcp)
samba: 137,138(udp)
netatalk: 548(tcp/udp)
Postgres: 5432(tcp)
MySQL: 3306(tcp)
X-Window: 6000〜6063




参考文献:
xinetd, iptablesでセキュリティ:Debian Linux + IDE RAID 1対応自作パソコン記録
http://linux.webseason.net/security/index2.html
Debian Linux http://kfujio.blog78.fc2.com/blog-date-200610.html
駆け出しのdebian http://debian.8ware.com/content/blogcategory/10/44/

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(1件)

タイトル (本文) ブログ名/日時
Linux debain インストールメモ サーバー用途
Linux debain インストールメモ サーバー用途 ...続きを見る
さとーC++ぶろぐ
2007/11/06 18:17

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
URL(任意)
本 文
Linuxでファイヤーウォール設定( iptables ) さとーC++ぶろぐ/BIGLOBEウェブリブログ
文字サイズ:       閉じる