[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 04/17 19:31 / Filesize : 298 KB / Number-of Response : 923
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【鉄壁】iptablesの使い方 3【ファイアウォール】



1 名前:login:Penguin [2006/01/07(土) 09:23:53 ID:lNsnmDoV]
iptablesを使って素敵なファイアウォールとか、
快速ルータを作ったりするために、
情報を出し合うスレ

前スレ
おい、iptablesの使い方を(ry その2
pc8.2ch.net/test/read.cgi/linux/1079277604/l50


640 名前:login:Penguin mailto:sage [2008/09/14(日) 11:42:51 ID:WXeKp2xK]
>>639
上書き
wgetを-Oで保存ファイル名指定

更新時刻
crontabで設定

641 名前:628 mailto:sage [2008/09/14(日) 16:53:01 ID:1R1R/rhZ]
>>636,638
オプションを付けたり外したり、
全部の組み合わせを同時に宣言して見ましたが、うまくいきません…

>>637
設定は、スクリプトに書いたとおりでした
ただ、ログがまったくでません。(時折外からくる、変なIPを弾くのを除く)
eth1にくるのを拒否すると、ちゃんとログに残るので
何がなんだかさっぱりです。

ログの設定は、以下です。
iptables -N LOGGING
iptables -A LOGGING -j LOG --log-level warning --log-prefix "DROP:" -m limit
iptables -A LOGGING -j DROP
iptables -A INPUT -j LOGGING
iptables -A FORWARD -j LOGGING
iptables -A OUTPUT -j LOGGING

642 名前:login:Penguin mailto:sage [2008/09/14(日) 17:40:13 ID:kd4iGQPt]
全部ACCEPTにしてもつながらないとかないのかね

643 名前:login:Penguin mailto:sage [2008/09/14(日) 17:57:54 ID:RVgh8DFt]
>>642
いや、さすがに、それは無いでしょ?
先にルーティングできることを確認しなかったら何が悪いか判らないじゃない?

644 名前:628 mailto:sage [2008/09/14(日) 19:51:28 ID:TY7yI4CN]
>>643
そうですね。何がわからないのか分からない状態です。

>>642
このような感じのもので、試してみましたが
クライアントPCでは、何もできませんでした。

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -F
iptables -t nat -F
iptables -X

iptables -P INPUT ACCEPT
iptables -A INPUT -j ACCEPT
iptables -P OUTPUT ACCEPT
iptables -A OUTPUT -j ACCEPT
iptables -P FORWARD ACCEPT
iptables -A FORWARD -j ACCEPT

iptables -t nat -A POSTROUTING -o ppp0 -s $client_ip -j MASQUERADE

ところで、-t nat -nvL で出てくる、POSTROUTING の pkts が
幾ら操作しても、0のままなのですが、これが正常なのでしょうか?

645 名前:login:Penguin mailto:sage [2008/09/14(日) 20:27:29 ID:RVgh8DFt]
>>644
> >>643
> そうですね。何がわからないのか分からない状態です。

まず、iptableを切って、クライアントから外界が見れることを確認してください。
その状態から、徐々に絞っていく方が楽でしょう。(なお、クライアントの防備は厚めに。)

646 名前:628 mailto:sage [2008/09/15(月) 22:06:16 ID:mFiXr7+/]
>>645
原因が分かりました。
すごく、くだらない原因で、DNSの設定を自動で取得してくる状態のままでした(Windowsルータ時代はこれで良かった)
手動で、指定したところ、問題なく接続できました。

皆様、ご迷惑をおかけいたしました。

# ちら裏
結果的に修正した部分は、
>>628
iptables -A INPUT -i eth1 -s $client_ip -d $server_ip -j ACCEPT を
iptables -A INPUT -i eth1 -s $client_ip -j ACCEPT
に、したくらいです。
# ちら裏終わり

647 名前:login:Penguin mailto:sage [2008/09/15(月) 23:01:45 ID:NBhfMiPw]
>>646
お疲れさん(笑

648 名前:login:Penguin mailto:sage [2008/09/26(金) 20:02:35 ID:rMTLXZXd]
2分置きに↓のログが残るんだけど何だろう?
[iptables SPOOFING] IN=eth0 OUT= MAC=01:00:5e:00:00:01:00:14:f1:65:a4:6a:08:00 SRC=172.20.1.1 DST=224.0.0.1 LEN=28 TOS=0x00 PREC=0xC0 TTL=1 ID=60045 PROTO=2




649 名前:login:Penguin mailto:sage [2008/09/26(金) 21:47:23 ID:G3dQVRC8]
ISPからくるIGMPのマルチキャストのパケットらしい。
中身まで見ると、何かわかるかも。
ttp://www.dslreports.com/forum/r20675819-My-ISPs-router-sends-me-over-1000-IGMP-hits-per-day

650 名前:login:Penguin mailto:sage [2008/09/30(火) 09:25:20 ID:6LAw1Ent]
kernel2.4系で使っていたルールをkernel2.6系に使ったら
svnのコミット出来なくなったり、一部2.4の時と動作が違うのですがどの辺が変わってるんでしょうか?

651 名前:login:Penguin [2008/10/02(木) 15:52:16 ID:Cu06Z5f2]
WebページのCGIからソケット開いて〜 ってやったものの応答をうけとるには
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ではダメなようなのですが どうしたら受け取れますかね?

652 名前:login:Penguin mailto:sage [2008/10/02(木) 20:50:38 ID:3mmtWAQL]
>>650
と言われても何とも言えん。ルールを出せ。

>>651
そのWebページとやらはどこにあるんだよ。
構成を出せ。

653 名前:login:Penguin [2008/10/05(日) 11:41:14 ID:Fghhu9nw]
おまえら、netstat-natの出力みたことありますか。
なかなか楽しいが、見た内容を人にしゃべっちゃだめだぞ。

654 名前:login:Penguin mailto:sage [2008/10/05(日) 21:15:29 ID:1+nQfTzw]
NATを使わない単なるルーターだが、port制限行うタイプの設定が
まったくわかりません。

(LAN1) -eth0[Linux Box]eth1- (LAN2)
・LAN1からLAN2へのpingは許可
・LAN2からLAN1への pingも許可
・LAN1からLAN2へのsshは許可
・上記以外の接続は全て不可

ぐぐるとNATばかりでてきます。NATもpppoeも関係なのです。
あーん、誰か助けてくらはい。

655 名前:login:Penguin mailto:sage [2008/10/05(日) 21:17:03 ID:1+nQfTzw]
>>654
誤)ぐぐるとNATばかりでてきます。NATもpppoeも関係なのです。
正)ぐぐるとNATばかりでてきます。NATもpppoeも関係ないのです。

間違えちゃったorz

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」の攻撃も来てる。







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<298KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef