Linux自宅サーバー構築
LinuxサーバーTOP
BBS
Linuxサーバー構築
INFORMATION
LINK
MAIL
 

 

iptables(パケットフィルタリング)の設定

最終更新 2003年6月14日

それではiptablesの設定です。
なんでこんなところでiptablesがでてきたかというとそろそろクライアント(妻)から早くインターネットにつなげられるようにしてくれーと文句が出たのです。これがルータの下にサーバもクライアントもぶら下がっている形ならサーバ構築しながら他のクライアントもインターネットが利用できます。今回のサーバのnicを2枚つけた形だとそうもいきません。

ところで私のサイトのこのページを見ているあなたのところはどんなネットワークなのでしょうか・・・?昨日PCを買ってきた人がサーバ構築しようとここを見ている人はいないと思いますし・・・・・またベテランの方であればこんな駄文は目を通さないでしょう・・・ということは大体PCさわり始めて何年かたって常時接続だし何かやろうかなという方でしょうか。まぁこんぴーた時代ですし一家に一台は終わり一人一台の時代ですから・・・さぁだんだん自分でもなにを書いているのかわからなくなってきましたので・・・・サーバにぶら下がったPC達がネットオークション、メールやりたがっています。早く利用できるようにしましょう。 えっ直接ルータにつなげればいいだろうって?実はさっきまでそうなっていました。そろそろ何とかしなければ2枚目のnicが泣いています。

一番最初のインストールのときに設定したファイアーウォールのところで”高”を設定しました。この状態ではいくらサーバにpingが通ろうともインターネットに出て行くことはできません。当然lan内のPC達はプライベートipアドレスが割り振られています。あぁあぁーdnsもdhcpも設定しなければぁぁっぁー・・・とりあえずサーバとちがうipアドレスを振っておきましょう。
私はメインクライアント(うちでいちばん強いセレロン1.7Gだっ!)にサーバメンテ用として固定ipを割り振っています。(192.168.0.100) また他のPCはdhcp(192.168.0.101〜120)で割り振る予定です。

ファイアーウォールの構築です。ひとつひとつルールを入力してもよいのですがOSを再起動するたびに同じ作業をくりかえすのも大変です それではお手軽に行きましょう。下のスクリプトをみてください。こいつをどこか適当なファイル名で保存しましょう。私のところでは赤字にしてある”#”をはずし実行しました。皆さん私を信じないようにしてください。環境によってそれぞれ違いますしまたルールの変更、追加などあったりします。これでファイアウォール突破されても知りません・・くれぐれも自己責任でお願いいたします。まぁこれでPCたちがインターネットにつなげることができて満足でしたが(妻に)一言いわれました ”なんかかわったの?

#!/bin/sh
#################################################################
## 環境設定
##
## iptablesのパス
IPTABLES="/sbin/iptables"
##
##
##FW_OUT="192.168.44.11"
##FW_IN="192.168.0.11"
##MAINT="192.168.0.100"
##ANY="0.0.0.0"
##
## 内部ネットワークにつながるネットワークインターフェイス
FW_IN="eth0"
##
## 外部ネットワーク(インターネット)につながるインターフェイス
## 環境に合わせてPPP,eth?などと書き換えます。
FW_OUT="eth1"
##
## 家庭内ネットワークのIPアドレス
## "ネットワークアドレス/サブネットマスク"の形式で指定
INT_NET="192.168.0.0/24"
#################################################################
## モジュールの組み込み
## カーネル構築時にnetfiler関連をモジュールにしている場合はここで組み
## 込んでください(コメントアウトしてあるので、必要に応じて行の最初に
## あるコメントマーク“#”を外します)。

# /sbin/modprobe ip_tables
# /sbin/modprobe iptable_filter
# /sbin/modprobe iptable_nat
# /sbin/modprobe iptable_mangle
# /sbin/modprobe ip_conntrack_ftp
# /sbin/modprobe ip_nat_ftp
#################################################################
## チェーンの初期化
# $IPTABLES -F
# $IPTABLES -X
#################################################################
## デフォルトポリシーの定義
## INPUTチェーン(このLinuxマシンあてパケット)→破棄
## OUTPUTチェーン(このLinuxマシンから発信するパケット)→受け入れる
## FORWARDチェーン(このLinuxマシンを通って転送するパケット)→破棄
# $IPTABLES -P INPUT DROP
# $IPTABLES -P OUTPUT ACCEPT
# $IPTABLES -P FORWARD DROP
#################################################################
## ローカルループバックからのパケットはすべて受け入れる
# $IPTABLES -A INPUT -i lo -j ACCEPT

## 内部ネットワークから内部向けインターフェイスへのパケットを受け入れる
# $IPTABLES -A INPUT -i $FW_IN -s $INT_NET -j ACCEPT
#################################################################
## 外部からの接続を許さないIPアドレスを定義
## ここでは、外部ネットワーク向けのインターフェイスから入って来るべきでないパ
## ケットを破棄しています。CATVインターネットなどでは、プライベートアドレスを
## 利用しているところもありますので、その場合は必要なアドレスが破棄されないよ
## うに書き換えてください。

## 内部ネットワークのIPアドレスを騙るパケットを破棄
# $IPTABLES -A INPUT -i $FW_OUT -s $INT_NET -j DROP

