1 名前:login:Penguin [2006/01/07(土) 09:23:53 ID:lNsnmDoV] iptablesを使って素敵なファイアウォールとか、 快速ルータを作ったりするために、 情報を出し合うスレ 前スレ おい、iptablesの使い方を(ry その2 pc8.2ch.net/test/read.cgi/linux/1079277604/l50
620 名前:login:Penguin mailto:sage [2008/08/14(木) 22:25:32 ID:84iyOxyD] >>23 >>24 24氏のアドバイスで、ppp0の全てのパケットは、192.168.0.10へ DNAT(Destination NAT)されるようになったけど、それでよかった んだよね。 >>31 で、31氏が書いているのは、iptablesが動いているマシンに httpdや、smtp,pop3, DNSなどのサービスが動いてたら、 それらを除外せにゃならんよねという、話だと理解しました。 で、最後にDNATがチェインの最後で実行されればいいんですよね
621 名前:login:Penguin mailto:sage [2008/08/15(金) 03:07:08 ID:AyoNWC/X] ↑2年半前にレスってどうよ?w
622 名前:login:Penguin mailto:sage [2008/08/15(金) 07:47:13 ID:g1wlhWWM] 専ブラ使っているんでね、このスレ見つけて 最初から読んで、resってみたんだが、ダメかね。 というか、このスレ立ってから、そんなに経つのか よく落ちないな。
623 名前:login:Penguin mailto:sage [2008/08/15(金) 07:53:05 ID:3444HIb9] UNIX板のipfilterのスレなんて5年半で200レスくらい……
624 名前:login:Penguin [2008/08/31(日) 23:21:06 ID:n+n8JTmC] 国内プロキシ経由の海外からのアクセスは防ぎようはないのかな
625 名前:login:Penguin mailto:sage [2008/09/01(月) 00:27:34 ID:fjO0v2rO] 国内プロキシを弾くしかないね。 逆に、ホワイトリストを作成し、登録したIP以外を全部弾いた方が楽だと思う。
626 名前:login:Penguin [2008/09/02(火) 03:53:13 ID:U/dhSPhZ] うん。それもアリなんだね だけどサーバー目的じゃないんだ 攻撃者特定の為に国内限定にしようと思ったんだけど 踏み台からの攻撃もあるから努力のしようがないことに気がついた
627 名前:login:Penguin mailto:sage [2008/09/02(火) 04:05:58 ID:CyZGqQKe] webサーバの保護の話でないなら別に放っておけばいんでないの
628 名前:login:Penguin mailto:sage [2008/09/13(土) 13:23:36 ID:W75dUOM6] サーバをPCルータ化して、クライアントPCでネットをしようと思い、 以下のような、サーバ用のスクリプトを作成したのですが、 Windows, Linuxのどちらからも、外に出られません。 eth1(192.168.0.1)が内向きで、ppp0 が PPPoE 接続した際にできたもので、 クライアントPCのアドレスは、DHCPで割り振っています。 添削をよろしくお願いいたします。 # 長いので、二つに分けます。 client_ip='192.168.0.0/24' server_ip='192.168.0.1' echo 1 > /proc/sys/net/ipv4/ip_forward # テーブルの初期化 iptables -F iptables -t nat -F iptables -X # テーブルの設定(INPUT) iptables -P INPUT DROP iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth1 -s $client_ip -d $server_ip -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
629 名前:628 mailto:sage [2008/09/13(土) 13:24:55 ID:W75dUOM6] # テーブルの設定(OUTPUT) iptables -P OUTPUT ACCEPT # インターネットに向けたローカルアドレスは全て破棄 iptables -A OUTPUT -o ppp0 -d 10.0.0.0/8 -j DROP iptables -A OUTPUT -o ppp0 -d 176.16.0.0/12 -j DROP iptables -A OUTPUT -o ppp0 -d 192.168.0.0/16 -j DROP iptables -A OUTPUT -o ppp0 -d 127.0.0.0/8 -j DROP # テーブルの設定(FORWARD) iptables -P FORWARD DROP # ファイル共有 iptables -A FORWARD -p tcp -i eth1 -o ppp0 --dport 137:139 -j DROP iptables -A FORWARD -p udp -i eth1 -o ppp0 --dport 137:139 -j DROP iptables -A FORWARD -p tcp -i eth1 -o ppp0 --dport 445 -j DROP iptables -A FORWARD -p udp -i eth1 -o ppp0 --dport 445 -j DROP # RPC iptables -A FORWARD -p tcp -i eth1 -o ppp0 --dport 111 -j DROP iptables -A FORWARD -p udp -i eth1 -o ppp0 --dport 111 -j DROP iptables -A FORWARD -i eth1 -o ppp0 -s $client_ip -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # IPマスカレードを設定 iptables -t nat -A POSTROUTING -o ppp0 -s $client_ip -j MASQUERADE
630 名前:login:Penguin mailto:sage [2008/09/13(土) 13:43:36 ID:12jhi4RP] なんか一見合ってそうに見えるけどな…… カーネルはデフォルトのもの?エラーとか出ないで スクリプト実行できてるよね。
631 名前:login:Penguin mailto:sage [2008/09/13(土) 15:13:23 ID:XkB/m5n5] >>629 まずはチェインがどの順序で解釈されるものなのか知っておいたほうがいい。 POSTROUTINGはFORWARDやOUTPUTよりも後で実行されるので、 そこでMASQUERADEするのであればクライアントIPなどの判断はその後で やらなきゃダメ。
632 名前:628 mailto:sage [2008/09/13(土) 15:27:44 ID:W75dUOM6] レス、ありがとうございます。 >>630 カーネルは、Ubuntu 8.04 サーバー版で、特に手を加えていません。USBメモリに入れているくらいです。 スクリプトもエラーは出ていません。 >>631 なるほど、解釈される順番には気がつきませんでした。 早速試してみます!
633 名前:login:Penguin mailto:sage [2008/09/13(土) 15:33:01 ID:oHtnNr1m] クライアントから外部に向かうパケットがinput段階で叩き落とされないか?
634 名前:login:Penguin mailto:sage [2008/09/13(土) 18:26:06 ID:12jhi4RP] ホントだ。-d が余計だな。
635 名前:628 mailto:sage [2008/09/13(土) 21:32:24 ID:XplBrS+o] 返信遅れて申し訳ありません。 iptableと格闘していましたが、一向につながる気配がありません。 レスを頂いた件を、すべて試してみたり、 > Linuxで作るファイアウォール[NAT設定編] > ttp://www.atmarkit.co.jp/flinux/rensai/security04/security04a.html に、乗っているサンプルを改造したりしていましたが 成果はさっぱりです。
636 名前:login:Penguin mailto:sage [2008/09/14(日) 02:13:23 ID:ko4Rvcco] >> iptables -A FORWARD -i eth1 -o ppp0 -s $client_ip -j ACCEPT FORWARDチェインなんでエラーは出ないんだが、 -i と-o はどちらか一方でないと成立しないような気がする
637 名前:login:Penguin mailto:sage [2008/09/14(日) 02:14:57 ID:uvFDe4SI] >>635 iptables -nvL と iptables -nvL -t nat、各種ログはチェックした?
638 名前:login:Penguin mailto:sage [2008/09/14(日) 09:28:28 ID:FG5fpXZJ] -s -d とか -i -o あたりが自分の使ってるルールに比べると ちと厳密だね。その辺外して後から変えていったら。
639 名前:login:Penguin [2008/09/14(日) 11:34:18 ID:aDiVPCKf] fedorasrv.com/iptables.shtml のやり方で海外からのアクセスを弾いてるのですが 読めば読むほどよくわからなくなってきたので 質問させていただきます。 cidr.txt ・・・ cidr.txt.1 ・・・ cidr.txt.100 ・・・ cidr.txt.1056 と同じようなファイルがどんどん増えていきます(汗 消しても消しても増えるのですが新規にファイルを作成するのではなく cidr.txt に上書きするようにすることはできないのでしょうか?? あと、(2)IPアドレスリスト更新チェック に 毎日自動でIPアドレスリストの更新有無をチェック と書いてますが何時に更新するか設定はできないのでしょうか?
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と打って起動出来る?