1 名前:login:Penguin [2006/01/07(土) 09:23:53 ID:lNsnmDoV] iptablesを使って素敵なファイアウォールとか、 快速ルータを作ったりするために、 情報を出し合うスレ 前スレ おい、iptablesの使い方を(ry その2 pc8.2ch.net/test/read.cgi/linux/1079277604/l50
656 名前:login:Penguin mailto:sage [2008/10/05(日) 21:28:53 ID:1+nQfTzw] >>654 間違え&連投すいません。 ルーターとして[Linux Box]は動いています。ずぼずぼ通信できてしまいます。 制限ができないのです。 連投すいません。
657 名前:login:Penguin mailto:sage [2008/10/05(日) 22:26:42 ID:j+q2VtR8] >>654 普通にFORWARDチェインに対してACCEPTとDROPのルールを作ればいい。 -t natとかは不要。
658 名前:login:Penguin mailto:sage [2008/10/05(日) 22:38:39 ID:1+nQfTzw] LAN1 から LAN2は全部OK LAN2 から LAN1はDROPとした場合 iptables -P INPUT ACCEPT iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD -s LAN1 -d LAN2 -j ACCEPT iptables -P FORWARD -s LAN2 -d LAN1 -j DROP だめですー(x x)
659 名前:login:Penguin mailto:sage [2008/10/06(月) 00:04:41 ID:Q2gv2CnD] iptables -L -v と iptables -t nat -L -v を晒せ
660 名前:login:Penguin mailto:sage [2008/10/06(月) 00:20:27 ID:E4Yiq6p1] ICMPなpingは行き帰り両方をきちんと定義しないと駄目じゃないか?
661 名前:login:Penguin mailto:sage [2008/10/06(月) 07:52:15 ID:kHXndwyF] >>658 TCPだってping (ICMP echo)だって行き帰りのパケットがあるだろうに。 ネットワークの基礎を勉強し直せ。
662 名前:login:Penguin mailto:sage [2008/10/07(火) 00:18:45 ID:L0iIKOv8] TCPはステート情報を使うようにすれば、片方向の定義だけでいいけどね。 (FTPとか特殊なプロトコルをのぞく)
663 名前:login:Penguin mailto:sage [2008/10/07(火) 07:21:32 ID:4sfRDV6t] RELATED,ESTABLISHEDは超重要
664 名前:login:Penguin mailto:sage [2008/10/08(水) 19:26:44 ID:Hntgc9sn] >>652 2.4と同じじゃなかった(汗 $IPTABLES -t nat -A PREROUTING -i $INTIF -p tcp --dport 80 -j REDIRECT --to-port 8080 これでコミット出来なかった・・・ iptablesじゃなくて串の設定かorz
665 名前:login:Penguin [2008/11/02(日) 15:09:02 ID:fqVxYuim] >>658 確立したコネクション塞いだら通信できなるだろうが それになぜポリシーにルール設定してんだよw iptables -P INPUT ACCEPT iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A FORWARD -s LAN1 -d LAN2 -j ACCEPT iptables -A FORWARD -s LAN2 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -s LAN2 -d LAN1 -j DROP
666 名前:login:Penguin [2008/11/02(日) 15:14:37 ID:fqVxYuim] >>664 -i $INTIF 取ってみな
667 名前:login:Penguin [2008/11/02(日) 15:51:43 ID:fqVxYuim] >>658 あと追記だけど、LAN1/LAN2側双方へのマスカレードの設定があと必要だとおもうよ。 このくらい自分でしらべてくれよん
668 名前:login:Penguin [2008/11/07(金) 15:57:30 ID:TIV9E6l7] ルーター(192.168.0.1) ↓ eth0┐(192.168.0.2) │←pc0 │ eth1┘(192.168.1.1) ↓ pc1 iptables -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE pc1にインターネット共有をさせたくて上記のように設定してみましたが だめでした これだとpc0のWAN側がインターネットでないとダメなのかなとか ひょっとしてできないのかなでもWindowsだとチェックボックスひとつで 共有できるしなあとか思ってはみるものの具体策がわかりません おしえてください
669 名前:login:Penguin mailto:sage [2008/11/07(金) 16:39:12 ID:CnNNPz2n] pc1 は ip_forward してますか?
670 名前:login:Penguin mailto:sage [2008/11/07(金) 16:39:43 ID:CnNNPz2n] ごめん、pc0 は ip_forward してますか?
671 名前:login:Penguin mailto:sage [2008/11/07(金) 20:21:24 ID:TIV9E6l7] >>670 /proc/sys/net/ipv4/ip_forward に1とあり大丈夫なようです
672 名前:login:Penguin mailto:sage [2008/11/07(金) 21:48:58 ID:lFnUHJKa] >>668 というか「ルータ」に192.168.1.0/24のスタティックルートを設定できないのか?
673 名前:login:Penguin mailto:sage [2008/11/08(土) 00:50:25 ID:hssA2L52] 前提としてルーター(192.168.0.1)には、もう一個ポートがあって、インターネット(ISP)に繋がっている。 ということでOK? で、そのルーターは当然のごとくにIP Masquarade(NAT)している、ということでOK? で、やりたいことは、ローカルネットワークにNATルーター(pc0)を設置してpc1は二重にNATしたい、ということでOK? pc1をインターネットに繋がるようにしたいだけなら 192.168.0.0/24 のアドレスにしてpc0のeth0と同じ側に繋ぐか、 672 の言うとおり pc0 を(NATしない)普通のルーターとして働かせれば、いいはずだが、それを敢えて二重に NATしたい、と。 他に -j DROP なルールなどががあったりしなければ、668の設定で基本的にはいいはずだけど、 その前にpc0からはインターネットにルーター(192.168.0.1)経由で繋がるのか?
674 名前:login:Penguin mailto:sage [2008/11/08(土) 01:41:09 ID:MJgV0EtY] restartしてないだけというエスパー予想。
675 名前:667 mailto:sage [2008/11/08(土) 20:06:18 ID:0iWj6iOE] >>668 #WAN側のアドレスとか差っぴいちゃうからアドレスの指定とかやらないほうがいい iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -j DROP #↓WAN出力側は、マスカレードを無条件に許可する iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #↓LAN側から入ってきたソースだけをpc1への戻りアドレス書き換えるマスカレード #ローカルサーバーが必要ないなら、こいつは別に要らないかな? iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/16 -j MASQUERADE で、逝けそうな気がするけど。 それから、/etc/network/options に次の記述があるか確認してみ ip_forward=yes
676 名前:667 mailto:sage [2008/11/08(土) 20:09:41 ID:0iWj6iOE] 訂正: >>668 の図見ると、eth0 eth1 逆じゃん? iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT iptables -A FORWARD -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -j DROP iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/16 -j MASQUERADE てところか
677 名前:667 mailto:sage [2008/11/08(土) 20:14:24 ID:0iWj6iOE] WAN側からの接続をシャットアウトしたいんだっけ? 勘違いしてた。 iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT #↓この行だけ違った iptables -A FORWARD -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -j DROP iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/16 -j MASQUERADE
678 名前:667 mailto:sage [2008/11/08(土) 20:27:54 ID:0iWj6iOE] iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT iptables -A FORWARD -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -j DROP iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/16 -j MASQUERADE なんか、このほうがスッキリするけど…。
679 名前:667 mailto:sage [2008/11/08(土) 20:34:22 ID:0iWj6iOE] >>668 をまとめるとこんな感じだな よくわからないか、まとめてみた。 1) WANへの接続は許す 2) WANからの接続は潰す 3) ただし、LANからWANへ接続済みにしたパケットのWAN側からの転送は許す iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT iptables -A FORWARD -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -j DROP iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/16 -j MASQUERADE
680 名前:667 mailto:sage [2008/11/08(土) 20:38:58 ID:0iWj6iOE] iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT #↓ FORWARD に -o 張れないから やっぱこれでいいはず… iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -j DROP iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/16 -j MASQUERADE
681 名前:login:Penguin mailto:sage [2008/11/08(土) 23:10:35 ID:iMsDtzmC] >>680 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE これは余計じゃないかな。 >>668 それとip_conntrack モジュールはロードしている
682 名前:667 mailto:sage [2008/11/09(日) 07:45:30 ID:cyMfQhQp] >>681 余計かなぁ…? ルーターとPC1が別のアドレス空間になっているから PC0用のアドレスに書き換えてやらないとパケット戻ってこない気がするけど
683 名前:login:Penguin mailto:sage [2008/11/09(日) 13:35:21 ID:uYzy9N5y] 668のやりたいことが>>673 の問いかけ通り(最初の4行通り)なら、 673の指摘通り668の記述であっている(NATも以下の一つでいい)。 iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE 実際、最初の4行に書かれている通りのことを今やっている。 違いはeth0を固定IPにしているので、MASQUERADEでなくSNATを使ってることぐらい。 うまくいかない原因は、668に記載された3行以外にあると思うのだが?
684 名前:667 mailto:sage [2008/11/09(日) 14:02:18 ID:MyRkucom] なーるー 原因不明だな 全部のiptablesオプションに --modprobe=/sbin/modprobe 付け足して 呼んでみるとかやってみるべきかもね それでもダメなら pc0 に pc1 から ping して応答が帰ってくるかどうか ぐらいのレベルから検証してみたほうがよさそうだね。
685 名前:login:Penguin mailto:sage [2008/11/10(月) 22:31:41 ID:vjcGauLJ] eth0を物理1つのエイリアス2に区切りました。 eth0 192.168.0.10 eth0:0 192.168.0.11 eth0:1 192.168.0.12 .0.10にだけtelnetが繋がるようにするには どうすればいいのでしょうか?
686 名前:login:Penguin mailto:sage [2008/11/11(火) 02:07:43 ID:lioaoJiT] IPエイリアスの場合、全部eth0に変わりないので -A INPUT -i eth0 -d 192.168.0.10 --dport 23 -j ACCEPT -A INPUT -i eth0 --dport 23 -j REJECT こんな感じじゃない
687 名前:login:Penguin [2008/11/13(木) 19:57:50 ID:zJ0w7PDt] telnetにListenIP設定すれば? 絞るなら大本から絞れ
688 名前:login:Penguin mailto:sage [2008/11/14(金) 17:28:14 ID:FovMWI9O] >>687 こういうのって(iptablesとデーモンの)両方やらないか?
689 名前:login:Penguin mailto:sage [2008/11/14(金) 20:11:16 ID:4rtpLX5i] ポートを開けないようにアプリ(telnet)側でやり、 さらにうっかり開かないようにiptablesで縛るね。 片方だけだと「うっかり」が結構出るけど、両方とも独立に 設定するならオペミスで開いてしまう事故は非常に起こりにくくなる。
690 名前:login:Penguin [2008/11/15(土) 01:42:42 ID:Zo/JTpVo] ssh+鍵暗号 でいいやん telnet 殺しちゃいなよ
691 名前:login:Penguin mailto:sage [2008/11/15(土) 02:14:20 ID:26XJ0s7F] ここでの telnet はあくまで例なんじゃないの?
692 名前:login:Penguin mailto:sage [2008/11/15(土) 08:53:49 ID:OWM1nEoc] それやるとミスもあるんだよな。wrapperではじいてるから 後でFW設定しようとか思ってたら一台だけ設定してなかった、とか。
693 名前:login:Penguin mailto:sage [2008/11/15(土) 09:18:53 ID:4Owtonid] 後でやろうと思ったとか、ちゃんと手順にそってやったことを確認しながらやらないのは問題外 ヒューマンエラーを防止するために手順メモとチェックリストは個人的にでも作ったほうがいい。 まあ、より強固で確かな方から設定していった方が漏れがあった時被害が少ないかもな…。
694 名前:login:Penguin mailto:sage [2008/11/15(土) 13:00:17 ID:OWM1nEoc] 実際はもうちょっと複雑な過程ではまるんだが、ちと面倒だったんで…… あとはAの方ではじいてると思ってそっちのルール更新してたらBだった、とか。
695 名前:login:Penguin mailto:sage [2008/11/18(火) 00:18:36 ID:ruHhaDcu] ubuntuのufwで出力されるiptablesのルールって誰か分かりますか? あれってデスクトップ用に最適化されているんですかね?
696 名前:login:Penguin [2008/11/18(火) 00:24:59 ID:jDfQIBNa] 2.4 系だと MANGLE に TCPMSS 張れないから FORWARD と OUTPUT に張っているけど MANGLE に張る場合となにが違うのかよくわからん
697 名前:login:Penguin mailto:sage [2008/11/18(火) 04:32:57 ID:d3c/lwkM] >>695 設定してシェルから iptables -L -v してみれば良いのでは? ていうかして、参考にしたいから。 自分はknoppix firewallと同じルールにしているけど、ubuntuのやつも 見てみたい。
698 名前:login:Penguin mailto:sage [2008/11/18(火) 10:14:23 ID:MRSXpnk2] >>697 いや、自分も手元にubuntu環境ないから見てみたいのですよ
699 名前:login:Penguin mailto:sage [2008/11/18(火) 10:17:31 ID:MRSXpnk2] あ、ubuntuライブCDが手元にあったわ ufw enable して iptables -L -v 見てみる
700 名前:544 mailto:sage [2008/11/24(月) 21:48:01 ID:qB2Gxz8P] NIC二枚刺して、一方はLANを通ってLAN内のルーターから外に もう一方はグローバルIP持ってて直接外に |-eth0(192.168.0.102)-ルーター-インターネット PC-| |-eth1(211.4.228.10)-インターネット こんな構成になってるんだけど eth0からインターネットに送信するときにeth1のIPアドレスがソースアドレスになっちゃいます。 eth0からLAN内にはちゃんと192.168.0.102がソースアドレスになります。 とりあえずiptables -A POSTROUTING -t nat -o eth0 -j SNAT --to-source 192.168.0.102 として、ソースアドレス設定してるですけど tcpdumpで見てみるとDNSとかeth1のアドレスで尋ねにいってタイムアウトしてます。 そもそも、ifconfig見るとちゃんとeth0にIPアドレス設定されてるのに、なんでSNATが必要になるんでしょうか? SNATしなくても済む方法ありますか?
701 名前:700 mailto:sage [2008/11/24(月) 21:56:04 ID:qB2Gxz8P] 追加です。 ping 66.249.89.99 -I eth0 とかすると、ソースアドレスはeth0のアドレスになってて問題なくpingは通ります。
702 名前:login:Penguin mailto:sage [2008/11/25(火) 01:17:36 ID:zZh6AovX] ・IPv4 ・マルチホームホスト ・デフォルトゲートウェイ2つ ・ポリシールーティングなし が条件かな? この場合、 ・ルーティングエントリは、送出先インターフェースに関連づけられる。 ・IPアドレスは、インターフェースに関連づけられる(が、他のインターフェース経由で送出されても良い) ・IPアドレスとルーティングエントリを直接関連づける機構がない。 ・2つのデフォルトゲートウェイのうちどちらが使われるかは、メトリックによって決まる。値が同じなら平等。 みたいなかんじ。 IPアドレスと同じサブネットにいるゲートウェイが必ず使われるという保証はない、と言う状況になると思う。 解決策は、今のようにSNATをかけるか、ポリシールーティングで厳密にルーティングを指定するか、だと思うが。
703 名前:700=544 mailto:sage [2008/11/25(火) 18:33:11 ID:+bzr+l5D] >>702 レスサンクスです ポリシールーティングなのかわからないんだけど >>544 にあるように、UIDによってルーティングテーブルを分けてます。 mainテーブルはeth1がデフォルトになってて、 一部のユーザーはテーブル2を見て、eth0に振られます。 >>700 の現象が起きるのはそのユーザーのみです。後出しですいません。 tcpdump見てると、domainのみeth1のアドレスでまず送って、その後eth0のアドレスで送ってます。 >>544 で言ってた遅さの原因は最初のDNS問い合わせがタイムアウトしてるからのようです。 >・IPアドレスは、インターフェースに関連づけられる(が、他のインターフェース経由で送出されても良い) ここを厳密にインターフェースに関連付けられればいいんですけど、SNATしかないんでしょうか?
704 名前:700=544 mailto:sage [2008/11/25(火) 18:34:16 ID:+bzr+l5D] ipコマンドの結果とiptablesの一部載せます # ip rule list 0: from all lookup 255 100: from 192.168.0.102 lookup 2 101: from all fwmark 0xb lookup 2 32766: from all lookup main 32767: from all lookup default # ip route show table 2 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.102 default via 192.168.0.1 dev eth0 src 192.168.0.102 # ip route show table main 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.102 211.4.228.0/24 dev eth1 proto kernel scope link src 211.4.228.10 default via 211.4.228.1 dev eth1 # iptables -L -t mangle Chain OUTPUT (policy ACCEPT) target prot opt source destination MARK all -- anywhere anywhere MARK set 0xa MARK all -- anywhere anywhere OWNER UID match serv1 MARK set 0xb
705 名前:700 mailto:sage [2008/11/25(火) 19:15:43 ID:+bzr+l5D] 自分でも混乱してきたのでまとめ table2を見てる特別ユーザーの場合 >>704 の状態 ソースアドレスがeth1のアドレスになってしまって通信不可 >>704 に加えてSNAT 基本的にソースアドレスはSNATで指定したアドレスになり通信できるが DNSのみeth1のアドレスで問い合わせ後、SNAT指定のアドレスで問い合わせるので遅くなる。
706 名前:login:Penguin mailto:sage [2008/12/25(木) 14:38:37 ID:W3gIymfl] >>666 亀ですんません -i $INTIF取ってもダメでした 結局、-s ! $OREIPで凌いでます
707 名前:login:Penguin mailto:sage [2008/12/26(金) 00:11:11 ID:VXirjz6Y] 今さっき、単純なポリシールーティング(fwmark未使用)なら動いたけど・・・・ なんか、自分のよりずいぶんややこしいことやってるな
708 名前:700 mailto:sage [2008/12/26(金) 18:06:08 ID:ltPqHwfd] やりたいことは単純で、ユーザー毎に使うネットワークを分けたいだけなんですけどね。 宛先のみでは分けれないので静的なルーティングでは実現できず、fwmark使うしか思いつかなかったんです。
709 名前:login:Penguin mailto:sage [2008/12/27(土) 00:08:55 ID:opgamkt1] 既に理解しているようならスルーしてくれ。 まず、linuxのポリシールーティングがどういうものかというと、 「ルーティングテーブルを複数持って、条件によって使うテーブルを切り替える」 機構になってる。 これは、普段使うmainテーブルを複数持つような物だと思えばいい。 つまり、切り替えたテーブルにおいて、ネットワークの定義等が無いと、そのネットワーク等は使えない。 通常、mainテーブルが $network1 dev $if1 scope link src $ip1 $network2 dev $if2 scope link src $ip2 127.0.0.0/8 dev lo scope link default via $gw1 dev $if1 のようになり、 これとほぼ同じものを、切り替え用のテーブルとして用意する (127.0.0.0/8 も、テーブルごとに用意した方がいい) また、アプリケーション側でソケットを作成する際に、 local側をbindして、bindしたアドレスと別のネットワークに飛ばそうとすると 当然の如く、ネットワークを跨ぐことができず、ルーティングに失敗する。 (ip_forward=1にすれば超えれるのかな?) bindをanyにした場合は、送信先に対応するネットワークをルーティングテーブルから選択して、 そのテーブルに書かれているIPアドレスorデバイスをlocalのbindとする。 どうやって調べるかという話はあるにしろ、どこが問題なのかはっきりさせた方がいい気がする。 #完全にiptablesの話じゃないな
710 名前:700 mailto:sage [2008/12/27(土) 00:58:36 ID:jUvzXagD] 自分でsocketから書けばbindでIPアドレス指定することで ルーティングで小細工しなくてもNICを使い分けれるんですね。知らなかった。 でもwgetとか普通のクライアントアプリならbindとか呼ばず、いきなりconnectじゃないですか? そういう場合ってどうやってソースアドレス決定するんでしょう? ルーティングテーブルでローカルネットワーク使うように設定しても(>>704 のtable2) ソースアドレスがグローバルIPになっちゃうんですよね。 ##完全にiptablesの話じゃないな #たしかに。板違いかも。
711 名前:login:Penguin mailto:sage [2008/12/27(土) 07:35:52 ID:opgamkt1] いや、ポリシールーティングの設定はいる。 けど、fwmark使わずに、ソースアドレスでテーブルを振り分ける。 echo "127 net1" >> /etc/iproute2/rt_tables echo "126 net2" >> /etc/iproute2/rt_tables ip route add $network1 dev $if1 scope link src $ip1 table net1 ip route add $network2 dev $if2 scope link table net1 ip route 127.0.0.0/8 dev lo scope link table net1 ip route default via $gw1 dev $if1 table net1 ip route $network2 dev $if2 scope link src $ip2 table net2 ip route $network1 dev $if1 scope link table net2 ip route 127.0.0.0/8 dev lo scope link table net2 ip route default via $gw2 dev $if2 table net2 ip rule add from $ip1 table net1 prio 14998 ip rule add from $ip2 table net2 prio 14999 いわゆる、参考文献でよく見る基本形 ・localのbindによって、gw1とgw2を振り分ける。 ・localのbindがanyの場合は、mainテーブルのdefault gatewayによってlocalのbindが確定する ・listenしているソケットがanyの場合は、acceptしてlocal側のbindが確定した段階で、 出力先のネットワークが確定する。つまり、受け取ったif側のgwが使用される ・wgetにはbindaddress指定があるので、 wget --bind-address=${ip1} hogehoge ではgw1 wget --bind-address=${ip2} hogehoge ではgw2 wget hogehoge ではmainテーブルで指定したgw に向かってパケットが投げられる
712 名前:login:Penguin mailto:sage [2008/12/27(土) 07:44:29 ID:opgamkt1] IP通信の基本として、パケットには自分のIPアドレスが含まれる。(無いと通信できない) srcIPとdstIPが別のnetworkになる場合、ルーティングを行う必要がある。 つまり、localのbindが${ip1}の状態で、$gw2に投げようとする時点で、ルーティングが必要になる。 localのbindが確定した段階で、別のgwに投げようとしても、localでroutingしない限り届かない。 >>700 の場合 アプリケーションが起動して、localのbindをanyでsocket作成 通信先を決定時に、local側IPアドレスをmainテーブルを元に生成(eth1のIPアドレス) ルーティングテーブル選択ルールで、table 2を選択して、パケットを送出(211.4.228.0/24のネットワークの定義が無いので投げられない) という動作になっているんじゃないかなー 多分、anyのbindがmainテーブル参照でsrcIP決定になるというのが、想定外の動作なのではないかと。 (なので、条件によって使用される他のテーブルにも、mainテーブル相当の内容を入れておくことが推奨される)
713 名前:login:Penguin mailto:sage [2008/12/27(土) 12:23:31 ID:itSOO7pC] スレ違いになるけどIP配布するときにゲートウェイをMACアドレスの グループごとに変えるとかじゃ、だめなのかな。セキュリティの問題で 分けてるんだとすると、だめだが……
714 名前:700 mailto:sage [2008/12/27(土) 19:04:19 ID:jUvzXagD] >>711 wgetにはbindの設定がありましたか。さすがwgetですね。wgetは例として悪かったです。 実際使いたいのはperlのLWP::UserAgentなんですけど、bindアドレスの設定はなさそうです。 >>712 パケットを生成するためにはsrcIPが必要で、ルート決定にはパケットが必要なんですね? 今自分がやろうとしてる、ルートによってsrcIP決定するという考え方が間違ってるんですね。 >>700 ではsrcIPをmainから仮決定しているのでSNATで修正する必要があるのは当然だと。 ちなみに>>704 の場合、一応パケットは送出されてます。でもsrcIPが間違ってるのでルーターに遮断されてると思われます。 >(なので、条件によって使用される他のテーブルにも、mainテーブル相当の内容を入れておくことが推奨される) そうすると、srcIPが間違ってる限り、どのテーブル使ってもmainと同じルーティングになってしまいませんか?
715 名前:login:Penguin mailto:sage [2008/12/28(日) 11:07:42 ID:em+fhSry] スルー推奨
716 名前:login:Penguin mailto:sage [2009/01/16(金) 16:01:57 ID:okJnBqgJ] 2008年12月 攻撃元国別ランキング 《1位》韓国(78.1%) 《2位》アメリカ(5.4%) 《3位》中国(2.5%) 《4位》サウジアラビア(2.1%) 《5位》台湾(中華民国)(1.5%) www.security.ocn.ne.jp/information/news/nf20090108_01.html
717 名前:login:Penguin mailto:sage [2009/01/16(金) 16:06:20 ID:u7wlazQY] >>716 これは 韓国ネチズンvs 2ちゃんねらー のせいじゃないかな。でないと偏りが大きすぎるw
718 名前:login:Penguin mailto:sage [2009/01/16(金) 16:46:44 ID:+DlK6TCr] 迷惑な話だ(笑 vipper専用の回線でも引いてそこでやってほしい
719 名前:login:Penguin [2009/01/16(金) 22:24:37 ID:Qy3jFgAJ] DebianでfirestarterのGUIを最小化自動起動させている方いらっしゃいませんか? www.fs-security.com/docs/faq.php#trayicon 上記サイトに書いてあるようにしたのですが、ログイン後通知パネルに自動起動しません /etc/sudoersに username ALL= NOPASSWD: /usr/bin/firestarter Note: Debian users should replace /usr/bin/firestarter with /usr/sbin/firestarter in the above line. ↑のように追記したのですがやっぱりダメです セッションの自動起動するプログラムにも書いてある通り追加しました どなたか成功している方いらっしゃいませんか? firestarterのバージョンは1.0.3-1.3です よろしくお願いしますm(_*_)m
720 名前:login:Penguin mailto:sage [2009/01/16(金) 22:29:09 ID:VaS+Z9mp] >>719 usernameのところをちゃんと自分のユーザー名にした? firestarterの場所はちゃんと合ってる? 端末でsudoとかsuとかせずにfirestarterと打って起動出来る?
721 名前:719 mailto:sage [2009/01/17(土) 16:22:18 ID:98qqdXhI] >>720 usernameは自分のユーザー名にしました firestarterの場所は/usr/sbin/firestarterにしました sudoとかsuせずに起動できません
722 名前:login:Penguin mailto:sage [2009/01/17(土) 18:08:23 ID:lpCkIAcT] >>721 ごめん間違った。 sudo firestarterでパスワード要求されずに起動できる? セッションにはsudo firestarterで登録ね。
723 名前:719 mailto:sage [2009/01/17(土) 18:36:18 ID:98qqdXhI] >>722 セッションへの登録の仕方が間違ってました 自動起動時の最小化はできませんでしたが、通常モードで起動することはできました 本当にありがとう
724 名前:719 mailto:sage [2009/01/17(土) 19:05:29 ID:98qqdXhI] >>722 --start-hidden ↑を付加して最小化もできました…orz
725 名前:login:Penguin mailto:sage [2009/01/23(金) 08:14:33 ID:GeOEI94J] こんなのみつけた コメントもついてて、大元になるスクリプトをジェネレートしてくれるみたい これを少しづつ買えていけばいいじゃないかな。パスとかルールとか easyfwgen.morizot.net/gen/
726 名前:login:Penguin [2009/01/30(金) 16:53:34 ID:037qY2Hb] 最近namedに 72.20.3.82#35022: query: . IN NS + のような連続攻撃がバンバン来る。 そこで同一IPアドレスから一定数以上の53/UDPパケットが来たらiptablesで叩き落としたい。 ところが… recentモジュールはTCP専用だったのね。知らなかった。orz UDPでrecentモジュールと同様のことをするにはどうすれば良いのでしょう?
727 名前:726 [2009/01/30(金) 17:02:36 ID:037qY2Hb] 因にUDPでrecentモジュールを実験してみたら、見事に誤作動。 一つのIPアドレスがhitcountに達したら、全部のIPアドレスがDROPされてしまいました。orz -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -p udp -m udp --dport 53 -m recent --set --name domain --rsource -A INPUT -p udp -m udp --dport 53 -m recent --name domain --rcheck --seconds 300 --hitcount 50 --rsource -j LOG -A INPUT -p udp -m udp --dport 53 -m recent --name domain --rcheck --seconds 300 --hitcount 50 --rsource -j DROP -A INPUT -p udp -m udp --dport 53 -j ACCEPT
728 名前:login:Penguin mailto:sage [2009/01/30(金) 18:17:17 ID:Pcr9wMdL] 適当なこというけど hashlimit は?
729 名前:login:Penguin mailto:sage [2009/01/30(金) 21:25:17 ID:YBChhxZr] >>726 というかbindのACLで不正な問い合わせには応答しなきゃいいじゃないか。 仮にiptablesでやったとしてもパケットがやってきてしまうことは どうしても防げないわけだし。
730 名前:login:Penguin mailto:sage [2009/01/31(土) 02:54:59 ID:asn696XI] bindのDDoSはどんどんひどくなってるみたいね。 とりあえずはbindのほうをいじったほうが、確かに早いかも分からん。 スレ的にはiptableで簡潔ないい記述ができればいんだが。
731 名前:726 [2009/01/31(土) 16:55:12 ID:CmZY/+bL] BINDは対策済なんだけど、これだけでは偽装された発信元IPアドレスに(短い)パケットを返してしまう。 iptablesで叩き落とせばこのバックスキャッタリングを防げる。 上手い方法ないかなあ。
732 名前:login:Penguin mailto:sage [2009/01/31(土) 17:01:03 ID:asn696XI] blackholeとかメンテナンスするのいやだからなぁ。 ルールベースで切りたいな確かに。
733 名前:login:Penguin mailto:sage [2009/01/31(土) 22:58:57 ID:asn696XI] しかしひどいね。blasterが流行ったときみたいだな。
734 名前:login:Penguin mailto:sage [2009/02/01(日) 06:17:02 ID:EdoXH2sU] BINDは設計がおかしいから、もうどうにもならん
735 名前:login:Penguin mailto:sage [2009/02/01(日) 10:27:09 ID:pLJq1zgT] だれか海外サイトから設定をかっぱらって来るんだ
736 名前:login:Penguin mailto:sage [2009/02/02(月) 09:48:50 ID:+Az43133] https://lists.dns-oarc.net/pipermail/dns-operations/2009-January/003488.html DNSオペレータのMLに出ていたラインで、通技板に転載がありました。
737 名前:login:Penguin mailto:sage [2009/02/02(月) 11:30:57 ID:4AWynPNf] u32モジュールってなんだ!? こんなの初めて見た
738 名前:login:Penguin mailto:sage [2009/02/02(月) 12:04:46 ID:+Az43133] 俺も初めて使った。最近のkernel/iptablesじゃないとダメみたいね。 あと at ってなってるところは@に置換ね。
739 名前:login:Penguin mailto:sage [2009/02/02(月) 12:07:52 ID:+Az43133] ただこれ、すごい単純なマッチングだからアタックの問い合わせにいろんなのが 出てきたら、ダメだな。よく見てるとランダムな文字列のDDoSもあるから、そういうのには 上の人みたいに時系列で追うルールじゃないと対応できない、たぶん。
740 名前:login:Penguin mailto:sage [2009/02/02(月) 13:24:16 ID:pp7sQ9oB] うちには「.」だけじゃなく「se」の攻撃も来てる。
741 名前:login:Penguin [2009/02/02(月) 17:41:07 ID:pp7sQ9oB] >>728 hashlimitはudpで使えるの?
742 名前:login:Penguin mailto:sage [2009/02/04(水) 17:19:46 ID:DRq4jnVW] recentの場合は一度hitcountに達すれば攻撃が続く限り全部DROPできる。 これに対してhashlimitの場合は攻撃が続いている間、攻撃の一部を受け入れてしまう。 という理解で正しい?
743 名前:login:Penguin mailto:sage [2009/02/05(木) 07:35:29 ID:zryjGLFD] UDPの場合はipアドレス偽装しても困らないんだから hashlimitは全く役に立たないと思うんだが。
744 名前:login:Penguin mailto:sage [2009/02/05(木) 09:10:03 ID:k3yyhcPH] >>743 TCPもSYNに限ってはアドレスを偽装できるので、 アドレス偽装対策としての確実性を求めるべきではない罠。
745 名前:login:Penguin [2009/02/05(木) 12:05:09 ID:HWvjHGlG] namedのログを見ると、実際には同じ発信元IPアドレスが繰り返し使われている。 何故かというと、namedは攻撃の踏台に使われているだけだから。 本当の攻撃対象のIPアドレスを発信元に偽装して、世界中のnamedに問い合わせをバラまく。 namedの応答を悪用することで攻撃のトラヒックを何倍にも増幅することができるから。
746 名前:login:Penguin mailto:sage [2009/02/05(木) 18:54:59 ID:8g5FEuSC] 結局あれをやってる連中の意図はそういうことなのかな。 となるとやっぱり律儀に返事を返すのは、どうしても 連中の思ったとおりのことをやってしまうことになるね。 あまり本来の設計にない動作はさせたくないが、しょうがないなこれは。
747 名前:login:Penguin mailto:sage [2009/02/05(木) 23:35:52 ID:zryjGLFD] DRDoSを調べようとしてもDR-DOSばかりヒットするのは困ったものだな・・
748 名前:login:Penguin mailto:sage [2009/02/05(木) 23:39:35 ID:dEMHjHJ3] >>747 DRDoS -DR-DOS でググる
749 名前:login:Penguin mailto:sage [2009/02/06(金) 09:58:40 ID:EQF4KdkV] 直接iptablesというわけではないのですが質問です。 ある特定のISPユーザにしかサービスを許可したくない場合等 ドメイン名で制限を書けたい場合にはどのようにするのが一般的でしょうか? (IPアドレス帯域を公開していたりTCP Wrappersが対応していればカンタンなのですが)
750 名前:login:Penguin mailto:sage [2009/02/06(金) 12:32:44 ID:KaLnvoCv] 安易な対策としてzone "."にallow-query { 127.0.0.1; };を書き加えてみたけど、拒否されますた。orz Feb 6 12:25:21 ***** named[26734]: loading configuration from '/etc/named.conf' Feb 6 12:25:21 ***** named[26734]: /etc/named.conf:23: option 'allow-query' is not allowed in 'hint' zone '.' Feb 6 12:25:21 ***** named[26734]: loading configuration: failure Feb 6 12:25:21 ***** named[26734]: exiting (due to fatal error)
751 名前:login:Penguin mailto:sage [2009/02/06(金) 21:14:56 ID:xQ6autwt] optionsに127.0.0.1とローカルのIPだけ許可する設定を書けばいいよ。 公開してるゾーンだけanyに許可。
752 名前:login:Penguin mailto:sage [2009/02/06(金) 22:03:16 ID:JpTPB05X] >>749 DNSでアドレスから名前を逆引きして判別 (さらにsecureにしたい場合は、 確認できたホスト名をアドレスに再変換してチェック) とか。
753 名前:login:Penguin [2009/02/13(金) 16:23:01 ID:e2K4rCg5] BIND 9.4からnamed.confの仕様が変更になっていたのね。 allow-queryが効かなくてハマった…。
754 名前:login:Penguin mailto:sage [2009/02/13(金) 23:59:00 ID:owjgCdcY] 省略せずに、ちゃんと明記すればいいんだっけか google様でわからなかったら苦労しそうなパターンだよなぁ
755 名前:login:Penguin mailto:sage [2009/02/17(火) 13:00:46 ID:WbA+0bN2] MythwebでwebからTVの録画や視聴をしようと思い、念のため外からの接続はSSL経由で クライアント認証にしてみました。 そしたら、 1、Mythwebから録画設定等の画面は開ける(httpsでリンクやsubmitできている) 2、Mythwebから録画した映像を見ようとするとサーバに接続できない(リンク先のプロトコルがhttpになっている) と言う結果になりました。 iptablesで httpsで接続できているマシンから、httpで要求があった場合はhttpを通す。 ただし、httpsで接続していないマシンからhttpの要求があった場合はブロックする。 と言ったような都合のいいブロック方法って何かありますか? ちなみにMythwebはLAN内ではhttpで普通に使えています。
756 名前:login:Penguin mailto:sage [2009/02/20(金) 21:35:13 ID:iLve4iTI] >>755 iptablesで必要なポートを開けるためのスクリプト(setuidフラグ付き)を作り、 それを呼び出すためのcgiを作ってhttpsからアクセスさせればいいのでは。 もちろんセキュリティホールにならないようきちんとチェックする必要があるが。