## 発信元がループバックアドレス、プライベートアドレスのパケットを破棄
# $IPTABLES -A INPUT -i $FW_OUT -s 127.0.0.0/8 -j DROP
# $IPTABLES -A OUTPUT -o $FW_OUT -s 127.0.0.0/8 -j DROP
# $IPTABLES -A INPUT -i $FW_OUT -s 10.0.0.0/8 -j DROP
# $IPTABLES -A OUTPUT -o $FW_OUT -s 10.0.0.0/8 -j DROP
# $IPTABLES -A INPUT -i $FW_OUT -s 172.16.0.0/12 -j DROP
# $IPTABLES -A OUTPUT -o $FW_OUT -s 172.16.0.0/12 -j DROP
# $IPTABLES -A INPUT -i $FW_OUT -s 192.168.0.0/16 -j DROP
# $IPTABLES -A OUTPUT -o $FW_OUT -s 192.168.0.0/16 -j DROP

## 宛先がループバックアドレス、プライベートアドレスのパケットを破棄
# $IPTABLES -A INPUT -i $FW_OUT -d 127.0.0.0/8 -j DROP
# $IPTABLES -A OUTPUT -o $FW_OUT -d 127.0.0.0/8 -j DROP
# $IPTABLES -A INPUT -i $FW_OUT -d 10.0.0.0/8 -j DROP
# $IPTABLES -A OUTPUT -o $FW_OUT -d 10.0.0.0/8 -j DROP
# $IPTABLES -A INPUT -i $FW_OUT -d 172.16.0.0/12 -j DROP
# $IPTABLES -A OUTPUT -o $FW_OUT -d 172.16.0.0/12 -j DROP

# $IPTABLES -A INPUT -i $FW_OUT -d 192.168.0.0/16 -j DROP
# $IPTABLES -A OUTPUT -o $FW_OUT -d 192.168.0.0/16 -j DROP
#################################################################
## Windowsネットワーク(NetBIOS over TCP/IP)の送信パケットを破棄
# $IPTABLES -A OUTPUT -o $FW_OUT -p tcp --dport 137:139 -j DROP
# $IPTABLES -A OUTPUT -o $FW_OUT -p udp --dport 137:139 -j DROP
# $IPTABLES -A OUTPUT -o $FW_OUT -p tcp --dport 445 -j DROP
# $IPTABLES -A OUTPUT -o $FW_OUT -p udp --dport 445 -j DROP
#################################################################
## このLinuxマシンへの接続を受け入れるサービスを定義
## 外部ネットワーク向けのインターフェイスへの接続を許可するサービスを指定します
## このLinuxマシンで外部ネットワークに公開するサービスだけを書きましょう。
## ここで指定されていないポートは閉じられます。

## FTP、SSH、SMTP、DNS、WWWを公開する例
# FTP
# $IPTABLES -A INPUT -i $FW_OUT -p tcp --dport 20 -j ACCEPT
# $IPTABLES -A INPUT -i $FW_OUT -p tcp --dport 21 -j ACCEPT

# SSH
# $IPTABLES -A INPUT -i $FW_OUT -p tcp --dport 22 -j ACCEPT

# SMTP
# $IPTABLES -A INPUT -i $FW_OUT -p tcp --dport 25 -j ACCEPT

# DNS
# $IPTABLES -A INPUT -i $FW_OUT -p tcp --dport 53 -j ACCEPT
# $IPTABLES -A INPUT -i $FW_OUT -p udp --dport 53 -j ACCEPT

# WWW
# $IPTABLES -A INPUT -i $FW_OUT -p tcp --dport 80 -j ACCEPT
#################################################################
## ICMPのパケットは受け入れる
# $IPTABLES -A INPUT -p icmp -j ACCEPT
# $IPTABLES -A OUTPUT -p icmp -s $FW_OUT --icmp-type 0 -d $MAINT -j ACCEPT
# $IPTABLES -A INPUT -p icmp -s $MAINT --icmp-type 8 -d $FW_OUT -j ACCEPT

## すでに接続されているものは受け入れる
# $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#################################################################
## IPマスカレードの設定

## natテーブルの初期化
# $IPTABLES -F -t nat
# $IPTABLES -X -t nat

## 外部ネットワーク向けインターフェイスから出ていくパケットに対し、
## IPマスカレードを適用
# $IPTABLES -t nat -A POSTROUTING -o $FW_OUT -s $INT_NET -j MASQUERADE

## 発信元または宛先が内部ネットワークのパケットはFORWARDを許可する
# $IPTABLES -A FORWARD -s $INT_NET -j ACCEPT
# $IPTABLES -A FORWARD -d $INT_NET -j ACCEPT

## IP転送を有効にする
# echo 1 > /proc/sys/net/ipv4/ip_forward


#chmod 744 ファイル名 <= 700でもいいかな
#./ファイル名 <=実行
#/sbin/iptables-save > /etc/sysconfig/iptables <=設定を反映させる
#cat /et/sysconfig/iptables <=書き込まれているでしょ?

これでサーバのしたにぶらさがっているPCたちが思う存分セキュア(?)にネットオークションを楽しめます。以上インタネットのつなげ方・・じゃなくてiptablesの設定、ファイアウォールの構築についてでした。

<=2003年6月14日現在まだサーバ君はフロアに放置状態


linuxトップ | VNCの設定にもどる | セカンダリDNSサーバの登録

 


linux自宅サーバーPAOPAO
リンクはご自由に!
yasu@paopao.org
 
パオパオ、ぱおぱお