おい、iptablesの使い方を(ry その2

このエントリーをはてなブックマークに追加
952login:penguin:2005/12/26(月) 22:27:04 ID:zOEJPYC7
iptable と言うよりは、FireWall(192.168.1.51側) の設定じゃない?
953login:Penguin:2006/01/04(水) 23:07:35 ID:ucpYBJ+X
すみません、二ヶ月悩んで分かりません、どなたかヒントを頂けないかと・・・

windowsとのファイル共有を行いたいのですが、

192.168.0.0/24をすべて許可してしまえば可能なのですが、
明示的にファイル共有に必要なポートだけ開くように設定するとしたら、どのようにすればいいのでしょうか?
以下のようにやってみたのですが、繋がりませんorz
すべて許可にすると繋がります

/sbin/iptables -A OUTPUT -p udp -d 192.168.0.100 --dport 137 -j ACCEPT
/sbin/iptables -A INPUT -p udp --sport 137 -s 192.168.0.100 --dport 137 -j ACCEPT
/sbin/iptables -A INPUT -p udp --sport 138 -s 192.168.0.100 --dport 138 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -d 192.168.0.100 --dport 139 -j ACCEPT

/sbin/iptables -A INPUT -p tcp --sport 137 -s 192.168.0.100 --dport 137 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --sport 138 -s 192.168.0.100 --dport 138 -j ACCEPT

/sbin/iptables -A OUTPUT -p udp --sport 137 -d 192.168.0.255 --dport 137 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp --sport 138 -d 192.168.0.255 --dport 138 -j ACCEPT
954953:2006/01/04(水) 23:08:23 ID:ucpYBJ+X
あ、windows側が192.168.0.100です
955login:Penguin:2006/01/04(水) 23:29:59 ID:e81h3iIU
っブロードキャスト
956login:Penguin:2006/01/05(木) 00:20:24 ID:3Qm8RMBl
>955
ヒントthx

ブロードキャストはこれではダメなんでしょうか?

/sbin/iptables -A OUTPUT -p udp --sport 137 -d 192.168.0.255 --dport 137 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp --sport 138 -d 192.168.0.255 --dport 138 -j ACCEPT

ってダメだから繋がらないんですよね・・・orz
957login:Penguin:2006/01/05(木) 00:25:13 ID:djCFdq6Y
なんでtcpだけなのか > ユニキャスト
958login:Penguin:2006/01/05(木) 00:30:40 ID:3Qm8RMBl
>957
えっ?

NetBIOS データグラム サービス UDP 138
NetBIOS 名前解決        UDP 137
NetBIOS セッション サービス TCP 139

以外に必要なポートがあるのでしょうか?

思いつく変更を片端から試しているのですが、でたらめにやっていてもみつかりませんね(T。T)
959953:2006/01/05(木) 01:53:59 ID:3Qm8RMBl
ダメ、どうしても分からない・・・(T_T)
960login:Penguin:2006/01/05(木) 01:59:10 ID:T3hSX77t
>>959
dropなりrejectしたパケットのログは?
tcpdumpした結果とか。
961login:Penguin:2006/01/05(木) 02:29:35 ID:3Qm8RMBl
>960

サンクス

なんか139番の設定がおかしかったぽいス
こんな感じでできたかも?↓

/sbin/iptables -A OUTPUT -p udp --sport 137 -d 192.168.0.100 --dport 137 -j ACCEPT
/sbin/iptables -A INPUT -p udp --sport 137 -s 192.168.0.100 --dport 137 -j ACCEPT

/sbin/iptables -A OUTPUT -p udp --sport 138 -d 192.168.0.100 --dport 138 -j ACCEPT
/sbin/iptables -A INPUT -p udp --sport 138 -s 192.168.0.100 --dport 138 -j ACCEPT

/sbin/iptables -A OUTPUT -p tcp -d 192.168.0.100 --sport 139 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -s 192.168.0.100 --dport 139 -j ACCEPT

/sbin/iptables -A OUTPUT -p udp --sport 137 -d 192.168.0.255 --dport 137 -j ACCEPT

なんか変ですかね?
まだ理解が足りないのですが、とりあえず今日は寝ますm(__)m
962login:Penguin:2006/01/05(木) 05:09:49 ID:6kvsDZb5
うちはこんなかんじかな。

/sbin/iptables -A IN_LAN -p tcp --dport 139 -j ACCEPT
/sbin/iptables -A IN_LAN -p tcp --dport 445 -j ACCEPT
/sbin/iptables -A IN_LAN -p udp --dport 137:138 -j ACCEPT

/sbin/iptables -A OUT_LAN -p tcp --dport 139 -j ACCEPT
/sbin/iptables -A OUT_LAN -p tcp --dport 445 -j ACCEPT
/sbin/iptables -A OUT_LAN -p udp --dport 137:138 -j ACCEPT

・うちのは最初にアドレスやインターフェースなどを見て専用のチェーン(IN_LAN/OUT_LAN)に
 送ってから処理してのでその辺は了承されたし。
・実際にはconnection trackingも使っているがそこは省く。
・状況によってはsrc portがhigh portになる場合があるので、dst portだけで見ている。
 たとえばnmblookupとか。

んで、IN_LANチェーンでのアドレスチェックがあるので、ブロードキャスト受信のルールだけ別。
/sbin/iptables -A INPUT -i $ETH_LAN -p udp --dport 137:138 -j ACCEPT
963login:Penguin:2006/01/05(木) 17:55:11 ID:M3EUmf/b

多分下のでできるけど、
問題の切り分けができていないのでよくない。
ファイアウォールをOFFにしてみて接続できるのか、
iptablesを設定したときにマシン名ではなくIPアドレスで接続はできるのか、
等々何をやったのかがさっぱりわからん。

/sbin/iptables -A INPUT -p tcp -m multiport --source-port 135,137,138,139,445 -j ACCEPT
/sbin/iptables -A INPUT -p udp -m multiport --source-port 135,137,138,139,445 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m multiport --destination-port 135,137,138,139,445 -j ACCEPT
/sbin/iptables -A INPUT -p udp -m multiport --destination-port 135,137,138,139,445 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m multiport --source-port 135,137,138,139,445 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp -m multiport --source-port 135,137,138,139,445 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m multiport --destination-port 135,137,138,139,445 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp -m multiport --destination-port 135,137,138,139,445 -j ACCEPT
964login:Penguin:2006/01/05(木) 21:39:39 ID:qK5BLKuu
sambaデーモンが握ってるポートはこんな感じ。

# netstat -lpn|grep mbd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 956/smbd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 956/smbd
udp 0 0 0.0.0.0:137 0.0.0.0:* 962/nmbd
udp 0 0 0.0.0.0:138 0.0.0.0:* 962/nmbd

開ける必要があるのはTCP139、TCP445、UDP137、UDP138。
TCPはユニキャストのみ。UDPはユニキャスト/ブロードキャスト両方あり。

あと、ip_conntrackを使えば帰りのパケットについてのルールまで細かく設定しないですむ。
965login:Penguin:2006/01/05(木) 22:50:24 ID:fjjMfhhc
>>964
TCPはその仕様上ユニキャストだけだと思われ・・
966login:Penguin:2006/01/05(木) 23:42:26 ID:3Qm8RMBl
うえ・・・帰ってきてもう一度試してみたのですが、やっぱりだめだったorz

と思ったらレスが・・・アリガトウゴザイマスm(__)m

アドバイスをよく咀嚼してみます

※ポリシーを全部ACCEPTにしてしまえば接続は普通にできました
IPアドレスで検索かけると表示されてちゃんと読み書きはできます

でも近くのコンピュータの一覧とかに表示されないのです
これをなんとか表示できるようにしたい
967login:Penguin:2006/01/05(木) 23:45:27 ID:3Qm8RMBl
すみません、何がやりたいかと言うと、今までローカルエリア(192.168.0.0/24)は全部許可、というふうに
やっていたのですが、それでも運用上は問題ないかも知れないのですが、パラノイア的に、明示的に
ファイル共有のみにアクセスを制限したいのです。

※さらに言うなら、同じネットワーク上にいる他のPCからは見えないように、許可した特定のPCからのみ見えるようにしたいのですが、
そこまではまだ良く分かっていないので、とりあえずは後回しで・・・
968login:Penguin:2006/01/05(木) 23:52:09 ID:3Qm8RMBl
一度iptablesを全部許可にして接続が成立してからは、iptablesのルールを制限しても普通に使えます
PCを再起動すると、ネットワーク上に見えなくなります
969login:Penguin:2006/01/06(金) 00:08:18 ID:eW1Qt+9f
あれ?windows側の問題かも・・・orz
970login:Penguin:2006/01/06(金) 00:12:14 ID:ZqAtYqYU
>>965
いやまあそうなんだけど、UDPだけだとつい寂しくて書いちゃいました。

>>966
うーん、ほんじゃうちのiptables設定で、samba周りとかをきっちり抜き出して書いておくよ。
参考になればいいが。

>>967
私だったらCIFSでのブラウジングと名前解決をiptablesで止めちゃって、名前解決は
DNSの名前解決にしちゃうかな。んで、TCP:139だけ開けるとか。
971login:Penguin:2006/01/06(金) 00:13:26 ID:ZqAtYqYU
こんなんです。
ETH_LAN=eth0

ADDR_LAN=192.168.6.6
NET_LAN=192.168.6.0/24

TCP=" -p tcp -m state --state NEW "
UDP=" -p udp -m state --state NEW "
ICMP=" -p icmp -mstate --state NEW "

/sbin/modprobe ip_conntrack &> /dev/null

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

/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT --modprobe=/sbin/modprobe
/sbin/iptables -N IN_LAN
/sbin/iptables -A INPUT -i $ETH_LAN -s $NET_LAN -d $ADDR_LAN -j IN_LAN
/sbin/iptables -A IN_LAN $TCP --dport 139 -j ACCEPT
/sbin/iptables -A IN_LAN $TCP --dport 445 -j ACCEPT
/sbin/iptables -A IN_LAN $UDP --dport 137:138 -j ACCEPT

/sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT --modprobe=/sbin/modprobe
/sbin/iptables -N OUT_LAN
/sbin/iptables -A OUTPUT -o $ETH_LAN -s $ADDR_LAN -d $NET_LAN -j OUT_LAN
/sbin/iptables -A OUT_LAN $TCP --dport 139 -j ACCEPT
/sbin/iptables -A OUT_LAN $TCP --dport 445 -j ACCEPT
/sbin/iptables -A OUT_LAN $UDP --dport 137:138 -j ACCEPT

/sbin/iptables -A INPUT -i $ETH_LAN -p udp --dport 137:138 -j ACCEPT
972login:Penguin:2006/01/06(金) 00:31:39 ID:ZqAtYqYU
あ、OUTPUTのポリシーがACCEPTになってたのはちょっとした間違いです。
DROPに戻しとかないと‥
973969:2006/01/06(金) 11:02:47 ID:whgGFtCr
とうとう、ネットワークにつながらなくなってしまいました
Win2kから見ると、Linuxマシンの名前があるのに(iptablesは全てACCEPTにしてあります)
「サーバーはリモート管理用に構成されていません」といわれます

これはWin側の問題なのかLinux側の問題なのかも分からない・・・orz

#遠隔でSWATは操作できるのですが、リモートコンソール(putty)はログインした瞬間に閉じてしまいます・・・
974login:Penguin:2006/01/06(金) 11:04:41 ID:whgGFtCr
Linux再インストールしたら直りますかね(TT)
975login:Penguin:2006/01/06(金) 11:13:20 ID:8n5t7raw
>>974
Windowsじゃあるまいし、何でもかんでも再インストールすれば
いいと言うものではないぞ。きちんと原因を追及すべきだ。

まずはLinuxマシン側のログ(/var/log/messages など、とりあえず /var/log 以下)
を確認すれ。
976login:Penguin:2006/01/06(金) 11:51:23 ID:3sV8XQ6E
>>974
なんか急にレベルが下がったな。
わりとネットワークの知識はある香具師だと思ってたのに。
977login:Penguin:2006/01/06(金) 12:01:00 ID:d5TMImea
再インストールしても、結局同じところではまる。
978login:Penguin:2006/01/06(金) 13:27:42 ID:whgGFtCr
>>975
> >>974
> Windowsじゃあるまいし、何でもかんでも再インストールすれば
> いいと言うものではないぞ。きちんと原因を追及すべきだ。

すみません、それで一度、問題の原因を突き止めることができて大幅な改善をしたことがあったもので^^;
(複数のマシンにLinuxを入れ、問題のマシンと別にインストールしたてのマシンを比較した)
今回は比較するマシンがないのですが、安易な発想でしたm(__)m

> まずはLinuxマシン側のログ(/var/log/messages など、とりあえず /var/log 以下)
> を確認すれ。

確認してみますですm(__)m

>>976
すみません、多分初心者とは言えないくらいの知識はあると思うのですが、
Linuxは始めて数ヶ月、ようやっとファイルサーバーくらいは実用になるようになったくらいのレベルです・・・m(__)m
979login:Penguin:2006/01/06(金) 13:33:52 ID:whgGFtCr
>>975
> まずはLinuxマシン側のログ(/var/log/messages など、とりあえず /var/log 以下)
> を確認すれ。

なんかめっちゃ怪しい行を発見・・・^^;

smbd[1396]: '/tmp' does not exist or is not a directory, when connecting to [IPC$]

さて、どうしたものか・・・・orz
980login:Penguin:2006/01/06(金) 13:43:32 ID:Gr+QGpo+
もう iptables 関係ないな。
あと、引用は最小限に。
981login:Penguin:2006/01/06(金) 13:52:18 ID:whgGFtCr
ごめんなさい、でもほんとにもうお手上げ状態です・・・(TtT)

またiptablesの問題で思い当たるところがあったのですが、
それを試すところまでたどり着けませんorz

とりあえず、他を当たってみますね・・・m(__)m
982login:Penguin:2006/01/06(金) 13:56:04 ID:8n5t7raw
>>979
とりあえず mkdir /tmp
983login:Penguin:2006/01/06(金) 13:59:21 ID:whgGFtCr
>982

既におもいっきりあるんですよ、中身満載で・・・
全部消してもう一度作り直してみますねm(__)m


※sambaでIPC$と言う共有を作ってみましたがダメですね^^;

984login:Penguin:2006/01/06(金) 14:03:37 ID:whgGFtCr
だめですた・・・orz

とりあえず仕事に戻りますです(TT)
985login:Penguin:2006/01/06(金) 14:11:35 ID:Gr+QGpo+
980 越えたことだし、くだ質に移動すれ。
986login:Penguin:2006/01/06(金) 14:23:04 ID:1f/zVdvz
さて、新スレだけど

【ファイアウォール】iptablesの使い方【ルーティング】

とかどうですか?
本当はもっと需要があるスレだと思うんですが。
987login:Penguin:2006/01/06(金) 14:28:00 ID:Gr+QGpo+
普通に「iptables その3」でいいじゃん。
988login:Penguin:2006/01/06(金) 16:12:38 ID:JS7x81GH
/tmpのパーミッションがえらいことになってるのではない?
普通はdrwxrwxrwtで、所有者はrootだと思うが。
989login:Penguin:2006/01/06(金) 16:45:23 ID:whgGFtCr
>>988
あども。仕事終わりました。てか仕事ない・・・orz

それはともかく、パーミッションも確認したんですが、関係ないようで・・・
一応全部許可にしてみましたが症状かわらず・・・

でも、どうみても/tmpがないか、ディレクトリでないって言われてるんですよね・・・
ホントにわからん(--ll)



990login:Penguin:2006/01/06(金) 16:49:29 ID:1G7EvDIY
inode不足とか?だったら別のエラーが出そうなもんだが。
991login:Penguin:2006/01/06(金) 17:39:29 ID:1f/zVdvz
>>987
ファイアウォールとかルーティングで
検索に引っかかればいいかなと思ったんだけど・・・・
992login:Penguin:2006/01/06(金) 19:41:39 ID:vIIiRCFV
iptablesってファイアウォールとしか使ってなかったんだけど、ルーティングもできるの?
993login:Penguin:2006/01/06(金) 19:56:40 ID:7aXYVstf
>>989
まずディレクトリサイズの確認。
$ df -h /tmp

で、それでも問題無いようならsmbdのsambaデーモンをを再起動してみる。
994login:Penguin:2006/01/06(金) 20:03:48 ID:LIc0in1e
>>992
ルーティングの際のフィルタリングはiptablesのFORWARDチェインで制御できる。
が、ルーティング自体はiptablesの仕事じゃないな。
995login:Penguin:2006/01/06(金) 21:59:54 ID:1f/zVdvz
>>994
まあカーネルっちゃあカーネルだよね。
でも行き先を制御するしルーティングっちゃあルーティング?
996login:Penguin:2006/01/07(土) 05:44:32 ID:BGTF/3XJ
つiproute
997login:Penguin:2006/01/07(土) 09:14:00 ID:lNsnmDoV
じゃあ
【鉄壁】iptablesの使い方 3【ファイアウォール】
でいい?
998login:Penguin:2006/01/07(土) 09:24:23 ID:lNsnmDoV
埋め
999login:Penguin:2006/01/07(土) 09:25:07 ID:lNsnmDoV
次スレ

【鉄壁】iptablesの使い方 3【ファイアウォール】
http://pc8.2ch.net/test/read.cgi/linux/1136593433/l50
1000login:Penguin:2006/01/07(土) 09:30:37 ID:E9qfrv39
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。