07/10/23 01:34:56 nWZglh6T
>>445です。ミスりましたので訂正。
iptables -A droplog -j LOG --log-level info --log-prefix "LOG : "
このようにしてるのですがIPTABLESのログが画面に出力されてしまいます。
画面に出力しないようにしたいのですがどうしたらいいでしょうか?
よろしくお願いします。
447:login:Penguin
07/10/24 00:08:48 SbBD4pB3
iptables -A INPUT -j LOG --log-prefix "iptables: "
うちの環境だとこれで/var/log/messagesにずらずらとログが吐き出されてるよー。
448:login:Penguin
07/10/24 00:36:49 jqvnxtk4
>>446
man syslog.conf
449:login:Penguin
07/10/24 07:28:33 8AtQmbnx
iptables -Lってすると一部だけどDNS引いた結果出してくれる(~~.ne.jp/21とか)
のはいいんだけど、ApacheみたいにDNS引いてるから遅いってやっぱりありますよね?
これって設定とかで引かせないようにできるんですか?
iptablesが重たいのを少しでも何とかできればと思っています。
450:login:Penguin
07/10/24 08:33:21 TTzmV6tO
>>449
-n
man 読めよ。
451:login:Penguin
07/10/24 09:17:40 /YI0Hkhg
>>449
iptables自体が重くなるって意味がわからん
iptables -L(-n無し)で設定表示したときにドメイン名逆引きするだけだぞ
452:login:Penguin
07/10/29 13:52:10 Ar8OORqT
質問させてください。
① iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
② iptables -A INPUT -s 192.168.1.0/255.255.255.0 -j ACCEPT
①と②は違ったりしますでしょうか?
453:login:penguin
07/10/29 22:32:58 KgFnwMuo
>452
(日)と(月)は違うぞ!
曜日が…
454:login:Penguin
07/10/30 23:01:19 sCmEB94u
>>453
うれしそうだねwwwww
455:login:Penguin
07/10/30 23:07:48 HosQjitr
>>453
意味がわからんかった
いまごろ 理解したよ
456:login:Penguin
07/10/31 00:35:10 e4JVZKQc
(日)と(月)に見えた人が書き込んだ場合、
(日)と(月)にはならないと思うんだ。
457:login:Penguin
07/11/01 02:42:36 5rKuYKAC
>>455
まだワカンネどういう事?
458:login:Penguin
07/11/01 07:20:32 k9000Ae8
>>457
URLリンク(help.yahoo.co.jp)
459:login:Penguin
07/11/01 09:56:00 hcVfni0f
懐かしいw
e-mail始めた頃、「MACの人も居るから○文字は使うな」とか
ネチケット叩き込まれたことがあるな
460:login:Penguin
07/11/02 15:57:48 zzEzt7oi
まだ前の回答ついてないのに恐縮ですが、質問です。
scp転送用にポート転送を設定したいんですがうまくいきません。
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 8022 -j DNAT --to-destination 転送先マシンIP:22
iptables -A FORWARD -p tcp --dport 22 -d 転送先マシンIP -j ACCEPT
としてみたのですがうまくいきません。要するにssh用の口が2つあって、一つは別のマシンに転送します。
設定後、外部から
$ ssh -p 8022 user@ルーターIP
とすると、転送先マシンにつながることを期待していたのですが、無反応です。
何が足りないんでしょうか。
461:login:Penguin
07/11/02 17:20:11 /5AvQRIJ
>>460
> iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 8022 -j DNAT --to-destination 転送先マシンIP:22
> iptables -A FORWARD -p tcp --dport 22 -d 転送先マシンIP -j ACCEPT
まったく外しているかもしれないけど、
iptables -A INPUT -p tcp --dport 8022 -j ACCEPT
じゃないの? あと、順序はいいのかな。
462:460
07/11/02 17:43:42 zzEzt7oi
>>461
ありがとうございます。
> iptables -A INPUT -p tcp --dport 8022 -j ACCEPT
入れてもダメでした。
Webサーバーが、ポートの変更はないものの、やはり内部のマシンに転送する設定になっていて、
そちらは>>460に書いたような設定でアクセスできています(INPUTのACCEPTもなし)。
ポート番号変更して飛ばす場合は何かほかに設定が必要なんでしょうかねぇ。
SSHは特別とか。ググりまくってるんですが、今のところ収穫なし。疲れた…。=□○_
463:login:Penguin
07/11/02 18:09:26 L7xx/Ax3
echo 1 > /proc/sys/net/ipv4/ip_forward
464:460
07/11/05 10:51:36 Aa00PO2k
>>463
最初に書かなかったのがいかんでしょうけど、いくらなんでもそれは…。
Webサーバーへの転送ははできてるって、すぐ上に書いてるんだけど…。
465:問題の切りわけができないやつは死ね
07/11/07 20:37:20 LiUjlGKZ
書いてある設定はあってるきがするから
書いてある設定以外の設定もみたほうがいいよ
そもそも、書いてある設定だけに原因があると判断した根拠はあるの?
ないなら、もっと情報を集めるべきだよ
パケットがどこまで来てるか確認するとか
すくなくとも「SSHは特別とか。ググりまくってるんですが」と言うならTCPコネクションは正しく張れていることを確認したわけだよね?
466:login:Penguin
07/11/11 15:13:33 T0iIgraT
んだな。
転送先のSSHの設定が間違ってるんじゃないかな。
少なくとも転送先にパケットが届いているかと、routerの方でドロップしていないか
logみて確認した方がいい。
467:login:Penguin
07/11/11 22:23:07 eYVSNPRX
deiban-etch-i386で配布されているiptables-1.3.6を使っています。
もしかして--*-ownerで指定するownerマッチって、CPUがデュアルなSMP環境では使えない?
URLリンク(iptables-tutorial.frozentux.net)
上記URLのtutorialの Owner match の項目に
"The pid, sid and command matching is broken in SMP kernels since they use different process lists for each processor. It might be fixed in the future however"
って書いていて、この文書はiptables-1.2.2を対象にしているのだけど、
実際に今のバージョンのiptablesでownerマッチを試してみると、
# iptables -A OUTPUT -m owner --cmd-owner httpd
iptables: Invalid argument
となる。。。 いつかSMP環境でもownerマッチが実装されるようになる予定、
もしくは使えるようにするパッチとかあるのかな?
468:login:Penguin
07/11/13 11:48:29 z5V70nVz
>>467
それは単に--cmd-ownerオプションを有効にした状態でコンパイルしていないものと
思われ。
iptablesをコンパイルする際にIPT_OWNER_COMMを設定してコンパイルしておく
必要がある(iptablesの既定では設定されていない)。
469:login:Penguin
07/11/13 12:06:45 sXVFNasV
>--cmd-owner name
>(Please note: This option requires kernel support that
>might not be available in official Linux kernel sources or
>Debian's packaged Linux kernel sources.
>And if support for this option is available for the
>specific Linux kernel source version, that support might
>not be enabled in the current Linux kernel binary.)
470:login:Penguin
07/11/13 12:09:29 z5V70nVz
>>467>>468
訂正。2.6.xカーネルをよくよく読んだら
> ipt_owner: pid, sid and command matching not supported anymore
だそうだ。
uidとgidのマッチングだけが残されてる模様。
471:login:Penguin
07/11/14 16:12:34 smyKDrGU
>>468-470
--cmd-ownerで指定したかった実行ファイルを、適当なグループにchgrpして
--gid-owner使うしかなさそうね。。。とりあえず、--gid-ownerが使えることは
確認できました。ありがとう。以上
472:login:Penguin
07/11/16 11:04:17 l7VK4xQc
ntpを通す設定をする時は
127.127.1.0(ローカルのクロック)も通さなくてはいけないのでしょうか?
473:login:Penguin
07/11/16 11:38:49 +r76b4S+
>>472
ローカルクロックをntpで使わない(常に他の時計を参照して時刻修正をする)
のであれば通す必要はない。
ただntp以外のものを動かすことを考慮すると、デバイスloから来たものについては
通しても問題なさそうな気がするが。
474:login:Penguin
07/11/17 08:31:59 FMqlrwB/
アウトバウンドの返りの許可をINPUTで書くのはまずいですか?
${IPTABLES} -A OUTPUT -p tcp -s ${MY_HOST} -d ${ANY} --dport 22 -j ACCEPT
${IPTABLES} -A INPUT -p tcp -s ${ANY} --sport 22 -d ${MY_HOST} -j ACCEPT
今はこんな感じに書いています。
でもこれだとソースポートを22にされるとACCEPTしてしまうということですよね
自分がsshを触ってログを見ると、
アウトバウンド:OUTPUT時には、
デスティネーションポートは22
ソースポートはテンポラリーな数字が入っています
このテンポラリーな数字を22にされたら(そんなことが出来るのか分かりませんが)
通ってしまうんじゃないか…と思うのですが、どうなのでしょうか。
475:login:Penguin
07/11/17 08:52:38 qUJKPscf
iptables動かしているホストからsshで他のリモートホストに接続を許可、
他のリモートホストからsshで接続される可能性を排除したい状況だと
思うのだけど、
${IPTABLES} -A OUTPUT -p tcp -s ${MY_HOST} -d ${ANY} --dport 22 -j ACCEPT
${IPTABLES} -A INPUT -p tcp -s ${ANY} --sport 22 -d ${MY_HOST} -m state --state ESTABLISHED,RELATED -j ACCEPT
でどうかな?2行目は、確立されたコネクションしか通さない、というルールです。
他のリモートホストの接続のソースポートが22であっても、
別のルール又はポリシーでACCEPTしない限り新しいパケットは通しません。
あくまで自分で他のリモートホストへsshしたアウトバウンドの返りのみ許可します。
476:login:Penguin
07/11/17 09:58:36 FMqlrwB/
>>475
おっしゃるとおりの環境です
確かにこれなら大丈夫ですね
分かりやすい説明ありがとうございました
477:login:Penguin
07/12/04 12:56:38 J8tqiXLe
/sbin/iptables -t nat -P PREROUTING DROP
とした後に
/sbin/iptables -A INPUT -p TCP -i eth0 --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -p TCP -o eth0 --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
としてもパケットが通りません・・・orz
一旦PREROUTINGをDROPした状態で必要なポートだけ空けるにはどういう設定したらいいですか?
478:login:Penguin
07/12/05 04:41:35 m+53PlcA
そりゃnetテーブルでパケットDorpさせてるから、filterテーブルまで
パケットが届く訳がないかと。
私見だけどnetテーブルってそもそもアドレス変換する所で、フィルタ
する所では無いと思ってんだけど。
そこでDorpさせないで、
素直に
iptables -P INPUT DROP
iptables -A INPUT -p TCP -i eth0 --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
:
他のルール
でいいんでわ?
あと
iptables -A OUTPUT -p TCP -o eth0 --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
はいらねーんじゃね?
INPUT側で確立したセッションについてはOUTPUT側は自動で面倒見
てくれるんだし。
479:login:Penguin
07/12/05 07:34:20 5K5f62C9
URLリンク(iptables-tutorial.frozentux.net)
480:477
07/12/05 08:58:33 bS7YQRUV
やっぱPREROUTINGでフィルタリングするべきでは無いっすか。ありです。
481:login:Penguin
07/12/06 12:24:28 MDMJf4Qy
477だけどPREROUTINGで必要なポートだけREDIRECTしてやればいけそうな感じです。
他の要因でまだ試してないですが・・
482:login:Penguin
07/12/08 01:50:58 hgE2t6/f
>>477
ちなみに何故PREROUTINGでやるのか後学の為に教えて下され。
483:154
07/12/12 23:53:15 Pf/pNXYM
今回vsftpdを利用したFTPサーバの構築に挑戦しているのですが、壁にぶつかって1週間近くも経ちます。そこでこの場を借りて質問したいと思います。
環境:ルータを軸に、WAN側:動的IP、LAN側:ハブでPCが2台(1台はFedora(サーバ)、もう1台はwindows(確認用クライアント))
設定操作:(全てFFFTPはPASVモード、anonymous接続)
1)ルータ、ファイアウォールの設定でFTPのWellKnownポートを開ける。
2)vsftpdをインストールしデフォルトのままLAN内で動作確認。
3)WAN側の動的IPを逐一確認しつつ、(2)までの設定のまま、そのグローバルIPアドレスを使って動作確認。(WAN側からのアクセス)
4)vsftpdでPASVに関する設定を行い(ここでPASVで使うポートを4000から4029に指定)
iptables及びルータでそれらのポートを開け、WAN側の動的IPを逐一確認しつつ、動作確認。
5)xinetdでvsftpdをスーパーサーバにし、WAN側アドレスにドメインを指定して動作確認。
結果:(1)開けた
(2)正常に動作(接続先のファイル一覧の取得に成功)
(3)PASVに関する設定をしていないのでもちろん失敗(FFFTPログ:接続できませんでした)
(4)なぜか失敗。動作結果は(3)と同様。
484:154
07/12/12 23:54:10 Pf/pNXYM
vsftpdの設定
デフォルトのままの設定の一番下に以下のような記述を加えました。
#以下、PASV関係の設定
pasv_enable=YES
pasv_address=211.10.47.197
pasv_addr_resolve=YES
pasv_min_port=4000
pasv_max_port=4029
iptablesの設定(一番下)
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 4000:4029 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
485:154
07/12/12 23:55:49 Pf/pNXYM
xinetdでvsftpdをスーパーサーバ型にするのはこの問題が解決してからする予定です。
この設定でおやじさんのFTP TESTを利用すると正常に接続できるのですが、FFFTPやnet2ftpを利用した接続ができません。どこに原因があるでしょうか。よろしくお願いします。
初めは自宅サバ板で質問していたのですが、あちらの住人のススメでiptablesに詳しいこのスレで質問させていただくことにしました。
外部からのアクセスログ
ホスト 211.128.32.219 (21) に接続しています.
接続しました.
220 (vsFTPd 2.0.5)
>USER anonymous
331 Please specify the password.
>PASS [xxxxxx]
230 Login successful.
>XPWD
257 "/"
>TYPE A
200 Switching to ASCII mode.
>PASV
227 Entering Passive Mode (211,10,47,197,15,185)
ダウンロードのためにホスト 211.10.47.197 (4025) に接続しています.
接続できません.
ファイル一覧の取得を中止しました.
ファイル一覧の取得に失敗しました.
自宅鯖板の方々からはやはりiptables、FWの設定ミス・不足が有力視されています。
486:login:Penguin
07/12/13 00:55:26 h9SR/G0E
素直にこれじゃ接続できんの?
#pasv_enable=YES
#pasv_address=211.10.47.197
#pasv_addr_resolve=YES
#pasv_min_port=4000
#pasv_max_port=4029
487:login:Penguin
07/12/13 02:31:38 4N7nbO+s
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 4000:4029 -j ACCEPT
この設定にだけじゃ単にポート開けてるだけで、アドレス変換されとらんかと。
NATテーブル側で tcp dpts:4000:4029 to:鯖のプライベートアドレス
の設定追加で行けるんじゃ?
488:487
07/12/13 02:37:06 4N7nbO+s
勘違いした。鯖とFWは同じマシンで別にルータが居るのか。と云う事は、
↑の設定をルータ上に入れんと駄目って事ね。
1)でやってるFTPのWellKnownポートを開ける。
に4000から4029が含まれて無いと仮定しての話しだけど。
489:154
07/12/13 16:54:19 RBocae6Q
非常に申し訳ないのですが、無事に解決致しました。
スレリンク(mysv板)l50
質問に答えてくれ方々、どうもありがとうございました。
490:login:Penguin
07/12/13 21:11:00 4N7nbO+s
マルチかよ。二度とくんな!
491:login:Penguin
07/12/13 21:44:57 Dtsl/eW1
>485
嫁
492:login:Penguin
07/12/13 21:49:32 Dtsl/eW1
ところで、pfの話はここでしていいんかい?
493:login:Penguin
07/12/13 22:01:17 k10Nz7ru
>>492
スレ違いの前に板違いだろう。
494:login:Penguin
08/01/05 21:36:50 j9FhIFrb
77 電波王 ◆DD..3DyuKs New! 2008/01/04(金) 19:11:58 ID:ztbiyh8EP
まあこういうことをスルー出来ない報告者のほうが悪いんですけどね(笑)
82 電波王 ◆DD..3DyuKs New! 2008/01/04(金) 19:13:31 ID:ztbiyh8EP
>>78
ちょ・・・全鯖っすか・・・
89 電波王 ◆DD..3DyuKs New! 2008/01/04(金) 19:19:36 ID:ztbiyh8EP
申し訳ありません
失言でした・・・
98 電波王 ◆DD..3DyuKs New! 2008/01/04(金) 19:29:51 ID:ztbiyh8EP
このような場所で不適切な発言をしたことは
本当に申し訳ないと思っております
どうか全鯖規制については取り消しをお願い致します・・・
103 電波王 ◆DD..3DyuKs New! 2008/01/04(金) 19:37:36 ID:ztbiyh8EP
今回はVIPの1スレで遊んでただけなんですが・・・
120 電波王 ◆DD..3DyuKs New! 2008/01/04(金) 20:37:13 ID:ztbiyh8EP
FOXさんを煽ったつもりはないです
勘違いさせてしまったなら謝ります
127 電波王 ◆DD..3DyuKs New! 2008/01/04(金) 20:53:11 ID:ztbiyh8EP
一人で自治ってろボケ
yutori鯖はVIPPERには落とせないんだろ?
そもそも今回はsamba突破して連投してないし鯖に負担かかったとも思っていない
495:login:Penguin
08/01/05 21:37:07 j9FhIFrb
あ。誤爆。すまそ
496:login:Penguin
08/01/05 21:50:44 TOhgYRiE
↑eve↑,カンリニン…
(+Φ Φ)
//…〆∞i ………>規制せよ
←√//;ミシミシミシッッ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
497:login:Penguin
08/01/05 21:56:07 TOhgYRiE
↑eve↑,カンリニン…
(+Φ Φ)
//'〆∞i ………>そして、Webから2chを抹消するのだ…
←√//;ミシミシミシッッ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
498:俺
08/01/10 15:11:06 upM3OZCX
iptablesって最大何個チェインを作成できるの?
499:login:Penguin
08/01/12 02:24:05 FBfOnT6z
iptablesじゃなくてshoewall使ってる人いる?
shoewall便利だよ
500:login:Penguin
08/01/12 14:42:33 elZa4LnA
shorewallは知ってるけどshoewallは知らないな
>iptablesじゃなくてshoewall
日本語でおk
shorewallもiptablesだろうが
501:login:Penguin
08/01/12 18:12:16 RLFhqBrs
shorewallはiptablesラップして設定吐き出すだけだしね。
まずはiptablesを理解した上で使うにはいいだろうけど。
502:login:Penguin
08/01/14 01:50:31 AUJ7vIQN
質問です。
iptables -A INPUT -i ppp0 -p tcp --syn -m limit --limit 1/m --limit-burst 5 -j DROP
で1秒に5回以上のSYNをDROPする場合、たとえばppp0に接続しようとしているユーザーAと
ユーザーBがいるとします。この1秒に5回許されるというのはAとBの合計ですか?
つまり、1秒の間にAが3回SYNを送って、
Bが3回SYNを送ると、Bの3回目のSYNが遮断されるということですか?(SYN五回までと
いうカウンタは全ユーザーの合計数が保持される)
それとも、1秒の間にAが3回SYNを送っても、
Bは5回SYNを送る事が出来るということですか?(SYN五回までというカウンタはユーザー
毎に保持される)
503:login:Penguin
08/01/14 03:55:07 +I2svrJp
>>502
>この1秒に5回許されるというのはAとBの合計ですか?
yes
ほしいのはたぶんhashlimitだと思う。↓この辺でも見て。
URLリンク(dsas.blog.klab.org)
recentでもいいらしいが使ったことないのでパス。
504:login:Penguin
08/01/14 10:22:37 AUJ7vIQN
>>503
質問だけで求めているものをエスパーしてくれるとは・・
どうもありがとう
505:login:Penguin
08/01/14 11:15:48 AUJ7vIQN
でも入れるの難しそうだな
なんせDD-WRTだから
506:login:Penguin
08/01/18 16:43:24 lPyT/fq/
iptablesで弾いたログってどこに出力されるのでしょうか?
krfilter
URLリンク(www.hakusan.tsg.ne.jp)
を手順通りに行ったのですが、dmesg に出力されてません。
iptalbes -L をみると、しっかりフィルタリングはされております。
507:login:Penguin
08/01/18 17:12:12 lOIomrR1
一般的解答
・弾いたログをsyslogなどに記録しないとみれません。
簡単に調べる方法
iptables -L INPUT -v -n --line-numbers -x
で破棄されたパケット数、バイト数をルールごとに確認できる。
508:506
08/01/18 17:30:39 yM/22QF2
ご回答ありがとうございます。
早速教えていただいたオプションを入れて閲覧してみましたが、やはり破棄されたものは 0pkts 0bytes でした。
krfilterのページには、
>フィルタのログを取りたければ,代わりに以下のように設定します。
>ログは dmesg コマンド等で参照できます。
># iptables -A KRFILTERED -j LOG --log-prefix "Rej-TCP "
># iptables -A KRFILTERED -j DROP
とあるのですが、これを入れても dmesgに出力されない場合は何もフィルタにかかっていないって事でしょうか?
LOG all -- 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix `Rej-TCP '
509:login:Penguin
08/01/18 19:11:40 lOIomrR1
フィルタのリストにあがっていてもすでに通過するルールに従って通過して
いることはないでしょうか。この場合、限界までフィルタリストに追加して
もまったく意味を成しません。
ログに記録するされる機能を試したければ運用に影響のない新しいルールを一つ作り、
自分で試すことが無制限かつ永久にできます。
510:login:Penguin
08/01/18 19:26:09 yM/22QF2
>フィルタのリストにあがっていてもすでに通過するルールに従って通過して
>いることはないでしょうか。この場合、限界までフィルタリストに追加して
>もまったく意味を成しません。
なるほど!
まさにそれのような気がします。
上に作ったルールがあったので。アホでした。
丁寧に教えてくださりありがとうございました!
511:login:Penguin
08/01/19 06:56:27 V/B+zaIL
私が小学生の頃、
日本中でノストラダムスの予言が大流行していた。
「1999年の7月に人類は滅亡する!」
という例のお騒がせ終末予言である。
大人になって社会に出て働きだして、
あくせくと忙しく日々を過ごしながら、
1999年は、
ありふれた日常の中であっさりと過ぎていった。
人類は滅ばなかった。
これからここで、
1999年に起こるかもしれなかった人類の壊滅的破局を、
誰にも知られずにこっそりと回避させた人たちがいた...
という設定で、
荒唐無稽なストーリーを描いてみたい。
無論、100%完全なフィクションである。
URLリンク(www5.diary.ne.jp)
512:login:Penguin
08/01/19 23:19:42 poPr5669
>>511
こちらへどうぞ
スレリンク(linux板)l50
513:login:Penguin
08/01/20 00:20:37 Stwf61MT
ubuntu7.10を入れたPCにsshで繋いで、nmapをやったら↓の様に出ます。
$ nmap localhost
Starting Nmap 4.20 ( URLリンク(insecure.org)<) で繋がらないようで
ブラウザには「192.168.1.13:3000 のサーバへの接続を確立できませんでした。」とでます。
ポートは空けているつもりなのですが、どこが間違っているのでしょうか?
自分なりに調べているのですが、手詰まりのような状態で
どこに手をつければよいのか分かりません。
ご助言をお願いします。
514:login:Penguin
08/01/20 00:23:54 GjWIMeOh
httpdはあがってんの?
ubuntu7.10マシンからはそのページ見えるの?
515:513
08/01/20 00:29:00 Stwf61MT
レスありがとうございます。
ubuntuを入れたPCからは、そのページを見ることができていて
画面も動かせています。
動かしているアプリは、httpdではなくWEBrickで動かすようにしています。
516:login:Penguin
08/01/20 00:40:03 GjWIMeOh
ubuntu7.10マシンの外からnmapしてみてよ
いま繋ごうとしてるクライアントのマシン
517:513
08/01/20 00:57:24 Stwf61MT
端末に使用しているものはwin xpになります。
↓が実行結果です。
ポート3000は端末から見たら閉じているということでしょうか。
iptablesをあちこちの記事を見ながら修正したのですが。。。
C:\Program Files\nmap-4.53>nmap 192.168.1.13
Starting Nmap 4.53 ( URLリンク(insecure.org) ) at 2008-01-20 00:53 東京 (標準時)
Interesting ports on 192.168.1.13:
Not shown: 1713 closed ports
PORT STATE SERVICE
22/tcp open ssh
MAC Address: 00:03:47:FF:FF:FF (Intel)
Nmap done: 1 IP address (1 host up) scanned in 0.453 seconds
C:\Program Files\nmap-4.53>
518:login:Penguin
08/01/20 01:00:03 GjWIMeOh
うん、ダメね
続き頑張って~
519:login:Penguin
08/01/21 01:09:20 YfsBM33D
iptables の設定の数とネットワークパフォーマンスの落ちの関係をグラフにとってくれないか誰か
520:login:Penguin
08/01/21 06:07:39 zS1pvPfR
卒論の季節か
521:login:Penguin
08/02/22 00:41:35 g90UI89f
xx.xx.xx.52/29
│
┌┴─┐ ┌─┐
│鯖1 ├(HUB)┤鯖2 │
└─┘ └─┘
192.168.1.1 192.168.1.2
xx.xx.xx.53 xx.xx.xx.54
IP8個の契約をして自宅サーバー2台を運用しようと苦戦中です
固定IPの末尾53と54で2台を使ってWEBサーバーを構築するのが目的です
鯖1のeth1からハブ経由で鯖2へ繋いでプライベートIPを割り当てましたが
外部から末尾54へのpingが通らず鯖2が外部に出ない状態です
ping時の鯖2のtcpdump2を確認するとrequestは届いてるので出られないのかと思うのですが…
煮詰まってます。どなたかご教示お願いします。
鯖1のiptablesの設定
iptables -t nat -A PREROUTING -i ppp0 -d XX.XX.XX.54 -j DNAT --to-destination 192.168.1.2
iptables -t nat -A POSTROUTING -s 192.168.1.2 -j SNAT --to XX.XX.XX.54
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.1.2 -j ACCEPT
iptables -A FORWARD -d 192.168.1.2 -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
522:login:Penguin
08/02/22 07:56:06 ubCvY1Yz
>>521
鯖2の設定は?
IP=192.168.1.2
ケートウェイ=192.168.1.1
になってるか?
523:login:Penguin
08/02/22 09:27:43 T46IPvJg
>>521
まさかと思うけど、2 は ping 返す設定になってるのね?
あと 2 の firewall は平気なのね?(つまり全て ACCEPT
でも問題は生じる)
524:login:Penguin
08/02/22 10:46:08 Yb+hcSiH
ちょっと調べてたらこんなの見つけたのだが、SSHでWEB鯖いじるぐらいならこれぐらいで十分なの?
かなり難しく考え込んでたけどこのスレ住民的にどうなのよ?
## ルールの初期化
iptables -F
iptables -X
## 基本ルール設定
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
## サーバー自身からのパケットを許可する
iptables -A INPUT -i lo -j ACCEPT
## WEBサーバーを許可
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
## SSHサーバーを接続許可
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
## ping制限
iptables -A INPUT -i ppp+ -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -i ppp+ -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
## 確立セッションのアクセスは許可
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
## 設定の保存
/etc/init.d/iptables save
## サービス再起動
/etc/init.d/iptables restart
525:login:Penguin
08/02/22 13:39:49 RBpx9Ma8
>>521です
>>522-533のご指摘内容は問題なそうだけど
どうやら鯖2の方に問題があるようでした
鯖2もNIC2枚差しでeth1の方でUSENに繋いでたのですが
そっちの接続が確立してると繋がらないみたいです
理由は分かりませんが
526:login:Penguin
08/02/22 14:06:32 TPBVWopc
順番に解決しろ
iptablesとは何の関係もない
527:login:Penguin
08/02/22 14:47:42 gxYR4a4l
>>525
鯖1も鯖2もUSENにつながっているってことか?
回線を複数契約していなきゃそんなことは普通できないでしょ。
IPが複数割り当てられているってことと回線が複数あるっていうことは意味が違う(レイヤが違う)んだから。
528:login:Penguin
08/02/22 15:09:03 RBpx9Ma8
>526
順番に解決していきます
昨日の段階では鯖1のNATテーブルに原因があると思って質問したのですが
見当違いのようでした
>527
USENが繋がってるのは鯖2のみです
回線は固定IPでISPを複数契約してます
529:login:Penguin
08/02/22 18:05:11 Uz1dF2tJ
何がやりたいのか、さっぱりわからない。
530:login:Penguin
08/03/08 10:02:41 Ja0OgwLu
iptables -L --line-number
で表示するとチェイン名の横に(0 references) とか(1 references)
とかってあるんだけどこれ何?参照って意味らしいけど何を参照してるのか
先頭の番号が何を表してるのがさっぽり分りませんw
531:login:Penguin
08/03/08 10:43:55 Ja0OgwLu
事故怪傑しますた!
532:login:Penguin
08/03/14 19:35:56 JcU4K66O
ルールを追加するスクリプト書いてますが
チェイン名のリストだけを取得する方法ないですか?
iptables -L
だと、ルールも長々と表示されるので困っています
533:login:Penguin
08/03/14 20:47:56 pQGeKBA7
>>532
超安直
$ iptables -L | grep ^Chain
534:login:Penguin
08/03/14 22:49:59 8R7ipwG4
もうちょっと書くと、
iptables -L -n|grep -e "^Chain" |cut -d " " -f 2
かな?
535:login:Penguin
08/03/15 23:38:04 ZRUflPco
ものすごい基本的なことかも知れませんが、iptablesが動いているとメールが送信できません。
iptablesを止めるとメール送信できます。
ルールですが
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:25
こんな感じになっていて、コマンドは下記の様に設定いたしました。
iptables -A INPUT -i eth0 -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 25 -j ACCEPT
OSはredhatです。
どうぞよろしくお願いします。
536:login:Penguin
08/03/16 01:42:43 XWkiOM0n
>>535
自己解決しました。
537:login:Penguin
08/03/18 00:41:45 xG7RTwPf
535=536
落書きウザ
538:login:Penguin
08/03/28 20:20:16 RgSeR1VL
ガガガ・・・ニコニコ生放送が見れなくてorzしてたら・・・してたら・・・
iptablesのせいですた
539:login:Penguin
08/04/07 11:40:37 MoCBASYC
iptablesを使いこなせないおまえのせい、の間違い。
540:login:Penguin
08/04/07 15:29:33 kB83g4pV
そうっすねそうっすね
カメラに向かってごめんなさいしてきます
541:login:Penguin
08/04/21 19:41:11 I4EnTsVG
自作ルータを作ろうと、本やネット上のiptablesのサンプルで勉強中の者です。
TCPフラグの検査部分については、どのサンプルもほとんど同じですが、
iptables -A FLAG_CHECK -p tcp --tcp-option 64 -j DROP
iptables -A FLAG_CHECK -p tcp --tcp-option 128 -j DROP
という2行が、あるものと無いものがあります(半々ぐらいの印象です)。
64も128もIANAには認められていないようです。
loose source routing blockとするサイトもありますが、違いますよね?(該当は131?)
この64と128を不正だと判断するのは何故でしょうか。お教えください。
ググるうちに、Internet Engineering Task ForceのRFC791を見て、68を蹴った方がいいかと
変な勘違いをしてしまったり、どんどん脱線しそうで orz
どうか、よろしくお願いします。
542:login:Penguin
08/04/21 19:50:13 maU7qj53
>>541?そもそもそれらのビットがどういう意味を持っているものなのか知ってから設定すれ。?それらはいずれもRFC3168で規定されたもので、CWR (輻輳ウインドウ減少) と?ECE (ECN-Echo) だ。
543:login:Penguin
08/04/21 20:40:22 I4EnTsVG
>>542
まさか、こんなに早いレスがあるとは。
まだ、ほとんど読んでませんが、最後の60ページあたりが重要なのかな?
どうも、ありがとうございます。
544:login:Penguin
08/04/21 20:58:20 8JxepitL
質問です。
iptablesで--uid-ownerを見て--set-markして
iprouteのほうでユーザー毎にルーティングテーブル用意して切り替えてるんですけど
複数のユーザーが同時に別のルートを使うとすごく遅くなります。
解決方法ありますか?
もしくは、この方法以外にユーザー毎にルートを別にする(or NICを別にする)方法ってありますか?
dest addressやdest portで切り分けることはできません。
Cent OS使ってます。
545:541
08/04/21 22:21:41 I4EnTsVG
ECN(CWRとECE)はこれまでReservedだったフィールドを使っている。
ECNに対応したホストは10か01をセットして送信する。
それを弾いていると。
ということは、クライアントがECNに対応していても、ルータがECNによりマークされたパケットを
無条件に破棄したら、クライアントはそれを利用できないと。
大雑把だけど、こんな感じでしょうか。
自作ルータへの道のりは何だか遠そう。
546:login:Penguin
08/04/21 23:19:02 maU7qj53
>>545
dropするのはどうかと思うのであれば、mangleターゲットを利用して
ecnのビットのみリセットしてあげるといい。
あとはそこを通らなければならないクライアントまわりだが、
俺が知る限り今時のOSでデフォルトでECNが有効になっているものは
なかったように思う(少し前のLinuxカーネルは有効だったような気がしたが)。
547:login:Penguin
08/04/21 23:50:09 I4EnTsVG
>>546
レスありがとうございます。
当面はDROPで問題なさそうですね。
通す必要が出てきたら、レスを参考に対応してみます。
548:login:Penguin
08/04/26 14:04:11 3GK4bazF
>>544
解決方法じゃないけど
別々のルートって何ルートくらいあるのかな
デフォルトと特定ユーザだけ違うルートの2つだけだとどうだろ?
そもそもどこがネックになってるんだろうね
549:login:Penguin
08/04/26 14:23:26 rL6Isbwd
iptablesの設定がちょっと自信無いので添削してもらえませんか?
gnome-terminalからコマンドを打って設定しました。
OUTPUT側は全部許可して、
INPUT側は192.168.1.3:80だけ許可して、他は全部拒否したいと思ってます。
# ルールをクリアする
iptables -F
# ポリシーを決める
iptables -P INPUT ACCEPT
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# ループバックアドレスからのアクセスを許可す
iptables -A INPUT -i lo -j ACCEPT
# 現在セッションを張っているサービスを許可する
iptables -A INPUT -m state --state ESTABLISHE,RELATED -j ACCEPT
# 特定のIPからhttpdにアクセス許可する
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 80 -s 192.168.1.3 -j ACCEPT
#他は全て拒否する
iptables -P INPUT DROP
# 拒否したパケットをログに保存する
iptables -A INPUT -j LOG --log-prefix "iptables: "
# 設定を保存して再起動
/etc/init.d/iptables save
/etc/init.d/iptables restart
550:549
08/04/26 14:28:42 rL6Isbwd
>>549です。
長くなったので続きです。
再起動した後にiptables -Lで現在の設定を確認してみました。
INPUTのACCEPT all -- anywhere anywhereとだけ書かれた行が
全部ACCEPTしてそうで気になるんですが、大丈夫なんでしょうか?
# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTA$
ACCEPT tcp -- 192.168.1.3 anywhere tcp dpt:http
LOG all -- anywhere anywhere LOG level warning prefix `iptables: '
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
551:login:Penguin
08/04/26 19:02:52 Zwo/OBI9
INPUT の policy を2回記述するのは何故?
552:549
08/04/26 20:11:54 rL6Isbwd
どこかのHPに書いてあったのを自分用にゴニョゴニョしてみてるんだけど、
一回目のは、設定するとき用で、ここでDROPしちゃうと、設定中に
ループバックがDROPされちゃってXとか動かなくなるから、、、だったかな(?)
二回目のは、本番用で、先に許可したやつ以外を全部DROPするため。
(>>549のだと、192.168.1.3:80以外をDROPする)
553:login:Penguin
08/04/26 20:19:56 dggOwSe0
そういう小細工をしないで済むよう、コンソールからログインするべき。
リモートから弄ると、面倒が増す。
554:549
08/04/26 20:39:01 rL6Isbwd
>>551,553
ポリシーの記述を一回だけにしました。
>>549の一回目のポリシーを決めるところでDROPにして、二回目はコメントアウトしました。
iptables -Lすると ACCEPT all -- anywhere anywhere があります。
設定内容とiptables -Lを貼ってもらえませんか?
設定内容は日本語で概要を箇条書きみたいなでもOKなんで、よろしくお願いします。
555:login:Penguin
08/04/26 21:37:09 rRmzMjE4
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- localhost.localdomain localhost.localdomain
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
DROP tcp -- anywhere anywhere tcp flags:!FIN,SYN,RST,ACK/SYN state NEW
ACCEPT tcp -- 192.168.1.3 anywhere state NEW,RELATED,ESTABLISHED tcp dpt:http
LOG all -- anywhere anywhere LOG level warning prefix `iptables: '
DROP all -- anywhere anywhere
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
注:ホスト名を設定してない(デフォlocalhost.localdomainのまま)実験用マシン。
ヒント:ループバック
556:login:Penguin
08/04/28 01:55:46 mRlZeDib
>>550
-L には -v も付けた方がいいよ。
そうすれば、
> INPUTのACCEPT all -- anywhere anywhereとだけ書かれた行が
> 全部ACCEPTしてそうで気になるんですが、大丈夫なんでしょうか?
こんな心配しなくて済む。
557:login:Penguin
08/04/28 19:12:31 na2HqIN+
>>554
ループバックの許可で、記述を省略しなければいい
iptables INPUT -p ALL -i lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
省略するなら、後半ではなく前半を省く
iptables INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
これなら、ACCEPT all -- anywhere anywhere とはならず、555のようになります
558:login:Penguin
08/04/29 03:34:54 h6sUreK1
#!/bin/sh
## ルールの初期化
iptables -F
iptables -X
## 基本ルール設定
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
## サーバー自身からのパケットを許可する
iptables -A INPUT -i lo -j ACCEPT
## WEBサーバーを許可
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
## SSHサーバーを接続許可
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
## ping制限
iptables -A INPUT -i ppp+ -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -i ppp+ -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
## 確立セッションのアクセスは許可
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
## 設定の保存
/etc/init.d/iptables save
## サービス再起動
/etc/init.d/iptables restart
559:login:Penguin
08/04/29 15:36:13 lchI1NQ1
SYNFLOOD対策は?
560:544
08/05/05 14:26:52 XEf57B8a
>>548
レスサンクスです。
おっしゃる通りルートは2つです。
どこがネックになってるかはようわからんです。
iptablesでのset-markは常にしているので、2ルート使うときのみ遅くなるということは
iprouteでルート切り替えるときですかね?
561:login:Penguin
08/05/07 15:10:54 RbvyPsKi
iptables -P INPUT DROP
のログを出力したいのですが,どうすればいいですか?
お願いいたします。
562:login:Penguin
08/05/07 16:17:07 cA4OeNQ4
>>561
INPUT Chainの最後でULOGを使う
563:login:Penguin
08/05/09 04:20:19 060mTVYu
--tcp-flagsについてお聞きしたいのですが
iptables -A INPUT -p TCP -m state --state NEW --tcp-flags ! SYN SYN -j LOG
って「コネクションがNEWのtcp接続パケットでSYNじゃない場合はログとる」
でいいんですか? "!"の反転で一つしかない場合の挙動がよく分からないのです
564:login:Penguin
08/05/16 04:48:44 YqgGCCxy
iptablesってarpフレームは制御できないのか
565:login:Penguin
08/05/16 22:08:12 7B77qxJ7
>>564
そりゃ "ip" tables だし。
ARPはIPと密接な関わりがあるプロトコルだがIPとは別のプロトコル。
566:login:Penguin
08/05/24 23:13:01 pr+441iJ
nat変換する前と後のパケットを対応付けることってiptableでできるもんですかね?
567:login:Penguin
08/05/25 01:41:55 XvecGNu/
できる。ip_conntrackでぐぐるがよい。
568:login:Penguin
08/06/16 21:56:07 Sp389m79
>>565
ほぅ。
んじゃTCP/UDP/ICMPも扱えないのか?
>>564
L2からL4までがiptabelsの守備範囲だが、
今んとこL2で扱えるのはソースアドレスのみ。
そのうちもっとよくなるよって誰かが書いてたな。
569:login:Penguin
08/06/17 00:45:22 chC02xgx
>>568
TCP,UDPは使えるだろ。
ICMPは一部変なのが混ざっていた様な気がする。
(RFCおさらいしてみるわ)
570:login:Penguin
08/06/19 23:08:34 ++GPZYJb
ICMPも結局IPヘッダの中ではTCP/UDPと同じレベルで扱われてるからなぁ
571:login:Penguin
08/06/25 15:32:08 xzwraCds
デスクトップ向けのiptalbes設定例ってないかな?
572:login:Penguin
08/06/28 00:48:27 +GJNGlhf
>>571
LAN内だとそもそも不要じゃないか?
WANに直結してるならサーバ向けの設定と同じだし。
573:login:Penguin
08/06/28 02:26:36 6HILxgYo
>>572
やっぱりそう?
何かあった時の為にルーターのパケットフィルタと
クライアントのiptablesで二重にしようかと思ったのだけど
やるなら >>173 のようなPFW的なルールかなあ
574:login:Penguin
08/07/01 10:33:09 5kCyiBxo
今こんなネットワークを組んでるんですが、
このままだとWAN1側から鯖にアクセスができないんですが、
これってiptablesで経路制御したりすると見えるようになるんでしょうか。
ルーターは市販のBBルーターで、当然TCP80へのアクセスはアドレス変換かけてます。
WAN2を切断すれば問題なく見えます。
WAN1 WAN2
┌─┴─┐ ┌┴┐
│ROUTER├(LAN)┤鯖│
└──┘ └─┘
575:login:Penguin
08/07/01 22:03:51 BcVQ+4QT
>>574
"advanced routing"
576:574
08/07/02 12:32:27 MvQGQFPV
>>575
yum updateしたらNICがうごかなくなって試せてないですが、
なんとかできそうです。
ありがとうございます。
577:login:Penguin
08/07/13 06:14:03 hmSEn1ns
iptables -A INPUT -j LOG で獲ったログの内容で、
MAC=XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
という部分があります。
16進数で14バイトのデータを表しているようですが、
イーサーネットのMACアドレスを表しているようで、そうでないようで、
よくわかりません。
イーサーネットのMACアドレスは通常6バイトです。
この意味をご存知の方がおられましたら教えてください。
ちなみに、使用している iptables は ver.1.2.7a です。
578:login:Penguin
08/07/13 16:32:09 KrnMSNSr
>>577
これがでんじゃね? 6+6+2 で14バイト
struct ether_header
{
u_int8_t ether_dhost[ETH_ALEN]; /* destination eth addr */
u_int8_t ether_shost[ETH_ALEN]; /* source ether addr */
u_int16_t ether_type; /* packet type ID field */
} __attribute__ ((__packed__));
579:login:Penguin
08/07/13 21:50:16 hmSEn1ns
>>578
ありがとうございます。大変参考になりました。
580:下っ端10年
08/07/15 00:58:58 ws2H6nIo
フラグメントの処理、自信のある方いますか?
iptables -A OUTPUT -f -d 192.168.1.1 -j DROP
こんな霊があったんですけど理解不足で
必要なのはFORWARD、INPUT、じゃないかと思いますが、
とりあえずこれ入れとけ。間違いない!とか
ここ見て出直して恋とか♪お願いします
581:login:Penguin
08/07/15 01:18:46 L/KarHmr
>>580
マニュアルくらい読め。 それと、そのマシンのIP設定くらい書け。
意味:
「断片化されたパケットの宛先が192.168.1.1ならば破棄する」
通常のパターンだと、192.168.1.1はルータだな。
要するに、外部に送信される妖しいパケットを叩き落とす設定。
582:下っ端15年
08/07/15 14:37:00 ws2H6nIo
ありがとうございます。
心配事なんですがセッションが盗まれてその中に攻撃パケットを流して
ブラウザーの脆弱性が攻撃されたりすることってありますか
盗まれなくてもIPが判っていたら紛れ込ますとか
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
上記の設定を加える?以外に安心策とかあればお願いします。
iptables -P INPUT DROP
それともこれだけで十分なのですか
583:login:Penguin
08/07/15 16:26:44 0LMTpKxH
>>582
あるかどうかという点でいえば「ある」。
ただそれを心配するのならインターネットに接続せず切り離しておけば良かろう。
584:login:Penguin
08/07/15 22:54:06 Gfj6ql9u
>>582
セキュリティに「これだけで十分」はないよ。
-j ACCEPTなルールは(単独で見れば)許可の追加なんだから安心材料にはならない。
闇雲に心配するより先にマニュアル嫁。
585:見習い18年
08/07/16 03:38:44 jnmMI8rz
こんなの作ってみました。クライアント専用です。
メールの問い合わせはWEBの見てから作ろうと思います。
皆さんでこれを育ててください。
僕が育てると3ヶ月かかりそうなんです。
#/bin/sh
# ルールの初期化
/sbin/iptables -F
/sbin/iptables -t nat -F
# すべてのパケットを拒否
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT DROP
# ループバックアドレスに関してはすべて許可
/sbin/iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
/sbin/iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
#LOG# Internetからの送信元IPアドレスがプライベートアドレスのパケットを入り込む前に破棄
/sbin/iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j DROP
/sbin/iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DROP
586:見習い卒業
08/07/16 03:44:43 jnmMI8rz
#LOG# Internetからの送信先IPアドレスがプライベートアドレスのパケットを出て行く前に破棄
/sbin/iptables -A OUTPUT -i eth0 -d 10.0.0.0/8 -j DROP
/sbin/iptables -A OUTPUT -i eth0 -d 172.16.0.0/12 -j DROP
/sbin/iptables -A OUTPUT -i eth0 -d 192.168.0.0/16 -j DROP
#LOG#Internetからの宛先IPアドレスがプライベートアドレスのパケットを破棄
(NetBIOS関連のパケットは、Internetに出さない)
/sbin/iptables -A INPUT -i eth0 -d 10.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -i eth0 -d 172.16.0.0/12 -j DROP
/sbin/iptables -A INPUT -i eth0 -d 192.168.0.0/16 -j DROP
#LOG#フラグメント化(怪しい)されたパッケトは破棄 (このルール自体が怪しい)
/sbin/iptables -A OUTPUT -f -d 192.168.1.1 -j DROP
/sbin/iptables -A OUTPUT -f -d 192.168.1.1 -j DROP
#ブラウザーWEB閲覧用 (このルールも怪しい)
/sbin/iptables -A OUTPUT -i eth0 -o tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
#(DHCP問い合わせ用)
/sbin/iptables -A OUTPUT -i eth0 -p tcp -d (ルーター) --dport 67 -j ACCEPT
/sbin/iptables -A OUTPUT -i eth0 -p tcp -d (ルーター)--dport 68 -j ACCEPT
#(DNS)問い合わせ用)
/sbin/iptables -A OUTPUT -i eth0 -p tcp -d (ルーター) --dport 53 -j ACCEPT
# その(1)確立セッションのアクセスは許可
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT)
# その(2)接続戻りパケットを許可する
/sbin/iptables -A INPUT -i eth0 -m state --state ESTABLISHED -j ACCEPT
/sbin/ipchains-save
LOGの部分はlim...意味が難しくてではよろしくです。
ダメダメなのは判っています。
587:login:Penguin
08/07/16 10:29:06 AB1ESdB4
ダメダメです。
何がしたいのかさっぱりです。
グローバルIPを持ったインターネット直結のクライアントPCなのか、プライベートIPを持った
LAN内クライアントPCなのかすら不明。
前者ならプライベートアドレス絡みの設定は不要だし、後者ならLAN内の他のクライアントと
通信不能です。
それから、確立済みセッションのアクセスを許可する設定をいれるなら、その他の個別の外向き
の穴あけは一切不要です。
588:一から出直し
08/07/16 18:38:36 jnmMI8rz
はい。おっしゃるとおりです。
想定としては、ルーターにぶら下げるクライアントPCを考えていますが
その上でVitualBoxにWindowsを乗せてたりして走らせたいのです。
ゆくゆくは、ルーターとして使いまわしの利く雛形が作りたい出のです。
最後のアドバイスですが
ーA OUTPUT DROP
とどうしてもしたいのですがクライアントに必要なルールをアドバイスしてください。
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -A OUTPUT -i eth0 -o tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
DHCPクライアントようだとかもいまいちどうすればいいのかぴんと来ないです
Mail関係はWEBのをいじれば何とかなると思っています。
PS.皆さんはNetBios?だけ防いでるみたいなんですけど通常はそれで大丈夫なんでしょうか?
589:login:Penguin
08/07/16 20:00:05 eQpwIRIV
>>588
何をしたいのかはっきりすれ。
590:login:Penguin
08/07/16 20:05:36 kFZg22Oc
OUTPUTは基本ACCEPTだと何か困ります?まぁ、人それぞれですが。
ルールですが、俺はなるべくシンプルに書くようにしてます。
>PS.皆さんはNetBios?だけ防いでるみたいなんですけど通常はそれで大丈夫なんでしょうか?
とりあえずこいつらがゴミパケだな。
135
137-139
445
1900
5353
591:login:Penguin
08/07/16 20:30:48 UBWifgR3
クライアントならこれで充分
iptables -P INPUT DROP
iptables -A INPUT -s 127.0.0.1/32 -i lo -j ACCEPT
iptables -A INPUT -s 192.168.1.2/32 -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
サーバーなら使うポートを開けていけばいい
592:login:Penguin
08/07/16 21:52:12 5/9UA2S9
うほっ、いい流れ
俺もクライアント用のルールを勉強させてくれ
593:一から出直し
08/07/17 00:11:34 nfCUoiJG
590さんありがとございます
591さんありがとございます
592さん一緒ににがんばりましょう
どうしてOUTPUT DORPじゃなければダメなのかと言いますと
もれてはイケナイ情報を入れておきたいからなんです
NoScriptを動かしていても何かの拍子で悪い事をする物が
入ってしまうことがあると思うのです
鍵を閉めずに泥棒に入られても諦めがつかない
閉めておけば自分で自分を慰めれる、、、
そんなところでしょうか。
594:login:Penguin
08/07/17 00:16:19 f01xAF4u
ふつーのtcp/ipアプリは1024以上の任意のポート(OSやIPスタックにも依存するが)を使って通信を始める
どのポートをACCEPTするかいつ誰が決めるの?
595:login:Penguin
08/07/17 00:16:24 rdjy5BJ1
>>593
じゃあ、真っ先にHTTPを閉じるべき。
596:login:Penguin
08/07/17 01:06:04 pkHmyVt0
>>593
|もれてはイケナイ情報を入れておきたい
ネットワークに接続されたマシンに、安全は無い。
そのマシンからLANカードを抜け。 物理的に遮断するのが最も安全。
究極は「紙に手書きする」。 この紙を銀行の貸金庫に保管しろ。(自宅なら耐火金庫。これで火事に遭っても情報は守られる。)
次点がスタンドアロンマシンに記録する方法。 ノート機に入力し、鍵のかかる机にでも入れるといい。
597:一から出直し
08/07/17 01:34:32 nfCUoiJG
595さん
596さん
お約束にお約束を重ねていただいてありがとうございました
僕は知っているこれを乗り越えて初めて答えがもらえることを。
594さんへ
port80へ向かうパケットを許すみたいな記述が出来ると思っています。
何しろ取り組みだしてまだ3日ぐらいなので自信はありませんが
じっくり取り組めるのは今週限り、何とかそれまでにその辺の答えに
たどり着きたいと思っています
598:login:Penguin
08/07/17 05:37:30 WKroJssy
面倒だからiptables使ってない。
何でも来い。
599:login:Penguin
08/07/17 06:14:15 RsBioRyn
zombieになってなきゃいいが
600:login:Penguin
08/07/17 07:55:29 w9Uw0jKl
>>594
それはaccept(listen)する側ではなくてconnectする側だと思うが。
一般的でないアプリケーションとしてaccept(listen)する場合は、
あらかじめ取り決めをしておくだけ。
601:一から出直し
08/07/17 09:15:29 nfCUoiJG
598
どこまで男前なんだ
600
わかる人にはわかるんでしょうけど僕にはわかりません
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -A OUTPUT -i eth0 -o tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
結局これではだめなのでしょうか?
602:login:Penguin
08/07/17 10:10:43 EloNkrJv
Ubuntu ならそれでもいいけど、Debian ではきびしい
603:login:Penguin
08/07/17 10:56:20 rdjy5BJ1
>>601
どうしてもOUTPUTを潰したいならそうしても構わないけれど、いくら窓や裏口を
戸締りしたところで、良く見える正面玄関(TCP80番ポート)を開けっ放しにしてたら
台無しだよ。
で、80番での出口も閉じるのが現実的なコンピュータならそれでもいいだろうけれど、
そういう特殊用途なのかい?
604:login:Penguin
08/07/17 13:09:29 RsBioRyn
webだけ許可するなら
iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT
でいんじゃないの。あと-iとか追加で。
605:login:Penguin
08/07/17 13:14:40 3QYpKb1i
>>601
ESTABLISHEDはACKが立ってるいわゆる戻りパケットだからOUTで使わなくていい。
OUTの穴あけはSYNの要求だから
-A OUTPUT -p tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp --dport 119 -j ACCEPT
とかかな。
FTPのパッシブの場合は逆にACKフラグが立ってる1024-65535を開けなきゃ通信出来ないから
-A OUTPUT -p tcp ! --syn --dport 1024:65535 -j ACCEPT
になるのか・・・したこと無いのでよく分からんがw
606:login:Penguin
08/07/17 19:52:59 V9y8Yy3u
>>602
ubuntuもdebianも一緒でしょ
デフォはiatables空だし
607:login:Penguin
08/07/17 20:01:22 btY7UUii
クライアント用途なら >>173 のようなパーソナルファイアウォール的な
--cmd-owner でやるのが適しているんじゃないの?
608:login:Penguin
08/07/17 22:02:01 nfCUoiJG
602
すいません。厳しいの意味がわかりません。
603
現在このマシンでサーバーを立てる予定はありません。
そうゆう意味でいいですか?
つまり想定しているのはクライアント専用です。
そこからLinuxの世界に入れてもらおうと思っています。
609:login:Penguin
08/07/17 22:45:05 aqSb7+WT
>>601
このへんから始めたら。
modprobe ip_conntrack_ftp
iptables -P INPUT DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -P OUTPUT DROP
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -m limit --limit 1/s --limit-burst 5 -j LOG --log-level warning --log-prefix "bad OUTPUT packet: "
iptables -P FORWARD DROP
で、最初は大量にbad OUTPUTなログが出るから、ログを見ながら必要なものを
OUTPUTのログ指定の前に足していけばいい。必要そうなものは例えば
iptables -A OUTPUT -p udp -m udp --sport bootpc -j ACCEPT
iptables -A OUTPUT -p udp -m udp --dport domain -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport http -j ACCEPT
iptables -A OUTPUT -p icmp -m icmp --icmp-type echo-request -j ACCEPT
てな具合。インタフェース指定やポートの細かい限定などは、
意味があるとき以外はしないでいいっしょ。管理するの面倒だし。
あと、把握できてないルールはつけない。
610:一から出直し
08/07/17 23:10:07 nfCUoiJG
607
そうなんですよ。そこもチェックしてたんですけど
効果的な使い道が浮かばなくて、、とほほです。
609
ありがとうございます。
勉強の雛形にさせてもらいます
611:login:Penguin
08/07/23 01:53:42 1UUyJ2NP
knoppix firewallの一番簡単な設定を選んで、iptables -Lしたのが
以下のやつ。
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT 0 -- anywhere anywhere
FROMINTERNET 0 -- anywhere anywhere
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT 0 -- anywhere anywhere state RELATED,ESTABLISHED
FWDINTERNET 0 -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
TOINTERNET 0 -- anywhere anywhere
Chain FROMINTERNET (3 references)
target prot opt source destination
ACCEPT icmp -- anywhere anywhere
ACCEPT 0 -- anywhere anywhere state RELATED,ESTABLISHED
DROP 0 -- anywhere anywhere
Chain FWDINTERNET (3 references)
target prot opt source destination
ACCEPT 0 -- anywhere anywhere
Chain TOINTERNET (3 references)
target prot opt source destination
ACCEPT 0 -- anywhere anywhere
きっと突っ込みどころ満載だろうけど、これを参考に自分は
がんばってみる。
612:login:Penguin
08/07/24 01:01:09 ht7CyEPW
>>611
せっかくだからiptables -L -vしたら
613:login:Penguin
08/07/24 01:06:59 FHo+/IiI
ウチの環境(日本のみ許可、携帯のみ許可、etc...)で
そんなことしたら表示が恐ろしいことに・・・
-n を付けようぜ!
614:611
08/07/25 02:20:35 LOINhS18
>>612
突っ込みサンクス。INPUTが筒抜けになってるのね。改善をはかって
下のような感じにしてみた。クライアント用途ならこんな感じで
良いのかな。
Chain INPUT (policy ACCEPT)
target___prot___opt___source___destination
frominternet___0___--___anywhere___anywhere
Chain FORWARD (policy ACCEPT)
target___prot___opt___source___destination
fwdinternet___0___--___anywhere___anywhere
Chain OUTPUT (policy ACCEPT)
target___prot___opt___source___destination
tointernet___0___--___anywhere___anywhere
Chain frominternet (1 references)
target___prot___opt___source___destination
ACCEPT___icmp___--___anywhere___anywhere
ACCEPT___0___--___anywhere___anywhere___state RELATED,ESTABLISHED
DROP___0___--___anywhere___anywhere
Chain fwdinternet (1 references)
target___prot___opt___source___destination
ACCEPT___0___--___anywhere___anywhere___state RELATED,ESTABLISHED
DROP___0___--___anywhere___anywhere
Chain tointernet (1 references)
target___prot___opt___source___destination
ACCEPT___0___--___anywhere___anywhere
615:login:Penguin
08/07/31 17:36:39 XyjnsPYp
Debianでどのように設定していますか
if-pre-upのどこにリンク張っていますか
pre-upに置いたらまずいですか
616:login:Penguin
08/07/31 21:30:17 zdX0l+Wk
/etc/network/if-pre-up.d/にスクリプト
なんの話だ
別に
617:login:Penguin
08/08/05 21:25:25 Z3eVziP2
forwardチェインでログとってもMACアドレス記録されるようにしてほすぃ
618:login:Penguin
08/08/11 23:54:22 TGzzuzuv
OSはCentOS5です
ルータでは特定のIPからのポートスキャンをはじけないので、
IPテーブルの設定ではじきたいのですが、具体的なコマンドを教えてください
ちなみに、まちBBSからのポートスキャンをはじかないと書き込みができないので、
まちBBSからのポートスキャンのみはじきたいです
619:login:Penguin
08/08/12 00:50:06 Bc57GTps
サーバ管理してるなら、それくらいは自力で頑張ってみよう
620:login:Penguin
08/08/14 22:25:32 84iyOxyD
>>23
>>24
24氏のアドバイスで、ppp0の全てのパケットは、192.168.0.10へ
DNAT(Destination NAT)されるようになったけど、それでよかった
んだよね。
>>31
で、31氏が書いているのは、iptablesが動いているマシンに
httpdや、smtp,pop3, DNSなどのサービスが動いてたら、
それらを除外せにゃならんよねという、話だと理解しました。
で、最後にDNATがチェインの最後で実行されればいいんですよね
621:login:Penguin
08/08/15 03:07:08 AyoNWC/X
↑2年半前にレスってどうよ?w
622:login:Penguin
08/08/15 07:47:13 g1wlhWWM
専ブラ使っているんでね、このスレ見つけて
最初から読んで、resってみたんだが、ダメかね。
というか、このスレ立ってから、そんなに経つのか
よく落ちないな。
623:login:Penguin
08/08/15 07:53:05 3444HIb9
UNIX板のipfilterのスレなんて5年半で200レスくらい……
624:login:Penguin
08/08/31 23:21:06 n+n8JTmC
国内プロキシ経由の海外からのアクセスは防ぎようはないのかな
625:login:Penguin
08/09/01 00:27:34 fjO0v2rO
国内プロキシを弾くしかないね。
逆に、ホワイトリストを作成し、登録したIP以外を全部弾いた方が楽だと思う。
626:login:Penguin
08/09/02 03:53:13 U/dhSPhZ
うん。それもアリなんだね
だけどサーバー目的じゃないんだ
攻撃者特定の為に国内限定にしようと思ったんだけど
踏み台からの攻撃もあるから努力のしようがないことに気がついた
627:login:Penguin
08/09/02 04:05:58 CyZGqQKe
webサーバの保護の話でないなら別に放っておけばいんでないの
628:login:Penguin
08/09/13 13:23:36 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
08/09/13 13:24:55 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
08/09/13 13:43:36 12jhi4RP
なんか一見合ってそうに見えるけどな……
カーネルはデフォルトのもの?エラーとか出ないで
スクリプト実行できてるよね。
631:login:Penguin
08/09/13 15:13:23 XkB/m5n5
>>629
まずはチェインがどの順序で解釈されるものなのか知っておいたほうがいい。
POSTROUTINGはFORWARDやOUTPUTよりも後で実行されるので、
そこでMASQUERADEするのであればクライアントIPなどの判断はその後で
やらなきゃダメ。
632:628
08/09/13 15:27:44 W75dUOM6
レス、ありがとうございます。
>>630
カーネルは、Ubuntu 8.04 サーバー版で、特に手を加えていません。USBメモリに入れているくらいです。
スクリプトもエラーは出ていません。
>>631
なるほど、解釈される順番には気がつきませんでした。
早速試してみます!
633:login:Penguin
08/09/13 15:33:01 oHtnNr1m
クライアントから外部に向かうパケットがinput段階で叩き落とされないか?
634:login:Penguin
08/09/13 18:26:06 12jhi4RP
ホントだ。-d が余計だな。
635:628
08/09/13 21:32:24 XplBrS+o
返信遅れて申し訳ありません。
iptableと格闘していましたが、一向につながる気配がありません。
レスを頂いた件を、すべて試してみたり、
> Linuxで作るファイアウォール[NAT設定編]
> URLリンク(www.atmarkit.co.jp)
に、乗っているサンプルを改造したりしていましたが
成果はさっぱりです。
636:login:Penguin
08/09/14 02:13:23 ko4Rvcco
>> iptables -A FORWARD -i eth1 -o ppp0 -s $client_ip -j ACCEPT
FORWARDチェインなんでエラーは出ないんだが、
-i と-o はどちらか一方でないと成立しないような気がする
637:login:Penguin
08/09/14 02:14:57 uvFDe4SI
>>635
iptables -nvL と iptables -nvL -t nat、各種ログはチェックした?
638:login:Penguin
08/09/14 09:28:28 FG5fpXZJ
-s -d とか -i -o あたりが自分の使ってるルールに比べると
ちと厳密だね。その辺外して後から変えていったら。
639:login:Penguin
08/09/14 11:34:18 aDiVPCKf
URLリンク(fedorasrv.com)
のやり方で海外からのアクセスを弾いてるのですが
読めば読むほどよくわからなくなってきたので
質問させていただきます。
cidr.txt ・・・ cidr.txt.1 ・・・ cidr.txt.100 ・・・ cidr.txt.1056
と同じようなファイルがどんどん増えていきます(汗
消しても消しても増えるのですが新規にファイルを作成するのではなく
cidr.txt に上書きするようにすることはできないのでしょうか??
あと、(2)IPアドレスリスト更新チェック に
毎日自動でIPアドレスリストの更新有無をチェック
と書いてますが何時に更新するか設定はできないのでしょうか?
640:login:Penguin
08/09/14 11:42:51 WXeKp2xK
>>639
上書き
wgetを-Oで保存ファイル名指定
更新時刻
crontabで設定
641:628
08/09/14 16:53:01 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
08/09/14 17:40:13 kd4iGQPt
全部ACCEPTにしてもつながらないとかないのかね
643:login:Penguin
08/09/14 17:57:54 RVgh8DFt
>>642
いや、さすがに、それは無いでしょ?
先にルーティングできることを確認しなかったら何が悪いか判らないじゃない?
644:628
08/09/14 19:51:28 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
08/09/14 20:27:29 RVgh8DFt
>>644
> >>643
> そうですね。何がわからないのか分からない状態です。
まず、iptableを切って、クライアントから外界が見れることを確認してください。
その状態から、徐々に絞っていく方が楽でしょう。(なお、クライアントの防備は厚めに。)
646:628
08/09/15 22:06:16 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
08/09/15 23:01:45 NBhfMiPw
>>646
お疲れさん(笑
648:login:Penguin
08/09/26 20:02:35 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
08/09/26 21:47:23 G3dQVRC8
ISPからくるIGMPのマルチキャストのパケットらしい。
中身まで見ると、何かわかるかも。
URLリンク(www.dslreports.com)
650:login:Penguin
08/09/30 09:25:20 6LAw1Ent
kernel2.4系で使っていたルールをkernel2.6系に使ったら
svnのコミット出来なくなったり、一部2.4の時と動作が違うのですがどの辺が変わってるんでしょうか?
651:login:Penguin
08/10/02 15:52:16 Cu06Z5f2
WebページのCGIからソケット開いて~ ってやったものの応答をうけとるには
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ではダメなようなのですが どうしたら受け取れますかね?
652:login:Penguin
08/10/02 20:50:38 3mmtWAQL
>>650
と言われても何とも言えん。ルールを出せ。
>>651
そのWebページとやらはどこにあるんだよ。
構成を出せ。
653:login:Penguin
08/10/05 11:41:14 Fghhu9nw
おまえら、netstat-natの出力みたことありますか。
なかなか楽しいが、見た内容を人にしゃべっちゃだめだぞ。
654:login:Penguin
08/10/05 21:15:29 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
08/10/05 21:17:03 1+nQfTzw
>>654
誤)ぐぐるとNATばかりでてきます。NATもpppoeも関係なのです。
正)ぐぐるとNATばかりでてきます。NATもpppoeも関係ないのです。
間違えちゃったorz
656:login:Penguin
08/10/05 21:28:53 1+nQfTzw
>>654
間違え&連投すいません。
ルーターとして[Linux Box]は動いています。ずぼずぼ通信できてしまいます。
制限ができないのです。
連投すいません。
657:login:Penguin
08/10/05 22:26:42 j+q2VtR8
>>654
普通にFORWARDチェインに対してACCEPTとDROPのルールを作ればいい。
-t natとかは不要。
658:login:Penguin
08/10/05 22:38:39 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
08/10/06 00:04:41 Q2gv2CnD
iptables -L -v
と
iptables -t nat -L -v
を晒せ
660:login:Penguin
08/10/06 00:20:27 E4Yiq6p1
ICMPなpingは行き帰り両方をきちんと定義しないと駄目じゃないか?
661:login:Penguin
08/10/06 07:52:15 kHXndwyF
>>658
TCPだってping (ICMP echo)だって行き帰りのパケットがあるだろうに。
ネットワークの基礎を勉強し直せ。
662:login:Penguin
08/10/07 00:18:45 L0iIKOv8
TCPはステート情報を使うようにすれば、片方向の定義だけでいいけどね。
(FTPとか特殊なプロトコルをのぞく)
663:login:Penguin
08/10/07 07:21:32 4sfRDV6t
RELATED,ESTABLISHEDは超重要
664:login:Penguin
08/10/08 19:26:44 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
08/11/02 15:09:02 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
08/11/02 15:14:37 fqVxYuim
>>664
-i $INTIF 取ってみな
667:login:Penguin
08/11/02 15:51:43 fqVxYuim
>>658
あと追記だけど、LAN1/LAN2側双方へのマスカレードの設定があと必要だとおもうよ。
このくらい自分でしらべてくれよん
668:login:Penguin
08/11/07 15:57:30 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
08/11/07 16:39:12 CnNNPz2n
pc1 は ip_forward してますか?
670:login:Penguin
08/11/07 16:39:43 CnNNPz2n
ごめん、pc0 は ip_forward してますか?
671:login:Penguin
08/11/07 20:21:24 TIV9E6l7
>>670
/proc/sys/net/ipv4/ip_forward
に1とあり大丈夫なようです
672:login:Penguin
08/11/07 21:48:58 lFnUHJKa
>>668
というか「ルータ」に192.168.1.0/24のスタティックルートを設定できないのか?
673:login:Penguin
08/11/08 00:50:25 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
08/11/08 01:41:09 MJgV0EtY
restartしてないだけというエスパー予想。
675:667
08/11/08 20:06:18 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
08/11/08 20:09:41 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
08/11/08 20:14:24 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
08/11/08 20:27:54 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
08/11/08 20:34:22 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
08/11/08 20:38:58 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
08/11/08 23:10:35 iMsDtzmC
>>680
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
これは余計じゃないかな。
>>668
それとip_conntrack モジュールはロードしている
682:667
08/11/09 07:45:30 cyMfQhQp
>>681
余計かなぁ…?
ルーターとPC1が別のアドレス空間になっているから
PC0用のアドレスに書き換えてやらないとパケット戻ってこない気がするけど
683:login:Penguin
08/11/09 13:35:21 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
08/11/09 14:02:18 MyRkucom
なーるー
原因不明だな
全部のiptablesオプションに --modprobe=/sbin/modprobe 付け足して
呼んでみるとかやってみるべきかもね
それでもダメなら pc0 に pc1 から ping して応答が帰ってくるかどうか
ぐらいのレベルから検証してみたほうがよさそうだね。
685:login:Penguin
08/11/10 22:31:41 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
08/11/11 02:07:43 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
08/11/13 19:57:50 zJ0w7PDt
telnetにListenIP設定すれば?
絞るなら大本から絞れ
688:login:Penguin
08/11/14 17:28:14 FovMWI9O
>>687
こういうのって(iptablesとデーモンの)両方やらないか?
689:login:Penguin
08/11/14 20:11:16 4rtpLX5i
ポートを開けないようにアプリ(telnet)側でやり、
さらにうっかり開かないようにiptablesで縛るね。
片方だけだと「うっかり」が結構出るけど、両方とも独立に
設定するならオペミスで開いてしまう事故は非常に起こりにくくなる。
690:login:Penguin
08/11/15 01:42:42 Zo/JTpVo
ssh+鍵暗号 でいいやん
telnet 殺しちゃいなよ
691:login:Penguin
08/11/15 02:14:20 26XJ0s7F
ここでの telnet はあくまで例なんじゃないの?
692:login:Penguin
08/11/15 08:53:49 OWM1nEoc
それやるとミスもあるんだよな。wrapperではじいてるから
後でFW設定しようとか思ってたら一台だけ設定してなかった、とか。
693:login:Penguin
08/11/15 09:18:53 4Owtonid
後でやろうと思ったとか、ちゃんと手順にそってやったことを確認しながらやらないのは問題外
ヒューマンエラーを防止するために手順メモとチェックリストは個人的にでも作ったほうがいい。
まあ、より強固で確かな方から設定していった方が漏れがあった時被害が少ないかもな…。
694:login:Penguin
08/11/15 13:00:17 OWM1nEoc
実際はもうちょっと複雑な過程ではまるんだが、ちと面倒だったんで……
あとはAの方ではじいてると思ってそっちのルール更新してたらBだった、とか。
695:login:Penguin
08/11/18 00:18:36 ruHhaDcu
ubuntuのufwで出力されるiptablesのルールって誰か分かりますか?
あれってデスクトップ用に最適化されているんですかね?
696:login:Penguin
08/11/18 00:24:59 jDfQIBNa
2.4 系だと MANGLE に TCPMSS 張れないから
FORWARD と OUTPUT に張っているけど
MANGLE に張る場合となにが違うのかよくわからん
697:login:Penguin
08/11/18 04:32:57 d3c/lwkM
>>695
設定してシェルから
iptables -L -v
してみれば良いのでは?
ていうかして、参考にしたいから。
自分はknoppix firewallと同じルールにしているけど、ubuntuのやつも
見てみたい。
698:login:Penguin
08/11/18 10:14:23 MRSXpnk2
>>697
いや、自分も手元にubuntu環境ないから見てみたいのですよ
699:login:Penguin
08/11/18 10:17:31 MRSXpnk2
あ、ubuntuライブCDが手元にあったわ
ufw enable して iptables -L -v 見てみる
700:544
08/11/24 21:48:01 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
08/11/24 21:56:04 qB2Gxz8P
追加です。
ping 66.249.89.99 -I eth0
とかすると、ソースアドレスはeth0のアドレスになってて問題なくpingは通ります。
702:login:Penguin
08/11/25 01:17:36 zZh6AovX
・IPv4
・マルチホームホスト
・デフォルトゲートウェイ2つ
・ポリシールーティングなし
が条件かな?
この場合、
・ルーティングエントリは、送出先インターフェースに関連づけられる。
・IPアドレスは、インターフェースに関連づけられる(が、他のインターフェース経由で送出されても良い)
・IPアドレスとルーティングエントリを直接関連づける機構がない。
・2つのデフォルトゲートウェイのうちどちらが使われるかは、メトリックによって決まる。値が同じなら平等。
みたいなかんじ。
IPアドレスと同じサブネットにいるゲートウェイが必ず使われるという保証はない、と言う状況になると思う。
解決策は、今のようにSNATをかけるか、ポリシールーティングで厳密にルーティングを指定するか、だと思うが。
703:700=544
08/11/25 18:33:11 +bzr+l5D
>>702
レスサンクスです
ポリシールーティングなのかわからないんだけど
>>544にあるように、UIDによってルーティングテーブルを分けてます。
mainテーブルはeth1がデフォルトになってて、
一部のユーザーはテーブル2を見て、eth0に振られます。
>>700の現象が起きるのはそのユーザーのみです。後出しですいません。
tcpdump見てると、domainのみeth1のアドレスでまず送って、その後eth0のアドレスで送ってます。
>>544で言ってた遅さの原因は最初のDNS問い合わせがタイムアウトしてるからのようです。
>・IPアドレスは、インターフェースに関連づけられる(が、他のインターフェース経由で送出されても良い)
ここを厳密にインターフェースに関連付けられればいいんですけど、SNATしかないんでしょうか?
704:700=544
08/11/25 18:34:16 +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
08/11/25 19:15:43 +bzr+l5D
自分でも混乱してきたのでまとめ
table2を見てる特別ユーザーの場合
>>704の状態
ソースアドレスがeth1のアドレスになってしまって通信不可
>>704に加えてSNAT
基本的にソースアドレスはSNATで指定したアドレスになり通信できるが
DNSのみeth1のアドレスで問い合わせ後、SNAT指定のアドレスで問い合わせるので遅くなる。
706:login:Penguin
08/12/25 14:38:37 W3gIymfl
>>666
亀ですんません
-i $INTIF取ってもダメでした
結局、-s ! $OREIPで凌いでます
707:login:Penguin
08/12/26 00:11:11 VXirjz6Y
今さっき、単純なポリシールーティング(fwmark未使用)なら動いたけど・・・・
なんか、自分のよりずいぶんややこしいことやってるな
708:700
08/12/26 18:06:08 ltPqHwfd
やりたいことは単純で、ユーザー毎に使うネットワークを分けたいだけなんですけどね。
宛先のみでは分けれないので静的なルーティングでは実現できず、fwmark使うしか思いつかなかったんです。
709:login:Penguin
08/12/27 00:08:55 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
08/12/27 00:58:36 jUvzXagD
自分でsocketから書けばbindでIPアドレス指定することで
ルーティングで小細工しなくてもNICを使い分けれるんですね。知らなかった。
でもwgetとか普通のクライアントアプリならbindとか呼ばず、いきなりconnectじゃないですか?
そういう場合ってどうやってソースアドレス決定するんでしょう?
ルーティングテーブルでローカルネットワーク使うように設定しても(>>704のtable2)
ソースアドレスがグローバルIPになっちゃうんですよね。
##完全にiptablesの話じゃないな
#たしかに。板違いかも。
711:login:Penguin
08/12/27 07:35:52 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} URLリンク(hogehoge)<) ではgw2
wget URLリンク(hogehoge) ではmainテーブルで指定したgw
に向かってパケットが投げられる
712:login:Penguin
08/12/27 07:44:29 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
08/12/27 12:23:31 itSOO7pC
スレ違いになるけどIP配布するときにゲートウェイをMACアドレスの
グループごとに変えるとかじゃ、だめなのかな。セキュリティの問題で
分けてるんだとすると、だめだが……
714:700
08/12/27 19:04:19 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
08/12/28 11:07:42 em+fhSry
スルー推奨
716:login:Penguin
09/01/16 16:01:57 okJnBqgJ
2008年12月 攻撃元国別ランキング
《1位》韓国(78.1%)
《2位》アメリカ(5.4%)
《3位》中国(2.5%)
《4位》サウジアラビア(2.1%)
《5位》台湾(中華民国)(1.5%)
URLリンク(www.security.ocn.ne.jp)
717:login:Penguin
09/01/16 16:06:20 u7wlazQY
>>716
これは 韓国ネチズンvs 2ちゃんねらー のせいじゃないかな。でないと偏りが大きすぎるw
718:login:Penguin
09/01/16 16:46:44 +DlK6TCr
迷惑な話だ(笑 vipper専用の回線でも引いてそこでやってほしい
719:login:Penguin
09/01/16 22:24:37 Qy3jFgAJ
DebianでfirestarterのGUIを最小化自動起動させている方いらっしゃいませんか?
URLリンク(www.fs-security.com)
上記サイトに書いてあるようにしたのですが、ログイン後通知パネルに自動起動しません
/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
09/01/16 22:29:09 VaS+Z9mp
>>719
usernameのところをちゃんと自分のユーザー名にした?
firestarterの場所はちゃんと合ってる?
端末でsudoとかsuとかせずにfirestarterと打って起動出来る?
721:719
09/01/17 16:22:18 98qqdXhI
>>720
usernameは自分のユーザー名にしました
firestarterの場所は/usr/sbin/firestarterにしました
sudoとかsuせずに起動できません
722:login:Penguin
09/01/17 18:08:23 lpCkIAcT
>>721
ごめん間違った。
sudo firestarterでパスワード要求されずに起動できる?
セッションにはsudo firestarterで登録ね。
723:719
09/01/17 18:36:18 98qqdXhI
>>722
セッションへの登録の仕方が間違ってました
自動起動時の最小化はできませんでしたが、通常モードで起動することはできました
本当にありがとう
724:719
09/01/17 19:05:29 98qqdXhI
>>722
--start-hidden
↑を付加して最小化もできました…orz
725:login:Penguin
09/01/23 08:14:33 GeOEI94J
こんなのみつけた
コメントもついてて、大元になるスクリプトをジェネレートしてくれるみたい
これを少しづつ買えていけばいいじゃないかな。パスとかルールとか
URLリンク(easyfwgen.morizot.net)
726:login:Penguin
09/01/30 16:53:34 037qY2Hb
最近namedに
72.20.3.82#35022: query: . IN NS +
のような連続攻撃がバンバン来る。
そこで同一IPアドレスから一定数以上の53/UDPパケットが来たらiptablesで叩き落としたい。
ところが… recentモジュールはTCP専用だったのね。知らなかった。orz
UDPでrecentモジュールと同様のことをするにはどうすれば良いのでしょう?