iptable と言うよりは、FireWall(192.168.1.51側) の設定じゃない?
953 :
login: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
954 :
953:2006/01/04(水) 23:08:23 ID:ucpYBJ+X
あ、windows側が192.168.0.100です
っブロードキャスト
956 :
login: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
なんでtcpだけなのか > ユニキャスト
958 :
login:Penguin:2006/01/05(木) 00:30:40 ID:3Qm8RMBl
>957
えっ?
NetBIOS データグラム サービス UDP 138
NetBIOS 名前解決 UDP 137
NetBIOS セッション サービス TCP 139
以外に必要なポートがあるのでしょうか?
思いつく変更を片端から試しているのですが、でたらめにやっていてもみつかりませんね(T。T)
959 :
953:2006/01/05(木) 01:53:59 ID:3Qm8RMBl
ダメ、どうしても分からない・・・(T_T)
>>959 dropなりrejectしたパケットのログは?
tcpdumpした結果とか。
961 :
login: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
うちはこんなかんじかな。
/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
多分下のでできるけど、
問題の切り分けができていないのでよくない。
ファイアウォールを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
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を使えば帰りのパケットについてのルールまで細かく設定しないですむ。
>>964 TCPはその仕様上ユニキャストだけだと思われ・・
966 :
login:Penguin:2006/01/05(木) 23:42:26 ID:3Qm8RMBl
うえ・・・帰ってきてもう一度試してみたのですが、やっぱりだめだったorz
と思ったらレスが・・・アリガトウゴザイマスm(__)m
アドバイスをよく咀嚼してみます
※ポリシーを全部ACCEPTにしてしまえば接続は普通にできました
IPアドレスで検索かけると表示されてちゃんと読み書きはできます
でも近くのコンピュータの一覧とかに表示されないのです
これをなんとか表示できるようにしたい
967 :
login:Penguin:2006/01/05(木) 23:45:27 ID:3Qm8RMBl
すみません、何がやりたいかと言うと、今までローカルエリア(192.168.0.0/24)は全部許可、というふうに
やっていたのですが、それでも運用上は問題ないかも知れないのですが、パラノイア的に、明示的に
ファイル共有のみにアクセスを制限したいのです。
※さらに言うなら、同じネットワーク上にいる他のPCからは見えないように、許可した特定のPCからのみ見えるようにしたいのですが、
そこまではまだ良く分かっていないので、とりあえずは後回しで・・・
968 :
login:Penguin:2006/01/05(木) 23:52:09 ID:3Qm8RMBl
一度iptablesを全部許可にして接続が成立してからは、iptablesのルールを制限しても普通に使えます
PCを再起動すると、ネットワーク上に見えなくなります
969 :
login:Penguin:2006/01/06(金) 00:08:18 ID:eW1Qt+9f
あれ?windows側の問題かも・・・orz
>>965 いやまあそうなんだけど、UDPだけだとつい寂しくて書いちゃいました。
>>966 うーん、ほんじゃうちのiptables設定で、samba周りとかをきっちり抜き出して書いておくよ。
参考になればいいが。
>>967 私だったらCIFSでのブラウジングと名前解決をiptablesで止めちゃって、名前解決は
DNSの名前解決にしちゃうかな。んで、TCP:139だけ開けるとか。
こんなんです。
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
あ、OUTPUTのポリシーがACCEPTになってたのはちょっとした間違いです。
DROPに戻しとかないと‥
973 :
969:2006/01/06(金) 11:02:47 ID:whgGFtCr
とうとう、ネットワークにつながらなくなってしまいました
Win2kから見ると、Linuxマシンの名前があるのに(iptablesは全てACCEPTにしてあります)
「サーバーはリモート管理用に構成されていません」といわれます
これはWin側の問題なのかLinux側の問題なのかも分からない・・・orz
#遠隔でSWATは操作できるのですが、リモートコンソール(putty)はログインした瞬間に閉じてしまいます・・・
974 :
login:Penguin:2006/01/06(金) 11:04:41 ID:whgGFtCr
Linux再インストールしたら直りますかね(TT)
975 :
login:Penguin:2006/01/06(金) 11:13:20 ID:8n5t7raw
>>974 Windowsじゃあるまいし、何でもかんでも再インストールすれば
いいと言うものではないぞ。きちんと原因を追及すべきだ。
まずはLinuxマシン側のログ(/var/log/messages など、とりあえず /var/log 以下)
を確認すれ。
>>974 なんか急にレベルが下がったな。
わりとネットワークの知識はある香具師だと思ってたのに。
再インストールしても、結局同じところではまる。
978 :
login: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
979 :
login: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
もう iptables 関係ないな。
あと、引用は最小限に。
981 :
login:Penguin:2006/01/06(金) 13:52:18 ID:whgGFtCr
ごめんなさい、でもほんとにもうお手上げ状態です・・・(TtT)
またiptablesの問題で思い当たるところがあったのですが、
それを試すところまでたどり着けませんorz
とりあえず、他を当たってみますね・・・m(__)m
983 :
login:Penguin:2006/01/06(金) 13:59:21 ID:whgGFtCr
>982
既におもいっきりあるんですよ、中身満載で・・・
全部消してもう一度作り直してみますねm(__)m
※sambaでIPC$と言う共有を作ってみましたがダメですね^^;
984 :
login:Penguin:2006/01/06(金) 14:03:37 ID:whgGFtCr
だめですた・・・orz
とりあえず仕事に戻りますです(TT)
980 越えたことだし、くだ質に移動すれ。
さて、新スレだけど
【ファイアウォール】iptablesの使い方【ルーティング】
とかどうですか?
本当はもっと需要があるスレだと思うんですが。
普通に「iptables その3」でいいじゃん。
/tmpのパーミッションがえらいことになってるのではない?
普通はdrwxrwxrwtで、所有者はrootだと思うが。
989 :
login:Penguin:2006/01/06(金) 16:45:23 ID:whgGFtCr
>>988 あども。仕事終わりました。てか仕事ない・・・orz
それはともかく、パーミッションも確認したんですが、関係ないようで・・・
一応全部許可にしてみましたが症状かわらず・・・
でも、どうみても/tmpがないか、ディレクトリでないって言われてるんですよね・・・
ホントにわからん(--ll)
inode不足とか?だったら別のエラーが出そうなもんだが。
>>987 ファイアウォールとかルーティングで
検索に引っかかればいいかなと思ったんだけど・・・・
iptablesってファイアウォールとしか使ってなかったんだけど、ルーティングもできるの?
>>989 まずディレクトリサイズの確認。
$ df -h /tmp
で、それでも問題無いようならsmbdのsambaデーモンをを再起動してみる。
>>992 ルーティングの際のフィルタリングはiptablesのFORWARDチェインで制御できる。
が、ルーティング自体はiptablesの仕事じゃないな。
>>994 まあカーネルっちゃあカーネルだよね。
でも行き先を制御するしルーティングっちゃあルーティング?
つiproute
じゃあ
【鉄壁】iptablesの使い方 3【ファイアウォール】
でいい?
埋め
1000 :
login:Penguin:2006/01/07(土) 09:30:37 ID:E9qfrv39
1000
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。