ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.4156337 SAMBAの設定に付いて
質問者:marche302 VineでSAMBAを使用するにあたってiptablesに以下の設定を行いました。
しかし、WINDOWS側のネットワーク名WORKGROUPは表示されますが
そこから先にアクセスすることができません。
Vine側のファイアーウォールを無効にすると問題なくアクセスできますが・・・
原因は何が考えられるのでしょうか。
御存じの型がいらっしゃいましたらアドバイスをお願いします。

-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
困り度:
  • 困っています
質問投稿日時:
08/07/06 21:11
この質問に対する回答は締め切られました。

回答良回答20pt

ANo.4 一見、NEW は おかしい様に見えますが
Vine4.2、CentOS5.2 では
こういう iptables の Line を 作りますね。
これで、Server として 外部からAccess 出来ます。

さて、今回は Server としてではなく むしろ Client です。
Vine4.2 Nautilus から Network への接続で
WORKGROUP( 仮 ) への接続がどうも出来ません。
// firewall を無効にすると出来る。
Nautilus 場所バー で
smb://windows-local-address/ で やれば接続出来ますが
Centos5.2 では、Konqueror、Nautilus で
smb:/ で WORKGROUP が 現れ WORKGROUP にACCESS 出来ます。
Vine4.2、CentOS5.2 で iptables の違いは特に見られません。
// F9 や、Ubuntu8.04 なんか最新のDistribution でも
// samba の WORKGROUP へaccess がどうも調子が悪いみたいです。

Windows 側で portmonitor、 Linux側で netstat で
見ていると、どうも他に port を 使っている様に見える。
とりあえず
32768-32800 udp 辺りを開けば良い様に見える。
ESTABLISHED,RELATED としてこれを開ければ良いのだが
未だ出来てません。security 上 良くないのだが。
// 私は、WORKGROUP で 接続しないので
// これ以上 あまりやりたくないのだが。
回答者:cynthia4
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/07/07 16:42
この回答へのお礼回答ありがとうございます
返事が遅くなって申し訳ありません
最近試す時間が取れないので落ち着いたときにじっくりやってみようと思います
ありがとうございました

回答良回答10pt

ANo.3  試してないけど、139と445のstateがNEWだからじゃないのかな。
 137と138はudpなのでそもそもNEW以外にありえない(多分)。なのでブラウズは通ると。ANo1さんのおっしゃるとおりNEWは不要。
 で、tcpはNEWやESTABLISHがある。で、NEWというのはVine側がACKを返してその後数回ごにょごにょがあるまでの話だと思うので、ESTABLISHになった瞬間ドロップする訳(policyがDROPの場合)。

 以下のようにしてみては?
-A RH-Firewall-1-INPUT -p udp --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 138 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 445 -j ACCEPT

個人的には以下の方が素敵だと思う。
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 138 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 139 -j ACCEPT
-A RH-FIrewall-1-INPUT -p tcp --dport 445 -j ACCEPT
こうしておくと、「ESTABLISHEDなTCPはコネクションは全てスルー」が最初に適用されて、Destinationに関わりなく受け入れるようになる。下の方にポート番号一覧でACCEPTしとくと、ESTABLISHED後は全て上の方でOKと判定されてすぐACCEPTされるって訳。この場合、順番が大切です。iptablesはルールを上から舐めていく(んだったと思う)ので。これにすると何が良いかというと、インターネットに対してFTPなんかを公開しなきゃいけなくなったって時に、
-A RH-Firewall-1-INPUT -p tcp --dport 21 -m limit --limit 1/min --limit-burst 2 -j ACCEPT
というのを後ろにつけるとあら不思議。同じIPアドレスから1分間に3回以上接続要求があるとドロップするようになる(policyがDROPの時)。1分間に1回分ACCEPTが回復するようになり、ランダムユーザネームアタックをこれだけである程度防げるようになるんだな。
回答者:anmochi
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/07/06 22:13
この回答への補足みなさん回答ありがとうございます
iptablesの行の上の方を確認してみたところ
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
と言う記述があり、anmochiさんの仰るように
-A RH-Firewall-1-INPUT -p udp --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 138 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 139 -j ACCEPT
-A RH-FIrewall-1-INPUT -p tcp --dport 445 -j ACCEPT
というように記述を変えてみたのですが、依然として「フォルダの内容が
表示できませんでした」という、エラーメッセージが出てしまいます・・・
ファイアーウォールを無効にすると問題が解決するので、
関係ないとは思いますが、VMware player でVine Linuxを動かしている環境です。
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.2 書いた気になってた・・・orz
137,138はUDPなので state の記述をはずす必要があります。
ESTABLISHED,RELATEDの行は消してないですよね。
回答者:junkUser
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/07/06 22:00
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.1 137, 138はUDPですよ。
回答者:junkUser
種類:回答
どんな人:一般人
自信:自信あり
回答日時:
08/07/06 21:57
この回答へのお礼この回答にお礼をつける(質問者のみ)