【鉄壁】iptablesの使い方 3【ファイアウォール】
1 :
login:Penguin :
2006/01/07(土) 09:23:53 ID:lNsnmDoV
乙
5 :
前スレ953 :2006/01/07(土) 15:03:04 ID:NozLc+wJ
sambaの共有設定で悩んでいたものですが、とりあえず下記の設定でできるようになりました。 まだツメが甘いですが、また時間をみてぼちぼち無駄をチェックしていきたいと思います /sbin/iptables -A OUTPUT -p udp --sport 137 -d 192.168.0.100 --dport 137 -j ACCEPT /sbin/iptables -A INPUT -p udp --sport 137 -s 192.168.0.100 --dport 137 -j ACCEPT /sbin/iptables -A OUTPUT -p udp --sport 138 -d 192.168.0.100 --dport 138 -j ACCEPT /sbin/iptables -A INPUT -p udp --sport 138 -s 192.168.0.100 --dport 138 -j ACCEPT /sbin/iptables -A OUTPUT -p tcp -d 192.168.0.100 --sport 139 -j ACCEPT /sbin/iptables -A INPUT -p tcp -s 192.168.0.100 --dport 139 -j ACCEPT /sbin/iptables -A OUTPUT -p tcp -d 192.168.0.100 --dport 139 -j ACCEPT /sbin/iptables -A INPUT -p tcp -s 192.168.0.100 --sport 139 -j ACCEPT /sbin/iptables -A OUTPUT -p udp --sport 137 -d 192.168.0.255 --dport 137 -j ACCEPT /sbin/iptables -A INPUT -p udp --sport 137 -d 192.168.0.255 --dport 137 -j ACCEPT /sbin/iptables -A OUTPUT -p udp --sport 138 -d 192.168.0.255 --dport 138 -j ACCEPT /sbin/iptables -A INPUT -p udp --sport 138 -d 192.168.0.255 --dport 138 -j ACCEPT /sbin/iptables -A INPUT -m state --state ESTABLISHE,RELATED -j ACCEPT ポイントは、139番片側固定、片側anyになることと ブロードキャストは137だけでなく138も必要なんだってことですた #ESTABLISHEをはずしてもできるかな?
6 :
login:Penguin :2006/01/07(土) 15:04:33 ID:NozLc+wJ
ちなみに接続できなくなってしまった職場のPCは未だ原因不明・・・ (実験用なんでまぁぼちぼちやっていきます うまくいくようになったら仕事用PCのほうへ設定を移植する予定)
なんだかとっても低レベルな内容でお恥ずかしいデスタイ・・・スマソm(__)m
ESTABLISHE,RELATEDな行は最初に入力したほうがいいと思わなくもない。
iptablesでポートスキャンを防ぎたいのですが、 FIN Xmas Null スキャンは /sbin/iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP で防げるのですが、 TCP connect() スキャンと TCP SYN スキャンを防ぐ方法を検討しています。 巷でよく見る /sbin/iptables -N tcp-syn-scan /sbin/iptables -A tcp-syn-scan -m limit --limit 1/s --limit-burst 4 -j RETURN /sbin/iptables -A tcp-syn-scan -j LOG --log-prefix "tcp-syn-scan:" /sbin/iptables -A tcp-syn-scan -j DROP /sbin/iptables -A INPUT -i eth0 -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j tcp-syn-scan をやっても実際にnmapで試してみるときちんとスキャンできてしまいます。 iptablesだけで防ぐのは不可能なのでしょうか?
結論を言ってしまうと、防ぐ必要がない。無意味。 スキャンされてもそれが何か?って感じ。
まあ実際使うポートだけ開けて、他は閉じておけば 開いてるポートのデーモンだけきちんと設定したり、 セキュリティホールチェックしておけば問題ないといえば問題ないけど 開いているポートがばれないに越したことはないかなーと
どのみち解ろうが解るまいが直接つないでくるからな。
>>9 > --tcp-flags SYN,ACK,FIN,RST RST
SYN スキャンの場合、SYN|ACK に対して RST 返すので
それを拾ってるだけ。SYN|ACK が送られるのは開かれたポートに
SYN が来たときだけだからそんなに多くないはず。
1/s にひっかかるかどうか…。
それに、引っ掛かったとしてもある程度は通されるわけだし。
まぁ、どうしてもってなら knockd 使えや。
つーか本当にバレずにスキャンしようと思ったら数日から数週間かけてゆっくりやるけど、 そういう周到な攻撃が来るのならおまえらが何やっても無駄だからな。
侵入検知と改ざん検知の2つも組み合わせてこそ意味があるからな、これ。 すり抜けられたことを警告できないシステムなんて防御の意味なさ杉。 iptablesだけ設定して満足してる奴などおらんはずだ。多分。SnortやTripwire併用してるよな。
ハゲワラ
面倒だからiptables使ってない。 何でも来い。
過去ログ、どこかで見られませんか?特に前スレ。 すごい充実した内容だったので。。。 保存してなかった自分の愚かさに泣けてくる。
20 :
18 :2006/01/13(金) 01:35:29 ID:AFhxZw92
>>19 さん
多謝。助かりました。ありがとうございますた。
21 :
login:Penguin :2006/01/15(日) 14:48:09 ID:RkmQBZOu
ebtablesも使ってあげてください
22 :
login:Penguin :2006/01/18(水) 19:31:04 ID:tToObXaA
firestarter1.0.3とIPエイリアス(eth0:0)の組み合わせで、NATがちゃんと動いてる人いますか? LAN内のPCはpingしか通らない状況。 設定ウィザードではeth0:0が出てこないので、一度sit0を指定して、/etc/firestarter/configurationを 書き換えてやってみたんだけど。 以前バージョン0.8とかの時代に同じようにIPエイリアスでやった時は、設定ウィザードでeth0:0指定して動いてたのに。 pingのみ通るってことは、icmpのみ通す設定になってる?
23 :
login:Penguin :2006/01/25(水) 19:55:27 ID:xg2oZ9Q3
今までIIJmio(VDSL)でインターネットに接続してきましたが 先日Fiberbit(テプコ光)に乗り換えました。 それまで動作していたルータ(メルコ製WHR2-G54)でPPPOE接続をすると 何故か失敗し問い合わせても動作保証外と言われたため Linuxマシンでルータを設定しました。 po-pppoeの設定や、最低限のiptableの設定は出来たのですが 同メーカー製ルータで実装されていたDMZ機能をiptablesで 再現する方法がわかりません。 よろしければご教授お願い致します。 ・ここでのDMZとは アドレス変換を使用しているときに外部から変換先不明のIPパケットを LAN内のIPアドレスに転送するという事です。 本来の意味とは若干違いますがご了承下さい。 internet --- ppp0(eth0 210.162.XXX.XXX)-[Linux Redhat 9.0]-eth2(192.168.0.1)---DMZ(192.168.0.10) こんな感じでinternet側から宛先不明のIPパケットを192.168.0.10に転送しようと以下のような設定を 行いましたがうまく転送されませんでした。 iptables -t nat --PREROUTING -i ppp0 -j DNAT --to-destination 192.168.0.10
iptables -t nat -A PREROUTING -i ppp0 -j DNAT --to-dest 192.168.0.10 iptables -A FORWARD -s 192.168.0.10 -j ACCEPT でどうね?
ご教示と書いて欲しい
きょうじゅ けう― 【教授】< (名)スル (1) 0 1 (ア)児童・生徒に知識・技能を与え、そこからさらに知識への興味を呼び起こすこと。 (イ)専門的な学問・技芸を教えること。 「国文学を―する」「書道―」 (2) 0 大学などの高等教育機関において、専門の学問・技能を教え、また自らは研究に従事する人の職名。助教授・講師の上位。
教授はレベルが高くて重責なので、安易に関われない。 教えてクレクレ程度にしてクレ。
>>24 これ書く場合は
ローカルで他のサーバが動いている場合、
先にそっちを書かないといけないかな。
そもそもポート指定も無しで、全パケットをDMZへ丸投げしたいのか?
「教授」というのは口頭を含む文字情報による情報伝達法のこと。 対義語は、文字によらざる情報伝達法である「伝授」になる。 お釈迦様と摩訶迦葉の間の「拈華微笑(=以心伝心)」の故事が、これに相当する。 他にも、超能力者が自分と同じ能力を他人に与えることも「伝授」という。
PC関連の掲示板では基板→基盤、保証→保障、教示→教授等が もはや多数派を占めているといっても過言じゃないな 指摘しても逆ギレされるのがオチ('A`)
そんなことよりiptablesの設定の話しようぜー ぶっちゃけどっちでも意味が伝わるからいいし
>>33 アホか?
いずれも両方使う場面がある言葉じゃねーか。
iptablesを使ってwinny接続を弾くって事は出来ますか? 内部からのwinnyの接続を拒否したいです。
LAN内のユーザに使わせたくないって言うこと?
/sbin/iptables -A FORWARD -p tcp --dport 1123 -j DROP かな? それよりもデフォルトポリシーをDROPにして、 必要なHTTPとかSMTPとかPOP3とかだけ許可してあげた方がいいかな。 MSN Messengerのファイル転送とかリモートアシスタンスはUPnPでいけるし。
39 :
38 :2006/02/09(木) 09:19:39 ID:u54kuXyO
すまん、1123がwinnyで使うと思しきポートね でもこれだと接続相手が規定のポート以外で動作させてると、 弾けないんだよね
内側からのパケットも特定のポート以外全部DROPしちゃえば
LAN内からWANへの一切のアクセスを止めないと無理。要はネット利用禁止。 HTTPポートでも利用できるし、特定のポート空けても無駄(みたいよ) winny など p2p を止められると謳っている専用のファイアーウォール製品 じゃないと無理っぽいね。 こういうの開発した人って凄いよね。ミョーに感心してしまう。
>>41 winnyで80で待ってる人あんましいないだろ、
なんだかんだみんな詳しく知らない知らないからデフォルトじゃね?
LANからWAN WANからLANへのパケットをキャプチャして、
winnyなりWinMxのプロトコルのヘッダ部分があったら弾くスクリプトでできそうじゃね?
43 :
login:Penguin :2006/02/10(金) 02:10:20 ID:6R1+Xt+d
まず、ping がそのPCに対して通らないことを確認しました。 その後、下記の条件を追加しました。 iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 5/s -j ACCEPT 本来なら、5秒間に1回のPingのみを受理して欲しいのですが、 1秒で10回送っても全部帰ってきます。 iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 5/s -j ACCEPT をその後削除したら、 正しくPingはいっさい帰ってこなくなります。 どの指定の部分が間違っているのでしょうか?
44 :
43 :2006/02/10(金) 02:49:32 ID:6R1+Xt+d
実験の途中の一部で間違えて違うクライアントにPingしていたようです。 もう一度やり直したら正常に動作しました。
>>43 それだと、1/5秒間に5回まで許可じゃない?
firewall-1のほうがいい。
>45 1秒間に5回だと思うお。
1秒間に5回許可するにはどうすればいいんだろ。 0.2/s ?
50 :
47 :2006/02/11(土) 16:55:14 ID:Sp5Bdg5h
>49 ごめんなさい。まちがえました。
> -m limit 1/s -j ACCEPT それだと、バーストの指定がされてないんで、 1/1000秒に5パケットでも止まらない。 -m limit --limit 12/m --limit-burst 1 -j ACCEPT 上の書き方をした場合、1パケット目は条件にマッチし、 その後5秒間(1/12分)はマッチしなくなる。 今までずっと動いてるものと思って確認してなかったんで、 実は動いてなかったら泣く。。。(;´Д⊂)
>>51 limit-burst のデフォルトは 5
君のは5分間に1回しかじゃない?
俺がレスしたのは1秒間に5回なんだけど。
>>52 > 君のは5分間に1回しかじゃない?
それはどっから湧いてきた数字だ?
> 俺がレスしたのは1秒間に5回なんだけど。
そうはならないな。
>>54 前半は分かったけど、後半はどうなん?
> -m limit 1/s -j ACCEPT
これはあくまでも1秒間に1パケットの指定だろ?
--limit-burstが5だから、初めは5パケットまでいけるけど、
継続してパケットが到着した場合に、1秒間で1パケットしか
復活しないとなると、それは意図した動作じゃないのでは?
>>55 え?君のは5秒間に1回のみ許可だと思うけど。
最初のパケットは、ACCEPTされるけど、5秒以内に同じパケットが来たら、別の処理だろ?
そして5秒に1度バーストが回復する。
つまり5秒に1度しか受け付けない。
だと思うんだけど、どこにその処理を求めるレスがあったのかがわからない。
と言うことは1秒間に5回のみACCEPTというのは -m limit 5/s -j ACCEPT (-m limit 5/s --limit-burst 5 -j ACCEPT) と言うのが正解? これなら0.2秒でバーストが回復するから実質的に1秒間に5回って事かな
>>56 元ネタの提供は
>>43 ね。
> 本来なら、5秒間に1回のPingのみを受理して欲しいのですが、
↑これがそう。
で、それが解決する前に
>>48 が1秒間に5回の場合のネタ振って
話が逸れたけど、結局のところlimitの分かりにくさの話ではある。
>>57 そうそう、そういうこと。
59 :
login:Penguin :2006/02/14(火) 17:40:39 ID:VGzO3A6v
iptabels用のシェルスクリプトが紛失している場合、現在saveしているフィルタリングの内容を シェルスクリプトに生成しなおすような事って出来ないんでしょうか? やっぱり-Lで表示しているのを元に書き直すしかないんでしょうか?
ものによるけどCentOSなら /etc/sysconfig/iptables.save が今セーブされているやつ
>>61 dabianいじったことないけど、
どこかしらに保存されているはず。
>>62 /var/lib/iptables/active
64 :
login:Penguin :2006/02/15(水) 19:54:50 ID:pFaenui0
Webサーバのレスポンスが異常に悪いので、 何が原因か調べていました。 そうしたらなんと、 iptables -P INPUT ACCEPT iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -F iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT iptables -P INPUT DROP こんな感じに、ポート80へのインバウンド接続の許可をやってませんでした。 iptables -A INPUT -p tcp --dport 80 -j ACCEPT これを追加したらはやくなったのですが・・・。 質問なのですが、何故、速度が非常に遅いだけでポート80へのアクセスを許可していないのにも関わらず、 Webサーバにつながったのでしょうか? ご教示お願いします。
>>63 iptables の README.Debian (の 1. upgrade notes のとこ) 読んだほうがいいんじゃないか?
>>64 >iptables -A INPUT -i lo -j ACCEPT
127.0.0.1:80でコネクトしてない?
67 :
◆/UXtw/S..2 :2006/02/15(水) 21:41:01 ID:lHSZilu7
>>64 iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
で、一定量の TCP 新規接続を許可してるから。
68 :
64 :2006/02/15(水) 21:43:24 ID:pFaenui0
>>66 ご回答ありがとうございます。
iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
ポート80へのインバウンド接続の許可(iptables -A INPUT -p tcp --dport 80 -j ACCEPT)を行っていない状況でも、
この2行があれば非常に遅い(※1)ですが通信できましたが、この2行を削除したら完全に接続できなくなったようです。
※1
画像まで表示させるには大量のリロードが必要だったりページ自体へアクセスできる確率が半分以下だったり、
一般のブラウザで30秒近く表示されないこともある。
もっと実験したいところですが、実働しているサーバなので、これ以上実験するとまずそうですので、
実験環境を作っていろいろ試してみようと思います。
69 :
64 :2006/02/15(水) 21:47:39 ID:pFaenui0
>>65 woodyからdist-upgradeした場合ね。
>>69 iptablesでは 先に実行されたコマンドが優先されるから、
synフラッド対策のコマンドの前に
iptables -A INPUT -i eth0 -p tcp -m state --state NEW --destination-port 22 -j ACCEPT
(ただし、グローバルにつながっているデバイスがeth0)
すれば解決。
すまん上の 22 じゃsshだw 80に書き換えてね
>>70 いや、だから Sarge 以降のインストーラを使った人は
/var/lib/iptables/ というディレクトリ自体がないんじゃないの?
# うちは Woody から dist-upgrade したのばっかりだから確認してないけど、
# dpkg -L iptables を見たかぎりでは、ない。
つまり
>>63 の回答はいささか不適切なのでは?
/var/lib/iptables/active があるのは、
/etc/init.d/iptables がある環境 (Sarge の iptables にはない) で、
sudo /etc/init.d/iptables save active (あるいは save_active) した場合でしょ。
>>61 への回答としては、「ない」というのがふさわしいかと。
自分で iptables-save 使わないかぎり、ないんだから。
README.Debian では /etc/iptables.up.rules (/etc/iptables.down.rules) を
使う例をあげたりもしてる (もちろんそのファイルは自分で作る)。
ではsarge以降の場合は?
>>69 いいことを教えてやろう。
分かっている人は、わざわざ分かっているこ
とを www に作業の記録として残す必要がな
い。
だから、www に作業の記録として残ってるよ
うな情報の質なんて余り高くないと思って間
違いない。
というわけで、まずはちゃんと JF とか man
ページとか読んでくれ。
>>76 俺アホだからけっこう忘れちゃうから、
テキストに残してるよ。
この値はこんな意味を持っていて、こういうときにいじると〜だとか。
プログラムだったらサンプルコードの専用のディレクトリ作ってそこに用途別に保存したり。
みんな忘れないもんなの?
>>77 > みんな忘れないもんなの?
普通はスクリプトにして残しとくじゃん?
で、こないだディスク死んだときにバックアップ探したんだけど、
どうしても見つからなくて、慌てて一から書き直したがwwwwww
>>78 あ、俺もiptablesに関してはスクリプトで残してる。
サーバとかは設定ファイルごと保存したり。
RTFM
>>80 はいはいワロスワロス
ドキュメントの自分が必要な部分をまとめて文書化してるだけですよ
日本国内のMLや掲示板でRTFMとか書いてる低脳は放置で。
なんて被害妄想なんだろうwww
84 :
login:Penguin :2006/02/17(金) 15:55:54 ID:4hf1A87R
相手にされなかったことがそんなに悔しかったのか?
悔しいもなにも、RTFM は >76 についてレスしたつもりだったんだけど。 Fine の意味でね。 それから、スクリプトを取っておく作業は誰でもやってることだし、自分もそうする。 いつも、そんな喧嘩ごしなの?
86 :
login:Penguin :2006/02/17(金) 17:18:17 ID:4hf1A87R
RTFMに“Fine”の意味はありません。 誹謗中傷の次は見苦しい言い訳と論点ズラしですか?
fの意味するところは諸説あるが、実際に使われるケースの殆んどはあの単語だ罠
>86 ごめんな。
89 :
login:Penguin :2006/02/17(金) 19:20:16 ID:4hf1A87R
>>87 fをfineの頭文字としたところで、文脈上肯定的な表現にはなり得ない。
それはマニュアル作った奴に対する話でしかないし、
fuckin'がかかってるのはmanualじゃないって説もある。
そもそもの話として、fuckin' greatなら最上級の褒め言葉であり、
あの言葉自体の意味は相当に曖昧。
fuckin'だろうとfineだろうと、読み手に対して「読め」と命令するだけなら、
初めからチラシの裏にでも書いとくか、勝手に見下して陰でニヤニヤしてろって話。
ただ威張りたいだけで、人にモノを教えるのがそんなにイヤなら黙ってろと。
初心者です。iptablesの使い方についていちから教えてください。 RTFMとかドキュメント嫁とだけ書き込む人は返答は不要です。
返答の形式について文句を垂れるような奴は不要です。
92 :
login:Penguin :2006/02/17(金) 22:54:22 ID:4hf1A87R
>>90 自分より下の奴がいないと不安でしょうがないのか?
93 :
login:Penguin :2006/02/18(土) 12:26:16 ID:pR4sac24
やっと土日開放されたんだから遊ばせてやれ。
そういやFC5にGCC4.1は結局間に合うの? なんかもう諦めたような感じを受けているけど
95 :
login:Penguin :2006/02/19(日) 00:56:56 ID:GpvC0cMf
通りすがりだけど
>>89 キモイ
早口で変なこといいながら襲ってくるオタクみたいだぞ
とりあえず落ち着け!
匿名の掲示板で場の空気を悪くしてまで優位に立つ(それで立てるかは別として)
96 :
login:Penguin :2006/02/19(日) 00:57:47 ID:GpvC0cMf
必要はないでしょ 楽しくやろうぜ
吉野家コピペじゃないけどギスギスしてたほうが2chらしくていいと思う。
まぁ大抵予定調和だし、ディスプレイの向こう側で本気で怒ってる馬鹿は
そう多くはないからなw
優位とか訳の分からない妄言吐いてる
>>95 みたいのが一番迷惑。
精神的に未熟かつ脆弱な人はヤフーの掲示板でも行ったほうがいいよ。
ID変わった直後に「通りすがりだけど」warata
第三者っーか第四者ぐらいからすれば、下らない。どーでも良い。 ちゃねらーとしては、ニヤニヤ。
無料で教えてくれはあり得ないよな。
釣りだよ 釣り 釣られんなよ
103 :
login:Penguin :2006/03/01(水) 23:27:11 ID:jAar/o7d
HOST= # トラフィックコントロールの初期化 tc qdisc del dev ppp0 root # ppp0にトラフィック制御用のルートクラスをセットする。 tc qdisc add dev ppp0 root handle 10: cbq bandwidth 64Kbit avpkt 1000 cell 8 # 優先度5に設定されたクラス tc class add dev ppp0 parent 10:0 classid 10:1 cbq bandwidth 64Kbit rate 64Kbit \ allot 1514 cell 8 weight 6Kbit prio 5 maxburst 20 avpkt 1000 # 優先度8に設定されたクラス tc class add dev ppp0 parent 10:0 classid 10:2 cbq bandwidth 64Kbit rate 64Kbit \ allot 1514 cell 8 weight 6Kbit prio 8 maxburst 20 avpkt 1000 # $HOSTからのパケットの優先順位を下げる tc filter add dev ppp0 parent 10:0 protocol ip prio 1000 u32 match ip src $HOST flowid 10:2 tc filter add dev ppp0 parent 10:0 protocol ip prio 1000 u32 match ip dst $HOST flowid 10:2 あるホストとの間でやり取りされるパケットの優先度を下げたいのですが、 これではどうも上手くいきません。どの辺りが不味いでしょうか?
104 :
login:Penguin :2006/03/02(木) 01:04:33 ID:rYvDSupO
#!/Bin/sh HOST= # トラフィックコントロールの初期化 tc qdisc del dev ppp0 root # ppp0にトラフィック制御用のルートクラスをセットする。 tc qdisc add dev ppp0 root handle 10: cbq bandwidth 64Kbit avpkt 1000 cell 8 # 優先度1に設定されたクラス tc class add dev ppp0 parent 10:0 classid 10:1 cbq bandwidth 64Kbit rate 64Kbit \ allot 1514 cell 8 weight 6Kbit prio 1 maxburst 20 avpkt 1000 # 優先度8に設定されたクラス tc class add dev ppp0 parent 10:0 classid 10:2 cbq bandwidth 64Kbit rate 8Kbit \ allot 1514 cell 8 weight 1Kbit prio 8 maxburst 20 avpkt 1000 # $HOSTからのパケットを10:2へ tc filter add dev ppp0 parent 10:0 protocol ip prio 1000 u32 match ip src $HOST flowid 10:2 tc filter add dev ppp0 parent 10:0 protocol ip prio 1000 u32 match ip dst $HOST flowid 10:2 # $HOST以外のパケットを10:1へ tc filter add dev ppp0 parent 10:0 protocol ip prio 1000 u32 match ip src any flowid 10:1 tc filter add dev ppp0 parent 10:0 protocol ip prio 1000 u32 match ip src any flowid 10:1 少し直してこんな感じで。これでもまだ反応が遅いです。
-p tcp --syn と -p tcp -m state --state NEW の違いはどの辺なのでしょうか?
106 :
◆/UXtw/S..2 :2006/03/08(水) 03:04:06 ID:Zbg8WQwt
>>105 JF かどこかの FAQ に書いてあったよーな。
-p tcp --syn は TCP のフラグを見るだけ。
-p tcp -m state --state NEW は、過去のコネクション追跡と
比較して、新しいパケットという意味。
正常系だけを考えると同じだけど、
「SYN (だけ)立ってるのに NEW じゃない」とか、
「SYN 立ってないのに NEW」 とかは、不正なパケットや
エラーパケット(IP masq してて IP がかわちゃったとか?)
として存在し得ます。
paranoia な人はそういう不正パケットチェックも
してると思うけど、俺はあんま意味ねーと思うよ。
レスありがとうございます。 実はアタック対策(?)として /sbin/iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP /sbin/iptables -A INPUT -p tcp --syn -m state --state ESTABLISHED,RELATED -j DROP を実行しているのですが、 この場合は -p tcp --syn と -p tcp -m state --state NEW は同値ということですね。
109 :
≠108 :2006/03/09(木) 19:32:03 ID:fGEVBiuA
箱物の火壁を使ってて、それをLinuxで置き換えたいと思ってるんですが どうやればいいか、そもそもできるのかどうか、よく分かりません。 というのは、今使ってる火壁のDMZのネットワークだと、インターネットに 繋がってるネットワークと一緒なんです。火壁は1つしかIPを消費しない。 つまり、たとえて言うと、現在の火壁の設定は、デフォルトゲートウェイが a.b.c.1で、eth0がa.b.c.2でeth1(DMZ)もa.b.c.2で、eth2(内側)が192.168.1.1 って感じなのです。(a.b.c.xはグローバルIPアドレス) eth0とeth1が同じIPアドレスなんて、こんな設定はLinuxでは無理ですよね? グローバルIPアドレスが、(1はゲートウェイだから)a.b.c.2〜a.b.c.6の5つ しかないからすごく貴重で、現在の火壁はそういう意味では偉い。 現在の火壁では火壁にひとつだけ使えばいいのに、Linuxで置き換えたら ふたつ必要ってなると、ちょっと無理そうだなあって思ってますが、なんか いい方法あるのかなあ、と。 DMZのeth1には172.16.1.1とか別ネットワークを割り当ててしまうというのが 一般的なやり方なんでしょうか?これはこれでかなり面倒そうですが…
>>110 よくわかってないのに何故置き換えようなんて馬鹿な事を考える?
いまのまま使え。
甘えた事言ってる奴にアドバイスはしないからな。
[a.b.c.1] internet
|
eth0[a.b.c.2] gateway┬eth1[a.b.c.2] DMZ─…
│
├eth2[192.168.1.1] LAN
├…
>>110 なの?(;゚∀゚)
>112 そう。今使ってる箱物のやつはたとえて言うなら そういう風に見える状態です。だから4つの グローバルIPアドレス(a.b.c.3〜6)を外向けに 使えてていて、かつ、そのアドレスでサーバを 立ち上げることができています。 サーバを192.168.0.3で立ち上げておいて 火壁で a.b.c.3 -> 192.168.0.3 みたいなことを しなくてもいいのでいろいろと簡単なのです。 ひとつのアドレスを諦めるか、NATで我慢するかしか ないんですかね。
プロバとの接続がunnumberedなら普通に動くでしょ。
115 :
login:Penguin :2006/03/19(日) 09:24:14 ID:5na5qPQk
iptablesでwinnyを止めることできるかな? 内側からは自由に通信許可して、明示的に20、21、6699はだめとかしている。 なんか方法あるかな?
自分のマシンしかない環境なら任意に決めたポートを塞ぐだけで済むかも 知れんが(その前にWinnyなんて使うなって気がするが)、他人のPCが 持ち込まれる環境なら笊すぎだし、ftpは関係ないだろ
>>115 なぜに FTP?
ポート番号変更されたらどうする?
L3 じゃ止められないと思うが。
1つもポートを渡さなければwinnyできないよ
119 :
115 :2006/03/20(月) 12:44:56 ID:i5TAhf8f
ftpはただの例としてあげただけ。深い意味はない。 要するに、ポートを指定できないということで、iptablesだけじゃだめってことか。 なんか、上下の流通量の多いポートを発見してとめるというスクリプトを作って 組み合わせるということかなぁ。
>>119 dest port を制限すればいいだろ?
80番でwinny動かしてるやつなんか大していないだろ。
必要な 25 53 80 110 とか以外制限すればいいだけだろ。
カーネル2.6.16でULOGがobsoleteになってるんだけど これからはかわりに何を使えばいいんだろ?
CentOS 4でうまく動いてたiptablesのルールを Fedora 5に持ってきたら、以下のところでINPUTが止められて、 外部からsshとかが繋がらないんですが、どなたか原因が分かる人はいませんか? 最後の一行をコメントアウトすると繋がるようになります。 -N FLOOD -A FLOOD -m limit --limit 20/second --limit-burst 50 -j RETURN -A FLOOD -j DROP -A INPUT -p tcp --syn -j FLOOD
すまん。
>>121-122 の会話内容が俺にはよくわからん。
ぐぐってもこのスレしかひっかかってこないし。
2.6.16も使いたいんで誰か意味を説明してくれ。頼む。
わからないなら気にするな
>124 俺は2.6.16.1だけど、普通に使えてるよ。 まぁ、>121-122ほど込みいった使い方して無いからなんだろうけどね。 俺はFW目的なので、Forward は使って無い。
127 :
login:Penguin :2006/04/05(水) 22:42:49 ID:MTtWDvot
俺はFW目的なので、Forward は使って無い。 俺はFW目的なので、Forward は使って無い。 俺はFW目的なので、Forward は使って無い。 俺はFW目的なので、Forward は使って無い。 俺はFW目的なので、Forward は使って無い。
(・∀・)香ばしいのが現われました(・∀・)
130 :
login:Penguin :2006/04/06(木) 00:41:05 ID:reSxTF4A
>>130 ほぉお前が122なのか?じゃ俺が
>>122 で書いたことの間違いを訂正してくれよ。
俺は良く調べずにMLで読んだ記憶からあんな事を書いてしまったが、
実際は勘違いもいいところだよな。
>>124 俺が間違えたせいかな?混乱させてすまん。
2.6.16でもULOGは使える。ただobsolete(旧式)ってコメントが付いただけ。
ULOGの代わりに推奨されてるのはNFNETLINK。
カーネルコンフィグのULOGのhelpを読むと書いてあるよ。
auditは、はっきり言って、関係ないね orz
>>132 >
>>124 > 俺が間違えたせいかな?混乱させてすまん。
> 2.6.16でもULOGは使える。ただobsolete(旧式)ってコメントが付いただけ。
> ULOGの代わりに推奨されてるのはNFNETLINK。
勝手なことを言ってすまないが、これがわかったときに
ここに書いてほしかった・・・
それでこそ情報の共有ができるかなと思うので・・・
134 :
login:Penguin :2006/04/06(木) 07:14:55 ID:reSxTF4A
>>131 ULOGの替わりがauditとかホザいてる馬鹿が何を偉そうにw
2.6.16でiptablesがどうも動作しないなーと思ったら、カーネルの.configが変わっていたらしい。 Netfilter Xtables support、あるいはNETFILTER_XTABLESていうのをYかMにする必要があるんだそうだ。 make oldconfigでは自動でYにはならないので、古い.configから移行するとハマる。 いやー、全然わからなかったよ。 以上チラシの側面だが、同じようにハマっている人のために記す。
>>135 チラシの側面に書くのは至難の業では?
米に字が書ける奴はいてもチラシの側面に字が書ける奴は
>>135 が初めてだ。
>>136 チラシの側面に"書いた"とは書いてないのでは?
あくまでもチラシの側面。
ロールシャッハ・テストのとき紙の側面を見つめるようなら統合失調症だとかいう話?
139 :
login:Penguin :2006/04/14(金) 14:30:03 ID:LCw0qrIp
大陸・かの国フィルター使ってみた 重くなりますた…セロリン400MHzではきついですね ってかほかにもデーモソ動いているからってのもあるけど
iptablesとIPマスカレードについて質問です。 LinuxにNICを二枚差し、をルータとして使用しています。 一枚目はプロバイダ、つまり外部インターネットにつながっています。 二枚目は家庭内部のLANにつながっています。 複数の内部LANから外部インターネットを利用する為に、 iptables/IPマスカレードを使おうと思っています。 実現にあたっての設定ですが、現在以下のようになっています。 -A POSTROUTING -s 192.168.15.0/24 -o ppp0 -j SNAT --to [グローバルIP] セキュリティ的な問題や、その他注意するべき点等がありましたら、御教授願えませんでしょうか。 関連して、質問があります。仮に設定を以下のようにしたとします。 -A POSTROUTING -o ppp0 -j SNAT --to [グローバルIP] この場合、外部から入り、外部に出て行く(?)パケットも[グローバルIP]になってしまうのでしょうか? 具体的には、悪意のある人が、外部PCのデフォルトゲートウェイを[グローバルIP]に設定した場合や、 その他ルータやパケットを操作し、[グローバルIP]を経由するような状態になった場合に、 送信元アドレスが[グローバルIP]、すなわち踏み台のように使われてしまうような状態にならないのでしょうか?
141 :
140 :2006/05/13(土) 18:40:25 ID:JVZmSP7e
説明下手で分かりにくくて申し訳ありません。(´・ω・`)
いまいち何がやりたいのかわからないけど、 SNATには何が書いてあるの?
(・ω・`)
すまんSNATか -j MASQUERADE じゃいけんの?
145 :
140 :2006/05/13(土) 20:03:28 ID:JVZmSP7e
説明不足ですいません 。
>>140 の設定で目的の、内部PCから外部インターネットへの通信
は問題なく行われています。
IPアドレスの書き換えや通信経路の操作になるので、
どこかにセキュリティ的な問題があるのではないのか心配になった為に質問させていただきました。(無問題という事でよいかも?)
ただ、
>>140 の二番目に記述した例について気になりまして・・・
環境は以下のようになっています。
「ネットワーク図」
--[インターネット]--[Linux(iptables)(192.168.15.10/24)]--[内部PC( 192.168.15.50/24 )]
「iptablesの内容」
-A POSTROUTING -o ppp0 -j SNAT --to [グローバルIP]
普段は内部PCの「デフォルトゲートウェイ」設定として、192.168.15.10を指定しています。
内部PCからインターネットを使用し、IPが記録される掲示板等に書き込んだ場合、
前述のSNAT設定が有効になり、 [グローバルIP]を使用して通信しているとみなされます。
気になっている問題は、外部の全く別のPCのデフォルトゲートウェイの設定を[グローバルIP]に設定した場合に
通信が私のPCを経由し、かつSNAT設定が有効になってしまい、外部PCの通信にも関わらず、
私の[グローバルIP]が通信先に残り、成り済ましや踏み台のようになってしまう可能性が無いのであろうかと心配になってしまったのです。
まったく別の外部PCでは無くても、例えば同一プロバイダの同一ルータの傘下にある、
別のPC等からのデータが流れ着き、上記SNATを経由してしまうような事はありえないと考えてよいのでしょうか?
>>140 (Xは自然数または0)
「pppX」って、ダイアルアップモデムなどのNICを示すんじゃないの?
今時、pppなんて使わないんじゃ・・・。
そして、「ethX」が、LANなどのネットワークインターフェイスを示すんだと思ったんだけど。
違ったらごめん。
>>147 人の間違いを正そうとして自分が間違っているのに気づかない典型的なアホ
149 :
login:Penguin :2006/05/14(日) 09:49:04 ID:uyWCzbT4
>>147 wwwwwwwwwwwwwwwwwwwwwwww
>>147 間違いを正そうとするなら、iptablesについても正そうとしてくれたらいいのに……。
>>146 > 今時、pppなんて使わないんじゃ・・・。
インターフェイスにppp*使うかどうかは、セッション方法に依存する。
喪前が「ダイアルアップモデム」と呼んでる得体の知れない機器とは関係ない。
>>150 正すって何を?
本人がいいと思うならそれでいいじゃん。
直接的な嫌味です。
153 :
login:Penguin :2006/05/16(火) 02:23:55 ID:SvswPURi
外出ネタだけど、 「教授」:音声・書籍の文字等の文字情報による情報伝達法。 情報媒体は音波を載せる空気・電波、印刷する文字を載せる紙等。 「伝授」:文字情報によらざる情報伝達法。 お釈迦様(釈尊)による「拈華微笑」や禅の「以心伝心」がこれに当たる。 情報媒体は「気」などの電磁波以外の情報媒体。 特徴は一瞬にして伝えようとする一切の情報が相手へ正確に伝わること。
ご教授おながいします、なんて言い方は一昔前の文献にはさっぱり出てこない
そもそも教授と教示じゃ教える範囲も全然違う。
>>148-149 頭大丈夫か?
このネタ、いろんな板で目にするけど、その度に火病るやつがでてる気がする
「おながいします」じゃあ昔の文献には出てこないよねw
そこはお約束だから><
157 :
login:Penguin :2006/05/17(水) 21:37:53 ID:eDYbuIcR
netfilter の設定に関しては、イマイチよくわからないので、 ウチでは、firestarter で基本設定をして、 kiptablesgenerator での設定を加味した netsipder-firewall を併用している。 この仕組みのいいところは、iptables の設定ファイルが上書きされずにファイアウォールがかかるところ。
-A PREROUTING -p tcp -d 192.168.0.1 --dport 80 -j DNAT --to hogehoge.aa0.netvolante.jp:8080 エラーになるんだけどFQDN使えない? 使いたい場合どうする?
>>158 IPアドレスに変換してから書けばいいじゃないか。
今、特に困ってるってことではなく、単に後学のために訊ねたいのですが、IPマスカレード(ポートフォワーディング)では IPヘッダのIPアドレスやTCP/UDPヘッダのポート番号を書き換えることで、まぁある意味、内側のホストが外側の顔に 「なりすます」訳ですね。 でも、ftpをルーティングする場合、PORTコマンドやPASV応答のパケットの「中身」(ヘッダではなく「データ」)を 書き換える必要がありますね。 市販のBBルータ(専用機)ではこの機能を実装したものは多いですが、IPtables では可能ですか? あるいはその機能を持つ他のルータソフトへの誘導をお願いします。
161 :
160 :2006/05/20(土) 09:22:03 ID:wbrVdSWb
>>160 ですが、sageてしまったので、age直します。
>>160 カーネル側に nf_conntrack_ftp (2.6.x kernel) というモジュールがあって、
そこでやってる。ftp以外のプロトコルでも同種のものを作成すれば対応可能。
163 :
160 :2006/05/20(土) 21:24:57 ID:wbrVdSWb
>>162 ありがとうございます。
nf_conntrack_ftp なるものについて、調べてみまつ。
164 :
160 :2006/05/22(月) 15:41:02 ID:Ra4zmsA2
調べたところ、ip_conntrack_ftp と ip_nat_ftp という2つのモジュールが必要な ようです。 述べたように今特に困っているわけではないのですが、実験のために、自宅鯖に iptables でルータ立てて試してみました。 /etc/sysconfig/iptables-config に IPTABLES_MODULES="ip_conntrack_ftp ip_nat_ftp" という行を書いてから iptables を restart させたところ、デフォルトではデータコネクションが 繋がらなかったものが、見事に接続できるようになりました。 さんくすです。 ところで、カーネルモジュールでこの機能を実装しているってことは、ルーティングやパケットフィルタリングの 機能はカーネル(モジュール)側で元々持っていて、iptables はその動作定義/設定をコントロールする ユーザ I/F でしかない、って理解で良いのでしょうか?
>>164 # 遅レス
Linuxはずっと昔からパケットフィルタとマスカレードについてはカーネルレベルでの
実装を行なってきた。iptables (古くは ipchains) はそれぞれカーネルへのインター
フェイスでしかない。
FreeBSDはnatdに代表されるようにパケットをユーザランドに持ってきてそこで変換を
かける方式が長く使われてきたが、主にパフォーマンスの問題でカーネル側の実装に
切り替わってる。
166 :
164 :2006/05/26(金) 18:51:36 ID:SR+w7AHX
>>165 > # 遅レス
ノープロブレムです。 マターリ とレス待ってましたから。
やはりそういう理解で良いのですね。 よく解りました。 ありがとうございました。
現在、BフレッツのマルチセッションPPPoE環境を
PC Linuxルーターで構築して利用してます。
で、特に問題は起きてないんだけど、ちょっと技術的興味で質問したいです。
やりたいことは、「LAN内からも同時・安全にPPPoE接続したい」。
WAN側NICとLAN側NICをブリッジすればいい気がするけど、垂れ流しは気持ち悪い。
ので、中継の(FORWARD的な)のPPPoEフレームのみ
WAN側とLAN側でブリッジ出来ないかなと思ったんですが、
このような設定がLinux上で可能でしょうか。
netfilterだけではL2ブリッジ的なことは出来ない?
んー、ちょっといろいろ試してみます。
参考:
http://flets.com/connect/bypass.html
現在 DMZ に設置したサーバに iptables によるフィルタリングを施そうとしています。 大まかな設定は終えて再起動後、ssh 接続に問題がないことは確認しました。 ただ、ssh を切断し、しばらくたってからまた接続しようとすると タイムアウトになってしまいます。 サーバー側で iptables -L してから再度接続を試みると繋がります。 放置しとくと ip_conntrack 他関連モジュールが眠ったままなのかと思い 繋がらない時、繋がる時で lsmod の結果を比べてみたのですが違いはありません。 どの辺りを疑って、どこを調べれば良いのかヒントをいただけないでしょうか?
>>168 ・とりあえず、パケットダンプとって、どこで弾かれてるかチェック。
(場合によっては、ルールを全解除した上でパケットダンプとって比較)
・iptables -L -v してパケット数チェックして、弾いてるルールをチェック
(本当に iptables -L が「副作用」を起こしてるのなら使えないけど…)
・他のルータ機器があればそれも疑う
ぐらいか。行きと帰りで経路が違うような routing してるのであれば
routing table の見直しとか、とりあえず ICMP は通してみるようにルールを
ゆるくしてみるとか(limit-burst とか設定してないよね?)
まー、DMZ 作るくらいなら
WAN_IF=...
LAN_IF=...
DMZ_IF=...
とか定義してスクリプト組んでるでしょうから、そこの IPアドレス/IF名をマ
スクした上で、スクリプトここに晒すのが早いんじゃないすか?
>169 コメントありがとうございます。 DMZは独自にルールを作成しているのではなく、 ルータ(ADSLモデム兼用)の設定で行っています。 他のルータ機器が思いっきりある状態ですね。。 (外部からのリクエストがDMZに設定したアドレスにフォワードされる) internet | ルータ(兼ADSLモデム) −−−− ノートPC等 (192.168.0.x) A-TERM | DR-202C ..└ サーバ(192.168.1.2) (192.168.0.1 & 192.168.1.1) あとで設定晒します。 パケットダンプ取ったりとかはやったことないの でボチボチ勉強してみます。
パーソナルファイアーウォールっていうのかな? Winであるようなプログラムごとのアクセス制限はできない?
>>170 激しく読み違えてた、すまぬ。
ADSL ルータの「なんちゃって DMZ」の問題である気が激しくします。
それはさておき、SSH が切れるパターンってどのパターンですかね?
ってな辺りも、書いておいてもらえると吉。
>>171 いちおうある。期待したレベルではないと思うが
iptables -A OUTPUT -m owner --cmd-owner hogehoge -p udp -j DROP
とすれば、hogehoge コマンドからの udp は全部落とすとかできそう。
iptables の標準モジュールじゃないかもしれないので、
カーネルとかディストリビューションに依存する可能性あり。
その手のがしたければ、LIDS とか SELinux の方が適してると
思う(けど、やっぱり難しいw
>>173 パーミッションで判別する方法があるんですね。
特に必要というわけでもないのですが
個人で使うサーバで必要なポート開けてたら
OUTPUTを制限する意味がないような気がしたもので。
OUTPUTのポリシーはACCEPTにするのが普通なのかな?
>>174 owner モジュール(-m owner)ってのは、パケットの生成元に関するモジュール
なので、--cmd-owner はあくまでも「パケットの生成元コマンド名」を指し
示してます。コマンドのファイル属性としての所有者とは関係ありません。
そっちは --uid-owner とかです。
しかし、このモジュールの naming センスは悪いね。
普通は --owner-cmd とか --owner-uid とするでしょうに。
>>174 サーバーでの OUTPUT 制限は、crack された場合に、
その兆候の発見と被害拡散防止に役立つと思うよ。
たとえば www と DNS しかサービスしてないなら、(かつログでは
ドメイン名解決なしなら) OUTPUT の --state NEW な接続は
DNS のゾーン転送だけ開けておけば十分でしょ。
メールでログレポートを送ることがあるなら、追加で submission/smtp
だけ開ければ十分。この場合、当然中継サーバは決まってるだろうから、
その IP の組合せの場合だけ許可。
で、OUTPUT の --state NEW で drop したパケットがあったら
ログ取りするようにしておけば、何かおかしかったらすぐに
(swatch とかと組み合わせて)発見できるかもよ。
@ITでiptablesを勉強してたのですが、↓のテンプレで
ttp://www.atmarkit.co.jp/flinux/rensai/iptables01/template01.html 最後に-j LOGでログを取り、直後にDROPしているのですが、
これはポリシーでINPUT -P DROPとしているから必ずしも必要ではないと思うのですが、どうでしょうか?
実際LOG直後のDROPを消してもちゃんとDROPしてくれました。
ただ、manでLOGの説明を見ると、non-terminatingだからLOGした後DROPしろって書いてあるんですよね・・・
ポリシーをACCEPTにするときもあるかもしれんから、LOG直後にDROPする癖をつけとけってことでしょうか?
>>177 基本的には、単にスタイルの問題だと思うが。
この手のは、大抵はチェイン名は LOGDROP とかにするもんだけどな。
それだったら違和感ないべ?
ポリシーがどうとかではなく、「その場所まで来たパケットは
LOG して DROP」という対処をしたいのであっって、その
DROP が*たまたま*ポリシーと一緒というだけだ。
> ポリシーをACCEPTにするときもあるかもしれん
まーそういうこった。
179 :
177 :2006/07/01(土) 18:35:18 ID:AZfWH4aW
>>178 なるほど。ポリシーというのはあくまで補助的なものとして考えるってことすかね…?
まぁ結局個人のスタイルの問題だからあんま気にスンナ、好きにしろってことで解釈しときます
レスありがとうございました
180 :
login:Penguin :2006/07/18(火) 12:42:13 ID:K7r+QlfI
質問です。 現状はFWとhttp鯖が別なので、FW兼ルータ上で iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.15:80 iptables -A FORWARD -d 192.168.1.15 -p tcp --dport 80 -j ACCEPT みたいな構文を用いてポートフォワーディングを実現しています。 今度はFW兼ルータ兼http鯖にしようと思っているのですが、 同一マシン上でポートフォワーディングはどうやって実現すればいいんでしょう。
>>180 iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
182 :
180 :2006/07/18(火) 23:32:39 ID:K7r+QlfI
ポート転送なんて普通は怖くてやれねえよ。 外から、80番とか8080番にアクセスするだけで、安全なLANであるはずのPCにアクセス許してしまってるのだが。 転送先のPCを踏み台にされるだけだと思うよ。 どこかの銀行のファイヤウォールにtelnetしてみたら内部のコボルが動いてるようなオフコンのコンソール取れたら不味いのと同じレベル。 インターネットから操作できると便利だからって、sshとかリモートデスクトップとかVNCとか転送させて踏み台鯖をインターネットに公開するのだろ?
それはポート転送とは関係ないと思うんだが。
まぁ一人で勝手に怖がってろってことで。
海外(特に韓国)からのスパム発信源などうざいアクセスが集中しているので 韓国からのアクセスを完全排除しようと思っています。 んで、
間違えて送信してしまいました。
続きです
ttp://www.nminoru.jp/~nminoru/memo/ip-address/what_country_from.html 上記のサイトを参考にKRからのアクセスを片っ端から
iptables -A FORWARD -s 121.1.64.0/24 -j DROP
iptables -A FORWARD -s 121.1.65.0/24 -j DROP
iptables -A FORWARD -s 121.1.66.0/24 -j DROP
iptables -A FORWARD -s 121.1.67.0/24 -j DROP
iptables -A FORWARD -s 121.1.68.0/24 -j DROP
というように列挙しているのですがあまりに膨大な為にやってられない状態です。
iptablesの記述で
121.1.64.0-121.1.127.255というような記述が出来るようにする方法とかはないのでしょうか?
190 :
login:Penguin :2006/09/05(火) 17:17:33 ID:t9hbOLaH
すべてのポートを閉じてからサーバのために必要なポートだけを開けるという設定をしているのですが、 PHPに外部へ接続させたい場合にはどういう風に設定すればいいんでしょうか? 発信元が80番のポートであるINPUTを受け付けるようにすればいいんではないかと思いやってみましたが無理でした
>>190 その接続がどういうプロトコルを使うのかわからんが、
OUTPUTチェインに宛先のアドレスとポートを指定してACCEPTし、
INPUTチェインは上部のアドレス・ポートからのSYN,FIN,RSTと
-m conntrack --ctstate ESTABLISHEDをそれぞれACCEPTするとか。
あと他のルールで早々に破棄られてないか確認するヨロシ。 LOGチェインに送ってログが出るかとか。
最近は80番でいろいろ出来るけどね。 他が開いてなくても余り意味は無い。
ssh だけは開けとかないと不安になる。 他は必要になった時に開ければいいけど。
sshを攻撃して突破する手も有るけど?
そりゃあるだろうけど。 SSH だけの問題じゃないでしょ?
ちいとスレ違いだけど、 sshd_configいじれる立場なら、Listenするportを22から変えるだけでも いくらか楽になるよ。 ポリシー上、変えることができない人もいるだろうケド・・・・
198 :
login:Penguin :2006/09/28(木) 14:27:48 ID:YtUO+iJC
iptables設定してLinuxルータにしたんですけど、 chkconfig iptables on /etc/rc.d/init.d/iptables save とやって暫くルータとして使用後、再起動をしたのですが、 再起動時にログイン画面が出る前に表示されるサービス?開始結果がOK, FAILED と出る画面でiptables設定中と出て固まってしまいます。マウスのみ反応し、 キーボードは反応なし、リモートも不可という状況です。 これは一体何が原因でしょうか?ただ固まった状況下においてもルータとして 動作しているようです。起動前なので、dmesgも実行できない...... OS:CentOS 4.4 x68-64(FINAL) 2.6.9-42.0.2.ELsmp eth0 : Intel Pro/1000PT Single GbE eth1 : BroadCom BCM5721 GbE よろしくお願いします。
>>198 もし今操作ができないならシングルユーザモードで起動して syslog 見てみな。
ポート変えたぐらいは大差ない。 今はスキャンポートぐらいはするから。
202 :
login:Penguin :2006/09/30(土) 10:49:46 ID:Gqsg49V/
基本的なことで、わからないことがあるので、質問させてください。 @itの最後に、LOGとって、DROPするテンプレを参考に shスクリプトを書きました。 wwwを見られるように、(というか、apt-getで必要なので) # www iptables -A INPUT -p tcp -s $any --sport 80 -d $myhost -j ACCEPT iptables -A OUTPUT -p tcp -s $myhost -d $any --dport 80 -j ACCEPT という風に書いたのですが、この設定では、apache等のhttpdを立てていると、 外からも接続できてしまうのでしょうか?
>テンプレを参考に ググれば一発なサイトとは言え、参考にしたURLも貼った方が良い。 >この設定では 断片だけで判断できるのはエスパーだけ。 >外からも接続できてしまうのでしょうか? httpd を localhost だけで運用したいってこと? それとも LAN 内だけで運用したいってこと? LAN 内に限定するなら $any を適当なものに変える。 たとえば 192.168.0.0/24 とか。
wwwって書いてあるとビッパー臭を感じる(w
>>202 このほうが良くない?
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o ${EXT_IF} -p tcp --dport 80 -j ACCEPT
206 :
198 :2006/09/30(土) 18:54:36 ID:SJQcNzTp
>>199 , 200
遅レスすいません。Bootが出ない為、インタラクティブで iptablesだけ起動しないように
しました。
設定スクリプトは長いので、以下のサイトにうpしました。
ttp://uploader.xebra.org/?id=a091b46 アップロードしてからおもったのですが、iptablesはNICの設定?の前に立ち上がると思うのですが、
スクリプトの中でIPアドレスを取得するようにしています。もしかしてこれが原因でしょうか?
順番ぐらい変えれば良いじゃね?
208 :
198 :2006/10/01(日) 13:46:27 ID:8WxGBkrc
>>207 変えましたが、やはり同じ問題が発生しました。
なんででしょうか??
先に network があがったら iptables が有効になるまで無防備だな。
まぁ一瞬だけどね。。
>>208 OS 起動時に iptables をあげないようにして、スクリプトを 1 行ずつ流してみたら。
DHCPとかモバイルIPみたいなのはネットワークが先に設定されないと制御できないと思うが? ARPや近隣探査のパケットまで落としてたらネットワーク使えないよ。
211 :
login:Penguin :2006/10/23(月) 21:45:51 ID:gyC5siIO
arno-iptables-firewallをdebian-sidで使ってみた。 すげー量のルールが適用された。 でも、cpufreqとDHCPの通信が遮断された。。orz
注意 なんか「佐賀」だけじゃ監視員の検索にかからないらしいぞ?今知ったんだが ● 佐賀県庁 ● 佐賀県 ● 佐賀県民 の3つだそうです。 グーグルなどとは異なり、 「 佐賀 」 だけでは抽出されない検索エンジンで、 運用監視をしているそうです。 だそうだ。「佐賀」だけじゃ引っかからないからあんまり意味ない。 この情報をコピペで佐賀スレに広めるんだ!
今週のネギま!スレはここですか?
iptablesで *.jp ドメイン以外からのアクセスを弾く(日本国内のホストからの接続 のみを許可する)設定とか可能でしょうか? それともDNSは使えず、IPアドレスで範囲指定をするしかないのでしょうか?
ちょっと調べた感じだと中国や韓国は逆引きできないホストが多いそうな・・・。 って事は*.jpだけ許可って結構難しい?
>>215 逆引きできなきゃ弾くってことでいいんじゃね?
iptablesでどうやるかは知らん。
なんのサービス提供してるかしらないけどhttpならapacheとか
アプリのほうのアクセス制御使うほうが楽かも
何を今更・・・・・・
219 :
login:Penguin :2006/11/22(水) 00:58:42 ID:eI7xzIJ2
現在このような感じなんですけどなぜか ftpでログインできないです、ご教授願います。 [root@www sysconfig]# cat iptables # Generated by iptables-save v1.2.11 on Mon Nov 20 19:59:49 2006 *nat :PREROUTING ACCEPT [1107:114350] :POSTROUTING ACCEPT [13:904] :OUTPUT ACCEPT [13:904] COMMIT # Completed on Mon Nov 20 19:59:49 2006 # Generated by iptables-save v1.2.11 on Mon Nov 20 19:59:49 2006 *filter :INPUT ACCEPT [3303:410124] :FORWARD DROP [0:0] :OUTPUT ACCEPT [1832:161299] -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -p udp -m udp --dport 53 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -s 192.168.100.47 -p tcp -m tcp --dport 23 -j ACCEPT -A INPUT -p icmp -j ACCEPT COMMIT # Completed on Mon Nov 20 19:59:49 2006
220 :
login:Penguin :2006/11/22(水) 00:59:32 ID:eI7xzIJ2
root@www sysconfig]# iptables -L Chain INPUT (policy DROP) target prot opt source destination ACCEPT tcp -- anywhere anywhere tcp dpt:ftp-data ACCEPT tcp -- anywhere anywhere tcp dpt:ftp ACCEPT tcp -- anywhere anywhere tcp dpt:smtp ACCEPT tcp -- anywhere anywhere tcp dpt:pop3 ACCEPT tcp -- anywhere anywhere tcp dpt:http ACCEPT tcp -- anywhere anywhere tcp dpt:https ACCEPT tcp -- anywhere anywhere tcp dpt:domain ACCEPT udp -- anywhere anywhere udp dpt:domain ACCEPT all -- anywhere anywhere ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- 192.168.100.47 anywhere tcp dpt:telnet ACCEPT icmp -- anywhere anywhere Chain FORWARD (policy DROP) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
>>220 見た感じiptablesの意味がないきがする。全部許可してるみたい。
ftpサーバーにつながらないのは他がいけないかもね。
222 :
login:Penguin :2006/11/22(水) 07:09:12 ID:eI7xzIJ2
>>220 全部許可とはどういう意味でしょうか?
Chain INPUT (policy DROP)をACCEPTに変えれば
FTPでログインできるようになるのですが…
>>222 情報は小出しにしない方がいいよ。
だいたいどこからどこの FTP が失敗するかとかも書いてないよね。
passive モードかどうかも書かれてないし。。
ご教授、と書くやつにろくなのはいない
あぼーん
>>220 ip_conntrack_ftpをロードしてないとか‥
227 :
◆/UXtw/S..2 :2006/11/28(火) 03:21:02 ID:iTNteDyR
>>226 ip_conntrack_ftp は PORT/PASV した後の別コネクションを
追うためのモジュールだから、「ログインできない」の
理由にはならないかな。
ただ、元質問者の情報が足りないので、本当に
ログインできないのかどうかワカランけど。
A、B2つのPCと、ルータがあって ルータ --- A --- Bのようにまっすぐ繋がっています。 Aはルータ側192.168.1.15、B側192.168.2.15のIPアドレスを持っていて、 Bは192.168.2.20、ルータは192.168.1.1です。 BからAを経由してルータからインタネットに繋げたいのですが、 Aにはどういうルールを設定すればよいのでしょうか?
過去ログ嫁
>228 PC-A(2ポート?)を bridge すればいいだけじゃない?
231 :
228 :2006/12/21(木) 23:13:36 ID:daumOCsa
/etc/sysctl.conf で net.ipv4.ip_forward = 1 ってしてなかった。。。 iptables関係ありませんでした、ごめん。
Bフレッツで固定IPなんだが FC6でルーター兼サバの作り方解説きぼんぬ。 内側にはwindowsマシンもぶら下げたい。 FC6は最初からカーネルモード?やったことないのでさっぱりわからねー 市販のルータ買い換える気にならんので何とかしたいです。
>>232 Bフレッツで、固定IPなんだが、
debianなんでFC6はわかんないや、ごめんね(^_^)
>>232 このスレ見れば出来ると思うんだけどなぁ。
そんなんでよく鯖なんて建てるなぁ。
可哀想だから、誰か懇切丁寧に手順を説明したwiki作ってやれよw
>>237 232が作ればわかりやすくなるんじゃね?
239 :
login:Penguin :2006/12/27(水) 11:17:42 ID:4sN+iybd
ターボリナックスからCENTOSに乗り換えました。 インストール時にファイアーウォールを使いますか?ってのがあったので?でしたがYESでインストール フィルタリングの設定しようとiptablesを開いてみるとRH-firewallとかいうチェーンが入ってます。なんですかああ〜?RH-firewallって!!わけわかりません。 ぐぐってもルールのサンプルばっかりでRH-firewallがなんなのかの説明してあるところがありません。 ということで質問です。RH-firewallってなんですの〜???
だからチェーンなんだよ。 気に入らなけりゃ捨てちまえ。 つーか、そんなんでオロオロしてちゃ、フィルタリングルールをちゃんと書けんの? GUIなツールか何か入っているだろうからそれつかっといたほうがよくね。 って、GUIなツールが本当に入っているかどうか知らんがな。使ったことないし。
241 :
239 :2006/12/27(水) 14:53:25 ID:4sN+iybd
オールデニーしてねえからきにくわねえっす。捨てちゃった つうかoutputもまったく定義されてないしフォアードしねえし なにあれ。ファイアーウール?何であんなの実装してるんでしょうか・・ RH-firewallの解説してくれませんかえろい人。
243 :
名無しさん@お腹いっぱい :2006/12/27(水) 16:32:57 ID:iCubPp22
> デニー ( ゚д゚)
そこは突っ込むところかなぁw
245 :
login:Penguin :2006/12/27(水) 23:52:14 ID:4sN+iybd
こんばんは ところで質問です パケットカウンターとバイトカウンターてなんですか? 何かを数えてるんですよね?パケットを数えてる?バイトとは? なんなんすか?カウンターをゼロにするって・・・・ ここら辺の説明がJMには載ってないのでわかりません。 えろいひと教えてください
246 :
245 :2006/12/27(水) 23:59:23 ID:4sN+iybd
3のリンク先全部読んだんですがわかりません・・・ カウンタとは高度に政治化された案件で隠蔽されてるのですか??? もう気になって今晩寝れません。おねがいです助けてください。
>>245 パケットカウンターはパケットを数えてる
バイトカウンターはバイトを数えてる
おk?
248 :
245 :2006/12/28(木) 00:47:50 ID:vkrVh8Ot
>>247 えっとトラフィック監視をしてるってことですか?
249 :
245 :2006/12/28(木) 00:48:43 ID:vkrVh8Ot
間違えました。トラフィックを監視できるってことですか?
まぁ、応用すればそうですね。 iptales -L INPUT -v -n としてみれば分かるよ。どれだけのパケットが流れているか 把握できるから、多いもののルールを上に持っていくとか チューニングするときに丁度いい。
251 :
245 :2006/12/28(木) 00:57:10 ID:vkrVh8Ot
>>250 なるほど!ご丁寧にありがとう御座います♪
SuSE付属のiptablesってRPCプログラムをプログラム名指定で通過させる機能があるんだけど、 これってRedHatとかの普通のiptablesでも可能なんですか?
/etc/services に乗ってるサービスなら大丈夫なんじゃね
254 :
login:Penguin :2006/12/30(土) 23:18:32 ID:t4k9FQsc
guarddog使ってみたら、すげー(゚д゚)ウマー
255 :
login:Penguin :2007/01/02(火) 22:55:25 ID:X3er3Ors
kernel-2.6.20から使いかた変わるんか?
>>254 スクリーンショット見たけど、むしろ分かりづらいだけw
個人的にはfireholってのが使いやすい
FireWall-1 みたいな UI だと使いやすいんだけどなぁ。
なぁなぁ、samba用の設定調べてたんだが、UDPプロトコルに --state NEW 使ってるの幾つか見かけたが、非常に恥かしくないか? それとも、iptables的に何か特別な動きがあるのか? 教えてエロイ人
>>261 おおぅ。
iptables的に意味はあるが、鯖用途でINPUTチェインに使ったら意味が無くなる。
ので、微妙に恥かしいかもってな感じかなぁ。
ありがとエロイ人〜
263 :
login:Penguin :2007/01/25(木) 14:26:54 ID:UF/PPiOA
iptables で
>>219 の方も以下のように書いてあるのですが、
-A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
これは、
-A INPUT -p tcp --dport 20 -j ACCEPT
でもいいのでしょうか? "-m tcp" は何のための指定なのでしょうか?
宜しくお願いします。
>>263 tcpというモジュールを読むという意味。
-p tcpがあればTCPプロトコルに限定されることになって暗黙の了解でモジュールが
読み出されるが、念のための指定。
"-m conntrack" のようにしてコネクション層の接続状態を追跡させたりすることも
できる。
265 :
login:Penguin :2007/01/26(金) 00:26:12 ID:GQLud1rd
>>264 有難うございます。念のためということですね。分かりました。
krfilterとその他のパケットフィルタって皆さんどのようにやってます? iptables -A INPUT -p icmp --icmp-type 0 -s 0.0.0.0 -d 192.168.0.0 -j DROP iptables -A INPUT -p icmp --icmp-type 0 -s 192.168.0.1 -d 192.168.0.0 -j ACCEPT iptables -A OUTPUT -p icmp --icmp-type 8 -s 192.168.0.0 -d 0.0.0.0 -j DROP iptables -A OUTPUT -p icmp --icmp-type 8 -s 192.168.0.0 -d 192.168.0.1 -j ACCEPT iptables -A OUTPUT -p icmp --icmp-type 11 -s 192.168.0.0 -d 0.0.0.0 -j DROP iptables -A OUTPUT -p icmp --icmp-type 11 -s 192.168.0.0 -d 192.168.0.1 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 21 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -s 192.168.0.0/24 -i eth0 -j DROP iptables -A INPUT -d 0.0.0.0/8 -i eth0 -j DROP iptables -A INPUT -d 255.255.255.255/32 -i eth0 -j DROP iptables -A INPUT -p tcp --tcp-flags ALL SYN,FIN -s 0.0.0.0 -d 192.168.0.0/24 -j DROP iptables -A INPUT -p tcp --tcp-flags ALL FIN -s 0.0.0.0 -d 192.168.0.0/24 -j DROP iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PUSH -s 0.0.0.0 -d 192.168.0.0/24 -j DROP iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT なにやっていいんだが分からなくなってきた('A`) iptables -A INPUT -p tcp -m state --state NEW -j KRFILTER
>>266 > krfilterとその他のパケットフィルタって皆さんどのようにやってます?
これが何のことを言ってるのか分からない。
両方やりたきゃ両方やればいいだけでは?
喪前は一体何がしたいんだ?
debian使いなんだけど iptablesって自動起動してくれないのか?
>>269 iptablesはdaemonじゃないぞ?
再起動したら設定は全部消える
だからスクリプトとかを使って起動時に毎回設定を読みこませないといけない
はて、俺もDebianで、 /etc/init.d/iptablesが、 /var/log/iptables以下を見にいくんで、 activeとinactiveって名前のファイルを作ったような記憶が…。 まぁ、動いているならなんでもいいよね。
273 :
271 :2007/02/01(木) 00:42:43 ID:WZpWM+zp
>>272 最初、自分もactiveとinactiveを作って自動起動に期待してたんだけどスルーされたのよ。
原因?(,,゚Д゚)ワカンネ
275 :
267 :2007/02/01(木) 20:18:45 ID:3k/3jep9
>>268 krfilterは普通に有名なので、別に説明なしで書いても通じるかと。
オレは「krfilter」と「その他のパケットフィルタ」ってのはなんなんだ?と聞いただけです。
使ってるのがiptablesだろうとipchainsだろうと、FreeBSDのIPFilterだろうと、
韓国のIP蹴ったら他のフィルタかけられないという制限はないんですよ。
なので、何をしようとして何に悩んでるのかが、サッパリ分かりませんって話ね。
>>266 に書いてあるのを見る限り、krfilterと他のフィルタリングの両立はやろうとしてるんじゃない?
ただ、フィルタの設計を見るだけでは「その他」の部分で何をやりたいのかがよく見えないけど。
何があってどうしたいのかを明らかにしないとアドバイスの仕様もないというか‥
>>276 振り出しに戻るw
>>266 :krfilterとその他のパケットフィルタを同時にやりたい
>>267 :同時も糞も分けて考える理由がない。何か別のことを言ってんのか?
>>268 :krfilterとは。。。
>>275 :言ってることがズレズレ
>>276 :両立したいのでは?
元々iptablesのフィルタに両立も糞もない。
別のことを聞きたいのなら、何をしたいのか説明してくれ。
たぶん > iptables -A INPUT -p tcp -m state --state NEW -j KRFILTER をどこに突っ込むかってことだろう。 ちなみに俺は簡単に書くと iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp -m state --state NEW -j KRFILTER iptables -A INPUT サーバ各種のポート -j ACCEPT ... ってしてる。この場合、--state NEW はなくてもいいだろうけどな。
279 :
login:Penguin :2007/02/03(土) 21:54:44 ID:Mbd9W+hX
debian sidでguarddogを使って、iptablesを設定したのですが、 コンソールにdropが出てきてしまいます。 出てこないようにするには、何をチェックしたらいいでしょうか。
BitTorrentを使う場合のiptableの設定どうしてます?
ESTABLISHED,RELATEDをACCEPTするか、 6881:6889をACCEPTすればいいと思うんだが。
ブルートフォース対策してルータの22番ポートを開放したんだけど 22番をアクセスしてくるのはkrfilterで引っかかるwwwwwwww
すみません、iptablesを使用したらFTP PASVが通らないようになりました。 任意に通すようにするにはどうすればいいんでしょうか?
284 :
283 :2007/03/02(金) 22:32:14 ID:JTDxz/pM
自己解決・・・・スレ汚しすみませんでした。
ワークステーションに iptables を導入しましたが、不特定多数のホストへのSSH の接続がうまくできません。 外向きの TCPは全て許可して、内向の sshポートに関してはdropしています。 どこかのホストに ssh で接続しようとすると、接続できず以下のログがのこります。 DROP: SRC=相手ホストIP DST=自ホストIP LEN=64 TOS=0x00 PREC=0x00 TTL=54 ID=57754 DF PROTO=TCP SPT=22 DPT=34531 WINDOW=49248 RES=0x00 ACK SYN URGP=0 これは帰りのパケットでしょうか?iptablesというのは帰りのパケットも 考えて書かないとダメなんでしょうか? ipfilterなら、帰りもうまく処理してくれるんだけどなぁ。
286 :
285 :2007/03/04(日) 02:35:47 ID:rtydovR9
解決しました。 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT でした。このへんは、ipfilterと同じでした。m(_ _)m
# iptables -P INPUT DROP # iptables -P FORWARD DROP # iptables -P OUTPUT DROP # iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT # iptables -A INPUT -i lo -j ACCEPT # mkdir /etc/iptables # touch /etc/iptables/rules.conf # iptables-save > /etc/iptables/rules.conf # echo "pre-up iptables-restore < /etc/iptables/rules.conf" >> /etc/network/interfaces デスクトップユーザーとしてクライアント用途でLinuxを使うのであれば、 これでファイアウォールの設定はたぶんO.K.のはず。 ただしBittorrentなどのP2Pアプリを使う場合には対応できないかも。
ゴメソ。NEW見逃してた。
iptables 1.3.7をダウンロードしてきてコンパイルしたんだけど recentモジュールが無い生成されていないからipt_recentが出来ない・゚・(つД`)・゚・ recentモジュールをlibに生成するにはどうすればいいの? 教えてエロい人。 ちなみにdebian sarge kernelは2.6.20
>>290 くだ質スレで質問なさったほうがレスポンスがよいと思われ
293 :
login:Penguin :2007/03/15(木) 18:26:56 ID:+e6f4Vst
>>287 ># iptables -A INPUT -i lo -j ACCEPT
これなに? 意味あるの?
ゲートウエイサーバ(12.34.56.78と表現します)から IN=eth1 OUT= MAC=(略) SRC=12.34.56.78 DST=224.0.0.1 LEN=28 TOS=0x00 PREC=0x00 TTL=1 ID=43446 PROTO=2 というパケットがたくさん来ているのですが、 これはブロックしてても良いのでしょうか?
>>294 loopbackにくるパケットは許可するってことだろ
BruteForceとしてport22とport21を監視しているのだが、結構いい感じだ。 krフィルターとipt_recent最強。
298 :
login:Penguin :2007/03/17(土) 18:45:42 ID:Yt91YwSk
すみません。質問お願いします。
http://cyberam.dip.jp/linux_security/iptables/iptables_main.html の後半にあるスクリプトを参考に iptables の勉強をしています。
このスクリプトですが、
Server <-> LAN: 全て許可
Server <-> WAN: ポートを指定して許可、それ以外は拒否
LAN -> WAN: ポートを指定して許可、それ以外は拒否
WAN -> LAN: Ping のみ許可、それ以外は拒否
となっているように思うのですが、LAN -> WAN と WAN -> LAN の
コメント行にある ".....ACCEPT" の意味がよくわかりません。
LAN <-> WAN は許可……?他と何が違うのでしょうか?
お分かりの方がいらっしゃいましたら教えていただけませんでしょうか?
よろしくお願いいたします。
>>287 iptables -A OUTPUT -o lo -j ACCEPT
も必要ではないでしょうか。
moblockの賢い使い方教えちょうだい。 例えばbittorrentだけに使う場合どうやるの?
301 :
298 :2007/03/21(水) 02:50:12 ID:ZrXMqD8R
失礼します。 誠に勝手ながら、くだ質に移動させていただきたいと思います。 このレスを見て、答えてくださる方がいらっしゃれば、 くだ質にいらしてください。 よろしくお願いいたします。
>>298 > LAN <-> WAN は許可……?他と何が違うのでしょうか?
FORWARDだろ。サーバ兼ルータ的な使い方なんじゃね。
俺んちもそうだけど。
> iptables -A OUTPUT -o lo -j ACCEPT
> も必要ではないでしょうか。
OUTPUT許可のところに--state NEWが含まれているから要らない。
俺も
>>288 ,289で見落としてたw。
303 :
298 :2007/03/21(水) 17:48:47 ID:O8gADGKy
>>302 ありがとうございます。
".....ACCEPT" は、何を許可しているのでしょうか?
FORWARD とのことですが、ルータの機能を ACCEPT と呼んでいるのでしょうか?
> OUTPUT許可のところに--state NEWが含まれているから要らない。
なるほど。この OUTPUT は、eth0 でも lo でも有効なのですね。
304 :
298 :2007/03/21(水) 18:02:05 ID:O8gADGKy
すみません、sage 忘れました。 もう一度読んでいて気がついたのですが、 実は ACCEPT ではなくて、FORWARD の事だということなのでしょうか? なるほど、それだったら納得がいきます。
え〜と、コメントでしょ? あんまり難しく考えない方が。 > ".....ACCEPT" は、何を許可しているのでしょうか? そのコメントに続く設定郡。 例えばこのままだとLAN内からOB25P時の587ポートに接続できないから、 それを許可(ACCEPT)したかったら、ここへ追加しましょう見たいな。 iptables -A lan_wan -d メール鯖のIP -p tcp --dport 587 -j ACCEPT ただ、FORWARDはsmb等を明示的にDROPして他は許可にしている人が 多いと思うけどなぁ。
306 :
298 :2007/03/22(木) 05:11:55 ID:xJMgMLIF
>>305 たびたびありがとうございます。
確かにその通りですね。
でも、それだとなぜ Server <-> WAN や Server <-> LAN には ".....ACCEPT" が
書いていないのでしょう?
ですが、
> え〜と、コメントでしょ? あんまり難しく考えない方が。
その通りですので、とりあえず解決とさせていただきます。
とりあえず、知識のある方が見ても特別の意味はないということが分かっただけで、
十分です。
どうもありがとうございました。
> ただ、FORWARDはsmb等を明示的にDROPして他は許可にしている人が
> 多いと思うけどなぁ。
そうですね。ただ、基本は DROP というのが
良いお手本になるのではないかと思います。
> ただ、FORWARDはsmb等を明示的にDROPして他は許可にしている人が > 多いと思うけどなぁ。 用途によりけりだろ。
http://fedorasrv.com/iptables.shtml を参考にして、
中国と韓国からの接続を拒否しております。
COUNTRYLIST='CN KR'
wget -q
http://ftp.apnic.net/stats/apnic/delegated-apnic-latest for country in $COUNTRYLIST
do
for ip in `cat delegated-apnic-latest | grep "apnic|$country|ipv4|"`
do
FILTER_ADDR=`echo $ip |cut -d "|" -f 4`
TEMP_CIDR=`echo $ip |cut -d "|" -f 5`
FILTER_CIDR=32
while [ $TEMP_CIDR -ne 1 ];
do
TEMP_CIDR=$((TEMP_CIDR/2))
FILTER_CIDR=$((FILTER_CIDR-1))
done
iptables -I INPUT -s $FILTER_ADDR/$FILTER_CIDR -j LOG_DENYHOST
done
done
rm -f delegated-apnic-latest
知り合いが使用しているメールサーバに割り当てられている IP アドレスが
韓国のもののようで、知り合いにメールが送れず、困ってしまいました。
一時的に iptables を外して送信したのですが、今後の為に、
例外的に xxx.xxx.xxx.xxx という IP アドレスのみに関しては許可するようにするには、
上記をどのように変更すれば良いでしょうか?
>>308 それはforで回すところで|grep -v xxx.xxx.xxx.xxxするだけ済むのじゃないのか。
310 :
308 :2007/03/31(土) 09:11:45 ID:EltKK77L
>>309 取得先のリストにはネットワークアドレスとホスト数が書いてあるようで、
教えて頂いたやり方で1つのIPアドレスを除外する事は出来ませんでした。
……って、これってシェルスクリプトの話になってしまうのでしょうか?
ipcalc使えば解決しそうだが。
グラフィカルユーザインタフェース上でiptablesを設定できるツールって 何かありますか? できるだけ細かい設定にも対応していればいいんですが。
emacs
実に馬鹿な間違いをしたものだ。 Debian sidを使っていて、2.6.20のソースが落ちてきた。さあコンパイルしてインストールだ…と 思ったら、iptablesが起動時に有効にならない。 どうやら新しいカーネルでESTABLISHED,RELATEDを許可するルールが有効になってなかったようだ。 make oldconfigで設定を引き継いだのだが、Netfilter connection tracking support(CONFIG_NF_CONNTRACK_ENABLED)がセットされていなかったのだな。 道理でうまくいかないわけだ。 今、再コンパイル中だ。 おまえらもカーネル構築時には気を付けろよ、って俺みたいな馬鹿はいないかw
317 :
316 :2007/04/14(土) 15:28:31 ID:XI7dgw1x
蛇足かと思ったが補足。 追加だけど Networking options -> Network packet filtering framework (Netfilter) -> Core Netfilter Configuration の "conntrack" connection tracking match support(CONFIG_NETFILTER_XT_MATCH_CONNTRACK) "state" match support(CONFIG_NETFILTER_XT_MATCH_STATE) Network packet filtering framework (Netfilter) -> IP: Netfilter Configuration の IPv4 connection tracking support(CONFIG_NF_CONNTRACK_IPV4) も忘れずに入れておいたほうがいいな。 IPv6もやっているのなら、 IPv6: Netfilter Configuration (EXPERIMENTAL)の CONFIG_NF_CONNTRACK_IPV6 CONFIG_IP6_NF_IPTABLES あたりもいるかな。まあ人それぞれだが。
318 :
login:Penguin :2007/04/22(日) 21:35:54 ID:LpAHASwm
>>293 > $ sudo /sbin/iptables -A INPUT -i all -m state --state ESTABLISHED,RELATED -j ACCEPT
-i all つけると動かなかった
はずすと動いた
319 :
login:Penguin :2007/04/27(金) 15:20:12 ID:+daqfGsX
SynFlood 対策に 1/s で 80/tcp に対する limit-burst を設定したいのですが、 最適値はどのように測定すればいいのでしょうか? また、参考までに皆様の設定値を教えてください。
320 :
login:Penguin :2007/04/27(金) 15:29:57 ID:mAH4GVwJ
>>319 SYNレートには最適値などない。ページのヒットレートやサーバの処理性能次第。
321 :
login:Penguin :2007/04/27(金) 21:06:39 ID:xjr/suIm
もちろん、全てのサーバに対する最適値を質問しているのではありません。 自分のサイトに対するアクセス数などの要因が絡んでいる事は理解しています。 その上で、最適値の目安をつける方法をしりたいというお話です。
322 :
login:Penguin :2007/04/28(土) 00:35:34 ID:nkc2+CFz
下記の設定を追加してみたのですが、動作確認をする方法はありますか? $IPTABLES -N syn-flood $IPTABLES -A syn-flood -m limit --limit 1/s --limit-burst 8 -j RETURN $IPTABLES -A syn-flood -j LOG --log-prefix "Warning! syn flood:" $IPTABLES -A syn-flood -j DROP
あります
>>316-317 を参考にして、2.4系から2.6.20にあげたんだけど、起動時
に(起動後手動でやっても)一部のルールで、
iptables: Too many levels of symbolic links
って出るんですけど、このsymbolic linkって、ファイルシステムのそれ
じゃないんでしょうか。
あと、
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp+ -j MASQUERADE
とかやってるんですけど、内側から一部のサイト(www.noaa.govとか@IT)がみられな
かったり、内側のPS3からPlaystation Networkに繋がらなくなってしまいました。
どのへんをチェックすればいいんでしょう。
>>325 おお、ありがとうございます!ばっちり解決しました。
iptablesでapacheのlimitipconnみたいなことはできますか? できるならぜひ教えてもらいたいのですが
iptablesの設定でいろんなサイトを見ていたのですが ppp0とかppp+とか出てきてわかりませんでした。 ppp0とかppp+って何ですか?
>>327 connlimit で出来る、かも知れない。
(サポートしてないかもしれない。)
331 :
328 :2007/05/29(火) 03:10:29 ID:/srE7Qjl
すみません。 書かなくてもみなさんわかると思ったので書きませんでしたが ググってわからなかったので質問しました。
ppp0 とか ppp1 ってのは PPP 接続インターフェースの名前で、 ifconfig した時に、eth0 や lo と一緒に出てくる。(設定してれば。) PPP 接続ってのは PPPoE するのに必要で、 ADSLモデム直結でLinuxをルータにしようとすると WAN側が ppp インターフェース(ppp0とかppp1とか)になる。 ppp+ はアクティブなPPPインターフェースのどれか。
333 :
login:Penguin :2007/06/04(月) 16:54:55 ID:/R0JhaQ8
LinuxPCをNATとして下記のような構成にしたいと考えております。 192.168.0.1 | +---+192.168.0.254(eth0) |NAT| +---+192.168.1.1(eth1) | | 192.168.1.2 | | +----+ | +------+192.168.1.254 |ROUTER| +------+dynamicIP | Internet 下記2つにて可能でしょうか? (1)eth1のGWを192.168.1.254にする (2)iptables -t nat -A POSTROUTING -s 192.168.0.1 -o eth1 -j SNAT --to 192.168.1.1 また、不足等あればどのような設定が必要でしょうか? どうかアドバイスをお願い致しますm(_ _)m
>>333 (1) "eth1の" ではなくて "NATルータの" な。
デフォルトゲートウエイはマシン単位で設定するものであって、
ネットワークカード単位で設定するものではない。
(2) "--to" ではなくて "--to-source" だな。
>>333 なんで2重にNATするの?
せっかくルータがあるのに。
336 :
333 :2007/06/06(水) 15:09:10 ID:YJltEUYM
>>334 ,335
レスありがとうございます。
社内NWで、NWを切り分ける必要があるからです。
・・・試そうとしたらクロスケーブルがないorz
VLAN 対応のハブにしたら?
>>336 高機能ルータにしてVLANにしたほうが楽ですよ。
>>333 FORWARDもACCEPTしないといけないんじゃないかな。
質問です。 krfilter のようなアジア地域に限った話ではなくて、 もっとほかの国々のIPアドレスもフィルタリングする方法ってないですか? 逆に日本だけOKとかでもいいんですが・・・
340 :
333 :2007/06/10(日) 04:19:16 ID:bkLFd8zx
少しだけどARIN管轄のJPアドレスがあるね。 43.0.0.0/255.0.0.0 64.56.160.0/255.255.224.0 133.0.0.0/255.0.0.0 199.103.103.0/255.255.255.0 204.79.157.0/255.255.254.0 204.79.218.0/255.255.255.0 204.231.230.0/255.255.255.0 204.231.251.0/255.255.254.0 206.3.0.0/255.255.224.0 206.143.128.0/255.255.128.0 216.255.224.0/255.255.240.0 (2007/06/08現在)
343 :
339 :2007/06/10(日) 21:47:57 ID:WfZdqta0
>>341 レスありがとうございます。
まさにこんなのを探してました。
今からawkの使い方を調べますw
344 :
login:Penguin :2007/06/12(火) 13:27:50 ID:bNzfVXjZ
すみません。教えて下さい。 現在、22ポートをどのIPからでもアクセスできるようになっているのですが、 これを特定のIPアドレスだけからアクセスするようにさせたいのですが、 下の記述に、更に-Aで追加することはできないのでしょうか?(うまくできません。) もしそうなら、どのように記述すればよいでしょうか? IPTABLES="/sbin/iptables" $IPTABLES -F $IPTABLES -t nat -F $IPTABLES -P INPUT ACCEPT $IPTABLES -P FORWARD DROP $IPTABLES -P OUTPUT ACCEPT $IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT
345 :
login:Penguin :2007/06/12(火) 13:52:31 ID:bNzfVXjZ
OSはCentOSを使っています。 ものすごく初歩的なことなのですが教えて下さい。 iptableを書き換えて、-Lで確認すると、希望通りに変更されています。 その後、/etc/rc.d/init.d/iptable restart します。 しかし、書き換えた内容が反映されていないのですが、何か足りないものが あるでしょうか?
>>345 restartする前に、
/etc/rc.d/init.d/iptable save
で保存せにゃ駄目なんじゃない?
これで/etc/sysconfig/iptablesあたりに現行のが保存されるはず‥
俺はiptablesの設定はrc.localに書いちゃう人なので良くわからない(苦笑
>$IPTABLES -P INPUT ACCEPT >$IPTABLES -P FORWARD DROP >$IPTABLES -P OUTPUT ACCEPT 書き間違えなのか知らんけど $IPTABLES -P INPUT DROP してな iptablesは上からよんでいく そして、上にある方を、優先してポリシーを適用するという大前提がある
348 :
login:Penguin :2007/06/12(火) 15:59:34 ID:bNzfVXjZ
>>346 そのとおりでした。ありがとうございます。
>>347 素で間違えてました。ご指摘ありがとうございます。
349 :
login:Penguin :2007/07/04(水) 05:49:42 ID:AjHyf33g
保守age
350 :
login:Penguin :2007/07/04(水) 11:09:43 ID:UK9QnhoX
Redhat 系では /etc/sysconfig/iptables に設定が置いてあって、 起動時にそれが rc 以下のスクリプトで反映されることに なってますが、そもそも /etc/sysconfig/iptables って system-config-securitylevel が作成するものですよね? もっと細かい設定をしたいときにはこのファイルを vi なんかで いじるというのが Redhat 流儀なのでしょうか?それとも 手動での設定項目は別に用意するべきなのでしょうか? いままで Debian 系をメインで使っていたので、 まだ Redhat 系の流儀がわかっておりません。 できるだけ郷に入っては郷に従えで行きたいと思っています。
>>350 /etc/init.d/iptables save かな。
352 :
350 :2007/07/05(木) 07:20:59 ID:VsSiocxY
結局、system-config-securitylevel を使わない前提で /etc/sysconfig/iptables をエディタで書き換えてます。 ときどき /etc/init.d/iptables save で別ファイルに保存して。
Chain OUTPUT (policy DROP) target prot opt source destination ACCEPT 0 -- anywhere anywhere state NEW,RELATED,ESTABLISHED と OUTPUT の policy を ACCEPT にするのとでは違いがありますか? OUTPUT も、ポート毎に1つ1つ許可するほうがいいのでしょうか? いまいち OUTPUT を deny するメリットがわかりません。 アドバイスをお願いします。
たとえば掲示板か何かを公開した時に 掲示板スクリプトにセキュリティホールが存在して (本来あってはならないことだが、しばしば起こりうる) 気づかぬうちにボットネットに参加してしまうかも知れない。 そういう時に RELATED と ESTABLISHED だけ許可しておいて 他は policy で DROP しておけば、犯罪ネットに貢献しないで済む。
通信を許可するポートを動的に変更する方法はありますか? 動的というか、IPアドレスではなくてホスト名で許可したいのですが。 例えば、自分のノートPCの出口のグローバルIPをダイナミックDNSとして ホスト名が常に変更されるようになっている時、そのダイナミックDNSの ホスト名から得られたIPアドレスは通信できるようにiptableを設定 したいのですが、そのような事はできますか?
macアドレス使うとか
iptables -t nat -A PREROUTING -d (グローバルIP) -p all -i ppp+ -j DNAT --to 192.168.0.2 みたいなのて、 プロバイダ割り当てIPがかわるたびに やらなくちゃいけないでつか?
358 :
login:Penguin :2007/07/11(水) 11:03:28 ID:D3zZXJq+
>>357 うん。たとえFQDNで指定しても iptables コマンドを
実行した瞬間に名前解決されるわけだからね。
適当な Dynamic DNS に登録しておいて、
cron で定期的に iptables 設定しなおすとか。
359 :
login:Penguin :2007/07/11(水) 11:06:23 ID:nph/g5pi
全てのlog.は出てます。
360 :
amel :2007/07/11(水) 11:07:41 ID:nph/g5pi
aaa
361 :
login:Penguin :2007/07/11(水) 11:14:47 ID:dikq2zGa
ほげ?
>>357 構成と何がやりたいのかによりけりだけど、
eth0 とか ppp0 とかのインターフェース指定じゃ無理なケース?
>>341 そのページの説明を参考にiptablesを設定すると何千行にもなるんだけど、そんなもの?
今のところ普通に動いてるから、いいのかな?
うちの場合こんな感じだ。 $ sudo iptables-save | wc --lines 1856 手で個別に入れたルールが70くらい。 残りは特定アジアのIPアドレスを対象に自動生成した -A INPUT -s xxx.xxx.xxx.xxx/xxx.xxx.xxx.xxx -j BAD-INPUT こんなやつばかり。
>>364 レスthx、安心した。
wgetとcronで勝手に更新するようにしてみたんだけど、行数の多さに不安になってたのよ。
firestarterで受信全閉め、送信全閉めand一部開けにしてる俺は ダメな奴でしょうか? やっぱ、色々やらんとダメなんですか?
コマンド叩いてるけど俺も同じような感じだよ! 開けてるのはhttp,https,ftpだけだったり
firestarterの日本語訳って少し変
>366-367 素朴な疑問です。例えば、http(80),https(443),ftp(21)以外は、送受とも全閉め…の場合、 そのセッションで許可された際に1024以上の任意のポートが使用されたセッションもブロック されるんでしょうか?
>>369 > そのセッションで許可された際に1024以上の任意のポートが使用されたセッションもブロック
意味不明。
単にポートだけでOUTPUT側をフィルタした場合、当たり前だが1024以上も対象になる。
なのでiptablesのconntrackモジュールを併用してあげるといい。
iptablesでアプリケーション単位で防ぐ事って出来ますか? Firefox → TCP/IP 送信 80番 ok Thunderbird → TCP/IP 送信 25,110番 ok gFTP → TCP/IP 送信 20-21番 ok みたいな。
アプリケーション使うPC上でなら可能。つーかそれをFWと言うのでは? 経路上のポートからはアプリケーション判定は無理。
> アプリケーション使うPC上でなら可能。 おー。そうでしたか! 参考までに一例教えていただけませんか? 「ACCEPT tcp -- 192.168.1.1 anywhere tcp dpt:www」 これだと他のソフトでも全部80番を通してしまいますので、 「Firefox のみ TCP 80番 送信をok」にしたいです。
>373 スマソ。専用のFWを使ってね…と言う意味でした。iptables では無理。
SELinux とかでパケットに印を付けて その印を見て iptables や iproute で制御する事は可能らしい やった事ないので確かなことは言えないが
376 :
373 :2007/07/25(水) 21:27:20 ID:OFMlwdEN
>>374 すまん、こっちも勘違いでした
>>375 なるほど、SELinuxですか
ちと調べてみます。ありがとん
--*id-owner系のオプションでなんとかならない?
>>377 シンプルなやり方としてはそれもアリだね。
ただコマンド名でしかマッチしないので、
同じ名前で全く別のプログラムがあったりすると区別できなくなってしまう。
(これはWindowsのアプリケーションファイアウォールでも同じことが言えるが)
379 :
たけぼん :2007/07/29(日) 05:56:27 ID:5YjE0kTR
基本的な質問ですみません。 eth2がWAN側につながってます。 スプーフィングおよびソースルーティング対策として iptables -A INPUT(FORWARD) -i ppp0 -s 192.168.1.0/24 -j DROP iptables -A INPUT(FORWARD) -s 192.168.1.0/24 -i eth2 -j DROP iptables -A INPUT(FORWARD) -i ppp+ -s 192.168.1.0/24 -j DROP の3種類の書式が見つかりました。この3つは同じ結果になるのでしょうか? またどの書き方がベストというのはありますか? どなたか教えて下さい。
>>379 "ppp+" は "ppp" で始まるいずれかのデバイス ("ppp0", "ppp1" etc.) に適合する
ことになるので、複数のppp接続が混在するような環境で便利だろう。
あと、コマンドの順序には意味がない。
従って、1行目と2行目はデバイス名が異なる ("ppp0", "eth2") だけで同じ意味。
また、ソースルーティング対策を行なうのであれば
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
で十分(ふつうのカーネルなら最初から0だが)だろう。
あと、IPアドレス偽装のうちプライベートアドレスまたはループバックアドレスを
発信元にしたパケットを破棄したいのなら、
iptables -A INPUT(FORWARD) -s 10.0.0.0/8 -d 0/0 -i ppp0 -j DROP
iptables -A INPUT(FORWARD) -s 172.16.0.0/12 -d 0/0 -i ppp0 -j DROP
iptables -A INPUT(FORWARD) -s 192.168.0.0/16 -d 0/0 -i ppp0 -j DROP
iptables -A INPUT(FORWARD) -s 127.0.0.0/8 -d 0/0 -i ppp0 -j DROP
とすればいい。
381 :
たけぼん :2007/07/30(月) 13:42:25 ID:82MghHmK
名無しさん、ありがとうございました。
382 :
たけぼん :2007/07/30(月) 13:49:51 ID:82MghHmK
-dの後の0/0て何ですか?初めて見ました。
>>382 0.0.0.0/0 と同じ意味。要はIPv4アドレス全て。
384 :
たけぼん :2007/07/30(月) 15:46:34 ID:82MghHmK
ありがとうございます。
385 :
login:Penguin :2007/08/01(水) 13:45:52 ID:xTh2AlOO
l|l l|l ;y= ;y= ハ_ハ ニ、ニダァ? 三 ┗<丶`∀´>┛ (^<;`д´>^) 三 ┛┓ ) /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (_ノ_ノ
>>386 よくあるのがセッション乗っ取り目的の偽装TCPパケットだな。
SYNを送受信してないのにいきなりACKフラグだけ立ったTCPパケットが来たりすると
INVALIDになる。
388 :
386 :2007/08/03(金) 21:12:34 ID:NtWU9CUf
>>387 それってNEWにはならないん?
てことは、TCP系スキャンを検出したいときは、
INVALIDを捨てるよりも先にスキャン検出をするべきってことか。
↓こんな感じで:
:INPUT DROP
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags ! SYN,ACK,FIN,RST SYN -j tcp-scan
-A INPUT -m state --state INVALID -j invalid ←tcp-scanよりも後ろに置く
-A INPUT ...
...
:tcp-scan -
-A tcp-scan -p tcp -m tcp --tcp-flags SYN,ACK,FIN,RST ACK -j tcp-ack-scan
...
-A tcp-scan -j DROP
:tcp-ack-scan - ←ログ残して廃棄。invalidなども同様
-A tcp-ack-scan -m limit ... -j LOG ...
-A tcp-ack-scan -j DROP
>>388 TCPヘッダの現在の状態を見て明らかに無効なパケットであれば
NEWではなくてINVALIDだよ。
390 :
login:Penguin :2007/08/31(金) 01:30:48 ID:/QsvseIU
>>389 どこからか明らかかってのはありますが、結構 INVALID じゃなくて NEW になる
こともあるとか。なので、どこぞの HOWTO だか FAQ には、TCP の場合はちゃんと
フラグも調べるようにと書いてあったような。
うろ覚えですまん。
391 :
はまってます :2007/09/02(日) 18:24:13 ID:MBbpYlqy
ある環境のhttpsでEncrypted Allertが発生するという、 ややこしい問題にはまってます。お助け頂けないでしょうか? このレスには概要を書き、次レスにはiptables設定を載せようと思ってます。 最近プロバイダを変更し、dhcpのみの環境からpppoe+dhcpに変わりました。 その変更によって問題が生じるようになりました。 [環境] ルーターが2台あります。 ルーターAはLinuxでインターネットに接していて、 WANインターフェースはpppoe+dhcpです。 LANインターフェースは192.168.1.0/24の中の1固定アドレスです。 192.168.1.1/24ネットワークにIPマスカレードしてます。 ルーターBはプラネックスの安ルーターで WANインターフェースは192.168.1.0/24の中の1固定アドレスです。 LANインターフェースは192.168.0.0/24の中の1固定アドレスです。 192.168.1.0/24ネットワークににIPマスカレードしてます。 このネットワークは二重のIPマスカレードを介してインターネットに 属してます。 [障害内容] 殆ど何も問題はないのですが、唯一、一部のhttpsで問題が発生します。 Wireshark(旧Etherreal)で見ると、シーケンスの途中でEncrypted Alert が発生していることがわかるだけで、それ以上の詳細はわかりません。 yahooのhttpsでは問題ありませんが、goo、Gyaoではタイムアウトになります。 ルーターAがpppoeになる前は問題ありませんでした。 また、現在でもルーターAを市販のpppoeルーターに取り換えると、 ルーターBのネットワークでもgoo,Gyaoとも問題ありません。 ルーターAがLinuxな理由はVPNの為です。
392 :
はまってます :2007/09/02(日) 18:31:00 ID:MBbpYlqy
ルーターAのiptabls設定です。 #!/bin/sh IPTABLES=/sbin/iptables ${IPTABLES} -P INPUT DROP ${IPTABLES} -P OUTPUT ACCEPT ${IPTABLES} -P FORWARD DROP ${IPTABLES} -F FORWARD ${IPTABLES} -F INPUT ${IPTABLES} -F OUTPUT # Allow packets in local ${IPTABLES} -A INPUT -i lo -j ACCEPT ${IPTABLES} -A INPUT -s 127.0.0.0/8 -i '!' lo -j DROP # Pass SSH, etc ${IPTABLES} -A INPUT -p tcp -i ppp0 -m multiport --dports 22 -j ACCEPT # Make own rule set chain ${IPTABLES} -F commonrule ${IPTABLES} -X commonrule ${IPTABLES} -N commonrule # Bypass to commonrule ${IPTABLES} -A INPUT -j commonrule ${IPTABLES} -A FORWARD -j commonrule # Allow packets within LAN ${IPTABLES} -A commonrule -i br0 -j ACCEPT # Established packets ${IPTABLES} -A commonrule -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT ${IPTABLES} -A commonrule -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT # Allow ICMP ${IPTABLES} -A commonrule -p icmp -j ACCEPT # Do masqurading ${IPTABLES} -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
>>391 エラーメッセージは略さず書け。
あとpppoeってことは例によってMTU問題(特にpath MTU discovery)ではないのか?
試してみれ。
# iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
>>391 iptables -A FORWARD -p tcp--tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
げ、393氏かぶったすまそ。よくみるともれの間違ってるな・・・。 # iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu 多分これでいけると思うけど。
396 :
はまってます :2007/09/02(日) 21:44:39 ID:MBbpYlqy
>>393-395 早レスありがとうございます。
でもチェーンフラッシュの直後に追加して試してみましたがやっぱり駄目でした。
私の環境の場合、ルータAのネットワーク内からのアクセスは大丈夫で
ルータBのネットワークからだと駄目なので、書く場所とか書き方に少し
工夫が必要なのでしょうか?教えてクンですみません。
>>396 今のルールセットじゃ無理だろう。
FORWARDチェインの冒頭に入れてみれ。
398 :
login:Penguin :2007/09/02(日) 23:55:12 ID:4sOAdWya
>>397 今試せない状況なので追加質問だけさせて下さい。
繰り返しの説明になりますが、
>>392 の設定でもルータAのネットワークからのアクセスは大丈夫なんです。
さらにもう一回マスカレードしているルータBのネットワークからのアクセス時
だけ駄目なんです。この場合も-o ppp0へのパケットの調整が有効でしょうか?
400 :
はまってます :2007/09/04(火) 21:07:32 ID:ftQujwlz
>>398 自己レスです。
--clamp-mss-to-pmtu では駄目で、 --set-mss 1452 で解決しました。
皆さんのレスが、何か私の環境を考慮してくれていないなあ
と思っていたのですが、私の
>>391 に大事な説明が抜けていたからだと思います。
後で
>>396 にちょっと書いたのですが、
TCPSSの設定をしなくてもルーターAのネットワークでは元々問題ありませんでした。
私のpppoe環境のMTUは1492ですが、ルータAのネットワーク内の各クライアント(Win,Linux)
は、それぞれpath MTU discoveryを働かせて正しく通信できていました。
問題が生じていたのはさらにもう一回IPマスカレードをかけた、ルータBのネットワーク内の
クライアントだけです。
ルーターBのネットワークのクライアントにとってルーターAは途中経路にあるルーターに
過ぎず、--clamp-mss-to-pmtu は意味がなかったのでしょう。
401 :
はまってます :2007/09/04(火) 21:12:26 ID:ftQujwlz
昨日はルーターBのネットワーク内の各クライアント (Solaris, FreeBSD, Debian, Ubuntu, RedHatEL, Windows)にMTUを設定していました。 全部問題なく設定はできたのですが、今後面倒だなあと感じ、ルータAにNICを追加し ようかなと思っていた矢先、固定値を設定したらどうかなと試してみたらうまくいきました。
>>400 ルータBでICMPをフィルタしていて「分割しなきゃダメだよ」というメッセージが
届けられてないのではないかと。
403 :
login:Penguin :2007/09/04(火) 21:32:27 ID:nEQBaeKm
ここ最近Megauploadというオンラインストレージ会社から強引にサーバ上にあるファイルを引っこ抜かれています 実質的なプロキシーサーバのようですが何かよい対策はありませんか?
404 :
はまってます :2007/09/04(火) 21:33:34 ID:ftQujwlz
>>402 そうです。ルータAのネットワーク内でping -f -lで調査すると
DFメッセージが帰ってきますが、
ルータBのネットワーク内で同じ調査した場合、パケットが
戻りません。
ルータBはプラネックスのBRL-04FWUという安ルータです。
カスタマイズが殆どできません。
以前、LAN内で使っているので「smbのパケットを落とさないように
できないか」とサポートにメールしたことありますが、返事さえ
帰ってきませんでした。
つなぎたいIP、ポートを特定して設定した場合、 安心していいでしょうか。 なにか破られたりする場合があるのでしょうか?
>>405 まず一つめに注意すべきはソースアドレスは偽装可能であるということ。
TCPの場合はコネクションを張るために最低でも1往復のパケットが通るから、
偽装したパケットであれば相手にSYN+ACKが届いた段階で「知らねーよ」とRSTが
返される。それ以外の場合は片道だけで通信が成立してしまうことが多い
(上位層に依存するが)ので、偽装したパケットによって不正に通信を成立させることが
できてしまうかもしれない。
二つめは設定した発信元IPアドレスのマシンに侵入されてしまった場合が
ありうること。アドレスとポート番号だけでしかチェックしていないのであれば、
そのマシンに侵入された時点でもう一つのマシンも無防備になってしまう。
ありがとうございます。 偽装したパケットの場合は syn後、偽装IPに返事が返されると思うのですが、 攻撃者はその受け取りができるのでしょうか。
>>407 だからそれは
>>406 で書いてるだろ。
TCPであれば最低でも一往復の通信が正しく成立しないと動作しないから、
偽装したところでそれは意味を為さない。
IPTABLESでwinnyの通信をさせなくしたいんですが、可能でしょうか?
>>409 winnyはファイアウォールをかいくぐるために乱数でTCPポートを決定するため、
「これがWinny」と断定して通信を手段することは無理。
http proxyなどの中継サーバを介して外部と通信させ、IPレベルで外部と直接通信
できないような仕組みを作るべきだろう。
>409 >410氏も書いてあるとおり、LAN -> WAN は 許可したPC以外は DROP でOK? 許可したPC(XP)は、Winny が起動しないツールを入れて監視するか、制限ユーザに汁。
うざい国からのアクセスを全て遮断スレより誘導されてきました。
http://pc11.2ch.net/test/read.cgi/mysv/1118726898/469-470 これを使わせていただき、日本以外からの接続を弾きたいと思っています。
http://pc11.2ch.net/test/read.cgi/mysv/1118726898/831 アドバイスをいただき上記のように手直しをした後、
下記のようにiptablesを設定し海外串を差して試したところ、
上手い具合に日本以外は弾いてくれたのですが、
同時にLAN内の他PCからhttp・ftp・sshへのアクセスも出来なくなってしまいました。
どこを手直しすればよいのでしょうか?
どうかお知恵をお貸し下さい。
countryfilter.plを書き換え、
filter.shを再作成した後に書き設定を行いました。
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -A INPUT -s 127.0.0.1 -j ACCEPT
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -N CKFILTER
# source filter.sh
# iptables -A CKFILTER -j LOG --log-prefix "Rej-TCP "
# iptables -A CKFILTER -j DROP
# iptables -A INPUT -p tcp -m state --state NEW -j CKFILTER
# iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -i eth0 -s 192.168.0.0/24 --dport 22 -j ACCEPT
# iptables -A INPUT -p tcp -i eth0 -s 192.168.0.0/24 --dport 20:21 -j ACCEPT
# iptables -A INPUT -p tcp -i eth0 -s 192.168.0.0/24 --dport 50000:50029 -j ACCEPT
# iptables -P INPUT DROP
countryfilter.pl から生成された filter.sh の抜粋を貼ってくれ。 途中の IP アドレスをダラダラ記述した部分は不要だから。
レスありがとうございます。
filter.shは下記のようになっていました。
#!/bin/sh
# Country based filter from *NIC database.
# For APNIC, get from
ftp://ftp.apnic.net/pub/apnic/stats/apnic/delegated-apnic-latest .
# Created: Mon Oct 15 21:04:13 2007
#
# This filter detects access from contries;
# JP
# variables. change these values before run.
IPTABLES=/sbin/iptables
FILTERNAME=CKFILTER
TARGET=RETURN
# Database version 20071015
$IPTABLES -A $FILTERNAME -s 58.0.0.0/15 -j $TARGET
(以下IP羅列が1800行くらいまで続いてます)
これ見ただけだと問題なさそうだけど・・ 先頭以外でポリシー書いてるスクリプトを そのまま使ってるのが気になる。 初めにルールの初期化してる?(-F だったか。) そこに問題が内容であれば、度々であれなんだが、 # iptables-save > filter-rule.txt とでもして、filter-rule.txt をいい感じに抜粋したのを貼ってもらえると アドバイス出来るかも知れない。
レスありがとうございます。 うーん・・・問題ないですかorz あと、設定をやり直す前には必ず-Fをしており、 -Lで確認しても全て許可と表示されています。 また、filter-rule.txtは以下のとおりです。 # Generated by iptables-save v1.3.6 on Tue Oct 16 23:29:52 2007 *filter :INPUT DROP [23:2358] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [142:9836] :CKFILTER - [0:0] -A INPUT -s 127.0.0.1 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m state --state NEW -j CKFILTER -A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -s 192.168.0.0/255.255.255.0 -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -s 192.168.0.0/255.255.255.0 -i eth0 -p tcp -m tcp --dport 20:21 -j ACCEPT -A INPUT -s 192.168.0.0/255.255.255.0 -i eth0 -p tcp -m tcp --dport 50000:50029 -j ACCEPT -A CKFILTER -s 58.0.0.0/255.254.0.0 -j RETURN -A CKFILTER -s 58.3.0.0/255.255.128.0 -j RETURN (以下IP羅列が1800行くらいまで〜省略) -A CKFILTER -s 222.231.64.0/255.255.192.0 -j RETURN -A CKFILTER -s 222.231.128.0/255.255.128.0 -j RETURN -A CKFILTER -j LOG --log-prefix "Rej-TCP " -A CKFILTER -j DROP COMMIT # Completed on Tue Oct 16 23:29:52 2007
わけわかんねー状態で外とつないで怖くないのか? 「うざい国」以前にあんたのPCが「うざいマシン」になるかもだよ。 ログに何と出てる? (貼らなくていいよ) そのログ出した後どうしてる? 何も出てないなら1行ごとにログ出すようにしてみろ それも面倒ならiptables -L -vvでどのルールにひっかかったのか 調べられる。量が膨大になるならfilter.shを除いてみろ 丸投げやめて、少しぐらい頭使おーぜ
418 :
login:Penguin :2007/10/17(水) 08:48:52 ID:D7VNNAnN
どこの世界も、偉そうな奴はホント態度が偉そうだよな。何様?
>418 俺様
銀さまハァハァ
うざい奴をdrop
カーネルを2.6.23にするとmoblockが使えなくなるぞ NFQUEUEがおかしいぽい
424 :
login:Penguin :2007/10/19(金) 02:35:56 ID:Cz6QQ79V
Xenの上でVistaを走らせてたいのですが ファイヤーウォールの適用されるモードはどれなんでしょうか? そのときガチガチに守れるテンプレートがあれば教えてください。 やりたいことはWEBとメールです。
>>412 まだ見てるかな?
向こうのスレの831=836です
大ボケかましてた
このままだとプライベートIPがフィルタリングされてるね
CKFILTERチェインの作成と
filter.sh実行の直前に、プライベートIPもRETURNにしてみて
# iptables -N CKFILTER
# iptables -A CKFILTER -s 192.168.0.0/24 -j RETURN
# source filter.sh
# iptables -A CKFILTER -j LOG --log-prefix "Rej-TCP "
# iptables -A CKFILTER -j DROP
427 :
真剣です。 :2007/10/20(土) 05:32:21 ID:Ln9PiS8q
質問の仕方から想像するに、仮想化をまったく理解していないとみた。 ファイヤーウォールと仮想化は直接には関係ない。 というか、ホストマシンがファイヤーウォールで通信制限されてたらゲストマシンも普通されるけど。 # ファイヤーウォール側でアプリケーションごとのうんたらとか、細かいことをいろいろやっていると、 # 思ったとおりにきちんと通信を遮ってくれないとか悩むかもしれないが(ちゃんと指定した通りに動いているよ!)まぁそれはそれで VMwareとVista Enterpriseを導入してVMwareの設定をNATモードとかなんとかに設定しておけば充分では?
>>424 がセキュリティ考えても良くはならない希ガス
430 :
login:Penguin :2007/10/20(土) 11:31:05 ID:1bReyt4O
Fedoraをルーター代わりのブリッジにすればいいんじゃねぇ? >ファイヤーオール クソワロタ
432 :
真剣です。 :2007/10/20(土) 13:34:26 ID:Ln9PiS8q
皆さんありがとうございます。
>>430 さんへ431さんの言うとうり
ドメイン0経由ブリッジというのが可能なのですか?
それともVMwareならそのままOKということでしょうか?
モードすらよくわっかていないのですが、ここがはじめの一歩なんです。
誰かもう一声ください。
つながればいいのならNATでいいんじゃね
VistaのPFWは随分マシって聞いたぞ そのまま使えばいいんじゃないの? ホストOS側でiptablesで制限かけるのって そもそも、仮想化としてはおかしい気がする
ホストマシンすなわちルータとして扱いたいつーか、考えればいいんだろうな そこで一元管理していれば、いちいち仮想(下層?w)マシンでFWとか考えずに済む
436 :
login:Penguin :2007/10/21(日) 15:09:08 ID:fUKGOJu+
ホストOSなしで仮想化してくる事も(いまに)出来るだろうけど、(今回)それは考えないって事でw うち今鯖4つ建ててるんだけど、いちいちアクセス制限管理してるのめんどくさすぎる。 ルータが欲しいけど、これって5つめの鯖を建てなきゃならないって事だよね………orz 仮想化出来てる奴が羨ましい。
437 :
質問 :2007/10/21(日) 15:16:21 ID:KkCVzm+C
iptablesの勉強中なんですが、 今見ている2冊の本に、 iptables -P INPUT DROP を設定してから、許可するルールを作成していくということが書かれているわけですが、 実際上記の設定をしたとたん、 sshでの接続はもちろん、linuxが起動しているローカルPCでもbashの起動、電卓やブラウザの起動までも できなくなります。(結局再起動でiptablesの設定を初期化) なにがまずいのでしょうか?
lo
そんなダメな本は晒せよ
DROPでいきなり終了じゃんw
俺も > iptables -P INPUT DROP してるが問題ないよ その後のアクセス許可がおかしいんじゃないの
> その後のアクセス許可 についてきちんと書いてないって話をしてるんじゃなかろうか。 (実は本にはきちんと書いてあるのに 437 が理解してないだけの可能性もある。) そりゃポリシーは DROP にするのが普通だよ。
最近の RHEL は INPUT のデフォルトを ACCEPT にして 最後に -j REJECT --reject-with icmp-host-prohibited しとるが、 あれってどうなんだろう? 遅いマシン使ってると、デフォルト ACCEPT のルールが投入されてから、 最後の -j REJECT が投入されるまでの間、INPUT 入り放題? とか心配したんだが、素人の杞憂?
ポリシーをACCEPTにしたら拒否するルールをずらずら並べるもんずら
質問させてください。 iptables -A INPUT -f -j LOG --log-prefix 'IPTABLES LOG:' このようにしてるのですがIPTABLESのログが画面に出力されてしまいます。 画面に出力しないようにしたいのですがどうしたらいいでしょうか? よろしくお願いします。
>>445 です。ミスりましたので訂正。
iptables -A droplog -j LOG --log-level info --log-prefix "LOG : "
このようにしてるのですがIPTABLESのログが画面に出力されてしまいます。
画面に出力しないようにしたいのですがどうしたらいいでしょうか?
よろしくお願いします。
iptables -A INPUT -j LOG --log-prefix "iptables: " うちの環境だとこれで/var/log/messagesにずらずらとログが吐き出されてるよー。
iptables -Lってすると一部だけどDNS引いた結果出してくれる(〜〜.ne.jp/21とか) のはいいんだけど、ApacheみたいにDNS引いてるから遅いってやっぱりありますよね? これって設定とかで引かせないようにできるんですか? iptablesが重たいのを少しでも何とかできればと思っています。
>>449 iptables自体が重くなるって意味がわからん
iptables -L(-n無し)で設定表示したときにドメイン名逆引きするだけだぞ
質問させてください。 @ iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT A iptables -A INPUT -s 192.168.1.0/255.255.255.0 -j ACCEPT @とAは違ったりしますでしょうか?
>452 (日)と(月)は違うぞ! 曜日が…
>>453 意味がわからんかった
いまごろ 理解したよ
(日)と(月)に見えた人が書き込んだ場合、 (日)と(月)にはならないと思うんだ。
懐かしいw e-mail始めた頃、「MACの人も居るから○文字は使うな」とか ネチケット叩き込まれたことがあるな
まだ前の回答ついてないのに恐縮ですが、質問です。 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 とすると、転送先マシンにつながることを期待していたのですが、無反応です。 何が足りないんでしょうか。
>>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 :2007/11/02(金) 17:43:42 ID:zzEzt7oi
>>461 ありがとうございます。
> iptables -A INPUT -p tcp --dport 8022 -j ACCEPT
入れてもダメでした。
Webサーバーが、ポートの変更はないものの、やはり内部のマシンに転送する設定になっていて、
そちらは
>>460 に書いたような設定でアクセスできています(INPUTのACCEPTもなし)。
ポート番号変更して飛ばす場合は何かほかに設定が必要なんでしょうかねぇ。
SSHは特別とか。ググりまくってるんですが、今のところ収穫なし。疲れた…。=□○_
echo 1 > /proc/sys/net/ipv4/ip_forward
464 :
460 :2007/11/05(月) 10:51:36 ID:Aa00PO2k
>>463 最初に書かなかったのがいかんでしょうけど、いくらなんでもそれは…。
Webサーバーへの転送ははできてるって、すぐ上に書いてるんだけど…。
書いてある設定はあってるきがするから 書いてある設定以外の設定もみたほうがいいよ そもそも、書いてある設定だけに原因があると判断した根拠はあるの? ないなら、もっと情報を集めるべきだよ パケットがどこまで来てるか確認するとか すくなくとも「SSHは特別とか。ググりまくってるんですが」と言うならTCPコネクションは正しく張れていることを確認したわけだよね?
んだな。 転送先のSSHの設定が間違ってるんじゃないかな。 少なくとも転送先にパケットが届いているかと、routerの方でドロップしていないか logみて確認した方がいい。
deiban-etch-i386で配布されているiptables-1.3.6を使っています。
もしかして--*-ownerで指定するownerマッチって、CPUがデュアルなSMP環境では使えない?
http://iptables-tutorial.frozentux.net/iptables-tutorial.html 上記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マッチが実装されるようになる予定、
もしくは使えるようにするパッチとかあるのかな?
>>467 それは単に--cmd-ownerオプションを有効にした状態でコンパイルしていないものと
思われ。
iptablesをコンパイルする際にIPT_OWNER_COMMを設定してコンパイルしておく
必要がある(iptablesの既定では設定されていない)。
>--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.)
>>467 >>468 訂正。2.6.xカーネルをよくよく読んだら
> ipt_owner: pid, sid and command matching not supported anymore
だそうだ。
uidとgidのマッチングだけが残されてる模様。
>>468-470 --cmd-ownerで指定したかった実行ファイルを、適当なグループにchgrpして
--gid-owner使うしかなさそうね。。。とりあえず、--gid-ownerが使えることは
確認できました。ありがとう。以上
472 :
login:Penguin :2007/11/16(金) 11:04:17 ID:l7VK4xQc
ntpを通す設定をする時は 127.127.1.0(ローカルのクロック)も通さなくてはいけないのでしょうか?
>>472 ローカルクロックをntpで使わない(常に他の時計を参照して時刻修正をする)
のであれば通す必要はない。
ただntp以外のものを動かすことを考慮すると、デバイスloから来たものについては
通しても問題なさそうな気がするが。
474 :
login:Penguin :2007/11/17(土) 08:31:59 ID: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にされたら(そんなことが出来るのか分かりませんが) 通ってしまうんじゃないか…と思うのですが、どうなのでしょうか。
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 :2007/11/17(土) 09:58:36 ID:FMqlrwB/
>>475 おっしゃるとおりの環境です
確かにこれなら大丈夫ですね
分かりやすい説明ありがとうございました
/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した状態で必要なポートだけ空けるにはどういう設定したらいいですか?
そりゃ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側は自動で面倒見 てくれるんだし。
480 :
477 :2007/12/05(水) 08:58:33 ID:bS7YQRUV
やっぱPREROUTINGでフィルタリングするべきでは無いっすか。ありです。
477だけどPREROUTINGで必要なポートだけREDIRECTしてやればいけそうな感じです。 他の要因でまだ試してないですが・・
>>477 ちなみに何故PREROUTINGでやるのか後学の為に教えて下され。
483 :
154 :2007/12/12(水) 23:53:15 ID: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 :2007/12/12(水) 23:54:10 ID: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 :2007/12/12(水) 23:55:49 ID: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の設定ミス・不足が有力視されています。
素直にこれじゃ接続できんの? #pasv_enable=YES #pasv_address=211.10.47.197 #pasv_addr_resolve=YES #pasv_min_port=4000 #pasv_max_port=4029
-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 :2007/12/13(木) 02:37:06 ID:4N7nbO+s
勘違いした。鯖とFWは同じマシンで別にルータが居るのか。と云う事は、 ↑の設定をルータ上に入れんと駄目って事ね。 1)でやってるFTPのWellKnownポートを開ける。 に4000から4029が含まれて無いと仮定しての話しだけど。
489 :
154 :2007/12/13(木) 16:54:19 ID:RBocae6Q
マルチかよ。二度とくんな!
491 :
login:Penguin :2007/12/13(木) 21:44:57 ID:Dtsl/eW1
>485 嫁
492 :
login:Penguin :2007/12/13(木) 21:49:32 ID:Dtsl/eW1
ところで、pfの話はここでしていいんかい?
494 :
login:Penguin :2008/01/05(土) 21:36:50 ID: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 :2008/01/05(土) 21:37:07 ID:j9FhIFrb
あ。誤爆。すまそ
496 :
login:Penguin :2008/01/05(土) 21:50:44 ID:TOhgYRiE
↑eve↑,カンリニン… (+Φ Φ) //…〆∞i ………>規制せよ ←√//;ミシミシミシッッ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
497 :
login:Penguin :2008/01/05(土) 21:56:07 ID:TOhgYRiE
↑eve↑,カンリニン… (+Φ Φ) //'〆∞i ………>そして、Webから2chを抹消するのだ… ←√//;ミシミシミシッッ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
498 :
俺 :2008/01/10(木) 15:11:06 ID:upM3OZCX
iptablesって最大何個チェインを作成できるの?
iptablesじゃなくてshoewall使ってる人いる? shoewall便利だよ
shorewallは知ってるけどshoewallは知らないな >iptablesじゃなくてshoewall 日本語でおk shorewallもiptablesだろうが
shorewallはiptablesラップして設定吐き出すだけだしね。 まずはiptablesを理解した上で使うにはいいだろうけど。
質問です。 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 質問だけで求めているものをエスパーしてくれるとは・・
どうもありがとう
でも入れるの難しそうだな なんせDD-WRTだから
506 :
login:Penguin :2008/01/18(金) 16:43:24 ID:lPyT/fq/
一般的解答 ・弾いたログをsyslogなどに記録しないとみれません。 簡単に調べる方法 iptables -L INPUT -v -n --line-numbers -x で破棄されたパケット数、バイト数をルールごとに確認できる。
508 :
506 :2008/01/18(金) 17:30:39 ID: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 '
フィルタのリストにあがっていてもすでに通過するルールに従って通過して いることはないでしょうか。この場合、限界までフィルタリストに追加して もまったく意味を成しません。 ログに記録するされる機能を試したければ運用に影響のない新しいルールを一つ作り、 自分で試すことが無制限かつ永久にできます。
>フィルタのリストにあがっていてもすでに通過するルールに従って通過して >いることはないでしょうか。この場合、限界までフィルタリストに追加して >もまったく意味を成しません。 なるほど! まさにそれのような気がします。 上に作ったルールがあったので。アホでした。 丁寧に教えてくださりありがとうございました!
511 :
login:Penguin :2008/01/19(土) 06:56:27 ID:V/B+zaIL
私が小学生の頃、
日本中でノストラダムスの予言が大流行していた。
「1999年の7月に人類は滅亡する!」
という例のお騒がせ終末予言である。
大人になって社会に出て働きだして、
あくせくと忙しく日々を過ごしながら、
1999年は、
ありふれた日常の中であっさりと過ぎていった。
人類は滅ばなかった。
これからここで、
1999年に起こるかもしれなかった人類の壊滅的破局を、
誰にも知られずにこっそりと回避させた人たちがいた...
という設定で、
荒唐無稽なストーリーを描いてみたい。
無論、100%完全なフィクションである。
http://www5.diary.ne.jp/logdisp.cgi?user=532063&log=200705
513 :
login:Penguin :2008/01/20(日) 00:20:37 ID:Stwf61MT
ubuntu7.10を入れたPCにsshで繋いで、nmapをやったら↓の様に出ます。
$ nmap localhost
Starting Nmap 4.20 (
http://insecure.org ) at 2008-01-20 00:01 JST
Interesting ports on localhost (127.0.0.1):
Not shown: 1694 closed ports
PORT STATE SERVICE
22/tcp open ssh
3000/tcp open ppp
3306/tcp open mysql
この状態でSSHでの繋ぎ元のブラウザから
http://192.168.1.13:3000/ で繋がらないようで
ブラウザには「192.168.1.13:3000 のサーバへの接続を確立できませんでした。」とでます。
ポートは空けているつもりなのですが、どこが間違っているのでしょうか?
自分なりに調べているのですが、手詰まりのような状態で
どこに手をつければよいのか分かりません。
ご助言をお願いします。
httpdはあがってんの? ubuntu7.10マシンからはそのページ見えるの?
515 :
513 :2008/01/20(日) 00:29:00 ID:Stwf61MT
レスありがとうございます。 ubuntuを入れたPCからは、そのページを見ることができていて 画面も動かせています。 動かしているアプリは、httpdではなくWEBrickで動かすようにしています。
ubuntu7.10マシンの外からnmapしてみてよ いま繋ごうとしてるクライアントのマシン
517 :
513 :2008/01/20(日) 00:57:24 ID:Stwf61MT
端末に使用しているものはwin xpになります。
↓が実行結果です。
ポート3000は端末から見たら閉じているということでしょうか。
iptablesをあちこちの記事を見ながら修正したのですが。。。
C:\Program Files\nmap-4.53>nmap 192.168.1.13
Starting Nmap 4.53 (
http://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>
うん、ダメね 続き頑張って〜
iptables の設定の数とネットワークパフォーマンスの落ちの関係をグラフにとってくれないか誰か
卒論の季節か
521 :
login:Penguin :2008/02/22(金) 00:41:35 ID: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
>>521 鯖2の設定は?
IP=192.168.1.2
ケートウェイ=192.168.1.1
になってるか?
>>521 まさかと思うけど、2 は ping 返す設定になってるのね?
あと 2 の firewall は平気なのね?(つまり全て ACCEPT
でも問題は生じる)
ちょっと調べてたらこんなの見つけたのだが、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
>>521 です
>>522-533 のご指摘内容は問題なそうだけど
どうやら鯖2の方に問題があるようでした
鯖2もNIC2枚差しでeth1の方でUSENに繋いでたのですが
そっちの接続が確立してると繋がらないみたいです
理由は分かりませんが
順番に解決しろ iptablesとは何の関係もない
>>525 鯖1も鯖2もUSENにつながっているってことか?
回線を複数契約していなきゃそんなことは普通できないでしょ。
IPが複数割り当てられているってことと回線が複数あるっていうことは意味が違う(レイヤが違う)んだから。
>526 順番に解決していきます 昨日の段階では鯖1のNATテーブルに原因があると思って質問したのですが 見当違いのようでした >527 USENが繋がってるのは鯖2のみです 回線は固定IPでISPを複数契約してます
何がやりたいのか、さっぱりわからない。
iptables -L --line-number で表示するとチェイン名の横に(0 references) とか(1 references) とかってあるんだけどこれ何?参照って意味らしいけど何を参照してるのか 先頭の番号が何を表してるのがさっぽり分りませんw
事故怪傑しますた!
532 :
login:Penguin :2008/03/14(金) 19:35:56 ID:JcU4K66O
ルールを追加するスクリプト書いてますが チェイン名のリストだけを取得する方法ないですか? iptables -L だと、ルールも長々と表示されるので困っています
>>532 超安直
$ iptables -L | grep ^Chain
もうちょっと書くと、 iptables -L -n|grep -e "^Chain" |cut -d " " -f 2 かな?
535 :
login:Penguin :2008/03/15(土) 23:38:04 ID: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 :2008/03/16(日) 01:42:43 ID:XWkiOM0n
535=536 落書きウザ
ガガガ・・・ニコニコ生放送が見れなくてorzしてたら・・・してたら・・・ iptablesのせいですた
iptablesを使いこなせないおまえのせい、の間違い。
そうっすねそうっすね カメラに向かってごめんなさいしてきます
541 :
login:Penguin :2008/04/21(月) 19:41:11 ID: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 どうか、よろしくお願いします。
>>541 ?そもそもそれらのビットがどういう意味を持っているものなのか知ってから設定すれ。?それらはいずれもRFC3168で規定されたもので、CWR (輻輳ウインドウ減少) と?ECE (ECN-Echo) だ。
>>542 まさか、こんなに早いレスがあるとは。
まだ、ほとんど読んでませんが、最後の60ページあたりが重要なのかな?
どうも、ありがとうございます。
質問です。 iptablesで--uid-ownerを見て--set-markして iprouteのほうでユーザー毎にルーティングテーブル用意して切り替えてるんですけど 複数のユーザーが同時に別のルートを使うとすごく遅くなります。 解決方法ありますか? もしくは、この方法以外にユーザー毎にルートを別にする(or NICを別にする)方法ってありますか? dest addressやdest portで切り分けることはできません。 Cent OS使ってます。
545 :
541 :2008/04/21(月) 22:21:41 ID:I4EnTsVG
ECN(CWRとECE)はこれまでReservedだったフィールドを使っている。 ECNに対応したホストは10か01をセットして送信する。 それを弾いていると。 ということは、クライアントがECNに対応していても、ルータがECNによりマークされたパケットを 無条件に破棄したら、クライアントはそれを利用できないと。 大雑把だけど、こんな感じでしょうか。 自作ルータへの道のりは何だか遠そう。
>>545 dropするのはどうかと思うのであれば、mangleターゲットを利用して
ecnのビットのみリセットしてあげるといい。
あとはそこを通らなければならないクライアントまわりだが、
俺が知る限り今時のOSでデフォルトでECNが有効になっているものは
なかったように思う(少し前のLinuxカーネルは有効だったような気がしたが)。
>>546 レスありがとうございます。
当面はDROPで問題なさそうですね。
通す必要が出てきたら、レスを参考に対応してみます。
>>544 解決方法じゃないけど
別々のルートって何ルートくらいあるのかな
デフォルトと特定ユーザだけ違うルートの2つだけだとどうだろ?
そもそもどこがネックになってるんだろうね
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 :2008/04/26(土) 14:28:42 ID: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
INPUT の policy を2回記述するのは何故?
552 :
549 :2008/04/26(土) 20:11:54 ID:rL6Isbwd
どこかのHPに書いてあったのを自分用にゴニョゴニョしてみてるんだけど、
一回目のは、設定するとき用で、ここでDROPしちゃうと、設定中に
ループバックがDROPされちゃってXとか動かなくなるから、、、だったかな(?)
二回目のは、本番用で、先に許可したやつ以外を全部DROPするため。
(
>>549 のだと、192.168.1.3:80以外をDROPする)
そういう小細工をしないで済むよう、コンソールからログインするべき。 リモートから弄ると、面倒が増す。
554 :
549 :2008/04/26(土) 20:39:01 ID:rL6Isbwd
>>551 ,553
ポリシーの記述を一回だけにしました。
>>549 の一回目のポリシーを決めるところでDROPにして、二回目はコメントアウトしました。
iptables -Lすると ACCEPT all -- anywhere anywhere があります。
設定内容とiptables -Lを貼ってもらえませんか?
設定内容は日本語で概要を箇条書きみたいなでもOKなんで、よろしくお願いします。
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のまま)実験用マシン。 ヒント:ループバック
>>550 -L には -v も付けた方がいいよ。
そうすれば、
> INPUTのACCEPT all -- anywhere anywhereとだけ書かれた行が
> 全部ACCEPTしてそうで気になるんですが、大丈夫なんでしょうか?
こんな心配しなくて済む。
>>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のようになります
#!/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
SYNFLOOD対策は?
560 :
544 :2008/05/05(月) 14:26:52 ID:XEf57B8a
>>548 レスサンクスです。
おっしゃる通りルートは2つです。
どこがネックになってるかはようわからんです。
iptablesでのset-markは常にしているので、2ルート使うときのみ遅くなるということは
iprouteでルート切り替えるときですかね?
561 :
login:Penguin :2008/05/07(水) 15:10:54 ID:RbvyPsKi
iptables -P INPUT DROP のログを出力したいのですが,どうすればいいですか? お願いいたします。
>>561 INPUT Chainの最後でULOGを使う
--tcp-flagsについてお聞きしたいのですが iptables -A INPUT -p TCP -m state --state NEW --tcp-flags ! SYN SYN -j LOG って「コネクションがNEWのtcp接続パケットでSYNじゃない場合はログとる」 でいいんですか? "!"の反転で一つしかない場合の挙動がよく分からないのです
iptablesってarpフレームは制御できないのか
>>564 そりゃ "ip" tables だし。
ARPはIPと密接な関わりがあるプロトコルだがIPとは別のプロトコル。
nat変換する前と後のパケットを対応付けることってiptableでできるもんですかね?
できる。ip_conntrackでぐぐるがよい。
>>565 ほぅ。
んじゃTCP/UDP/ICMPも扱えないのか?
>>564 L2からL4までがiptabelsの守備範囲だが、
今んとこL2で扱えるのはソースアドレスのみ。
そのうちもっとよくなるよって誰かが書いてたな。
>>568 TCP,UDPは使えるだろ。
ICMPは一部変なのが混ざっていた様な気がする。
(RFCおさらいしてみるわ)
ICMPも結局IPヘッダの中ではTCP/UDPと同じレベルで扱われてるからなぁ
571 :
login:Penguin :2008/06/25(水) 15:32:08 ID:xzwraCds
デスクトップ向けのiptalbes設定例ってないかな?
>>571 LAN内だとそもそも不要じゃないか?
WANに直結してるならサーバ向けの設定と同じだし。
>>572 やっぱりそう?
何かあった時の為にルーターのパケットフィルタと
クライアントのiptablesで二重にしようかと思ったのだけど
やるなら
>>173 のようなPFW的なルールかなあ
今こんなネットワークを組んでるんですが、 このままだとWAN1側から鯖にアクセスができないんですが、 これってiptablesで経路制御したりすると見えるようになるんでしょうか。 ルーターは市販のBBルーターで、当然TCP80へのアクセスはアドレス変換かけてます。 WAN2を切断すれば問題なく見えます。 WAN1 WAN2 ┌─┴─┐ ┌┴┐ │ROUTER├(LAN)┤鯖│ └───┘ └─┘
576 :
574 :2008/07/02(水) 12:32:27 ID:MvQGQFPV
>>575 yum updateしたらNICがうごかなくなって試せてないですが、
なんとかできそうです。
ありがとうございます。
577 :
login:Penguin :2008/07/13(日) 06:14:03 ID: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 :2008/07/13(日) 16:32:09 ID: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 :2008/07/13(日) 21:50:16 ID:hmSEn1ns
>>578 ありがとうございます。大変参考になりました。
580 :
下っ端10年 :2008/07/15(火) 00:58:58 ID:ws2H6nIo
フラグメントの処理、自信のある方いますか? iptables -A OUTPUT -f -d 192.168.1.1 -j DROP こんな霊があったんですけど理解不足で 必要なのはFORWARD、INPUT、じゃないかと思いますが、 とりあえずこれ入れとけ。間違いない!とか ここ見て出直して恋とか♪お願いします
>>580 マニュアルくらい読め。 それと、そのマシンのIP設定くらい書け。
意味:
「断片化されたパケットの宛先が192.168.1.1ならば破棄する」
通常のパターンだと、192.168.1.1はルータだな。
要するに、外部に送信される妖しいパケットを叩き落とす設定。
582 :
下っ端15年 :2008/07/15(火) 14:37:00 ID:ws2H6nIo
ありがとうございます。 心配事なんですがセッションが盗まれてその中に攻撃パケットを流して ブラウザーの脆弱性が攻撃されたりすることってありますか 盗まれなくてもIPが判っていたら紛れ込ますとか iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 上記の設定を加える?以外に安心策とかあればお願いします。 iptables -P INPUT DROP それともこれだけで十分なのですか
>>582 あるかどうかという点でいえば「ある」。
ただそれを心配するのならインターネットに接続せず切り離しておけば良かろう。
>>582 セキュリティに「これだけで十分」はないよ。
-j ACCEPTなルールは(単独で見れば)許可の追加なんだから安心材料にはならない。
闇雲に心配するより先にマニュアル嫁。
585 :
見習い18年 :2008/07/16(水) 03:38:44 ID: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 :
見習い卒業 :2008/07/16(水) 03:44:43 ID: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...意味が難しくてではよろしくです。 ダメダメなのは判っています。
ダメダメです。 何がしたいのかさっぱりです。 グローバルIPを持ったインターネット直結のクライアントPCなのか、プライベートIPを持った LAN内クライアントPCなのかすら不明。 前者ならプライベートアドレス絡みの設定は不要だし、後者ならLAN内の他のクライアントと 通信不能です。 それから、確立済みセッションのアクセスを許可する設定をいれるなら、その他の個別の外向き の穴あけは一切不要です。
588 :
一から出直し :2008/07/16(水) 18:38:36 ID: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?だけ防いでるみたいなんですけど通常はそれで大丈夫なんでしょうか?
OUTPUTは基本ACCEPTだと何か困ります?まぁ、人それぞれですが。 ルールですが、俺はなるべくシンプルに書くようにしてます。 >PS.皆さんはNetBios?だけ防いでるみたいなんですけど通常はそれで大丈夫なんでしょうか? とりあえずこいつらがゴミパケだな。 135 137-139 445 1900 5353
クライアントならこれで充分 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 サーバーなら使うポートを開けていけばいい
うほっ、いい流れ 俺もクライアント用のルールを勉強させてくれ
593 :
一から出直し :2008/07/17(木) 00:11:34 ID:nfCUoiJG
590さんありがとございます 591さんありがとございます 592さん一緒ににがんばりましょう どうしてOUTPUT DORPじゃなければダメなのかと言いますと もれてはイケナイ情報を入れておきたいからなんです NoScriptを動かしていても何かの拍子で悪い事をする物が 入ってしまうことがあると思うのです 鍵を閉めずに泥棒に入られても諦めがつかない 閉めておけば自分で自分を慰めれる、、、 そんなところでしょうか。
ふつーのtcp/ipアプリは1024以上の任意のポート(OSやIPスタックにも依存するが)を使って通信を始める どのポートをACCEPTするかいつ誰が決めるの?
>>593 じゃあ、真っ先にHTTPを閉じるべき。
>>593 |もれてはイケナイ情報を入れておきたい
ネットワークに接続されたマシンに、安全は無い。
そのマシンからLANカードを抜け。 物理的に遮断するのが最も安全。
究極は「紙に手書きする」。 この紙を銀行の貸金庫に保管しろ。(自宅なら耐火金庫。これで火事に遭っても情報は守られる。)
次点がスタンドアロンマシンに記録する方法。 ノート機に入力し、鍵のかかる机にでも入れるといい。
597 :
一から出直し :2008/07/17(木) 01:34:32 ID:nfCUoiJG
595さん 596さん お約束にお約束を重ねていただいてありがとうございました 僕は知っているこれを乗り越えて初めて答えがもらえることを。 594さんへ port80へ向かうパケットを許すみたいな記述が出来ると思っています。 何しろ取り組みだしてまだ3日ぐらいなので自信はありませんが じっくり取り組めるのは今週限り、何とかそれまでにその辺の答えに たどり着きたいと思っています
面倒だからiptables使ってない。 何でも来い。
zombieになってなきゃいいが
>>594 それはaccept(listen)する側ではなくてconnectする側だと思うが。
一般的でないアプリケーションとしてaccept(listen)する場合は、
あらかじめ取り決めをしておくだけ。
601 :
一から出直し :2008/07/17(木) 09:15:29 ID: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 結局これではだめなのでしょうか?
Ubuntu ならそれでもいいけど、Debian ではきびしい
>>601 どうしてもOUTPUTを潰したいならそうしても構わないけれど、いくら窓や裏口を
戸締りしたところで、良く見える正面玄関(TCP80番ポート)を開けっ放しにしてたら
台無しだよ。
で、80番での出口も閉じるのが現実的なコンピュータならそれでもいいだろうけれど、
そういう特殊用途なのかい?
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とか追加で。
>>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
>>602 ubuntuもdebianも一緒でしょ
デフォはiatables空だし
クライアント用途なら
>>173 のようなパーソナルファイアウォール的な
--cmd-owner でやるのが適しているんじゃないの?
608 :
login:Penguin :2008/07/17(木) 22:02:01 ID:nfCUoiJG
602 すいません。厳しいの意味がわかりません。 603 現在このマシンでサーバーを立てる予定はありません。 そうゆう意味でいいですか? つまり想定しているのはクライアント専用です。 そこからLinuxの世界に入れてもらおうと思っています。
>>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 :
一から出直し :2008/07/17(木) 23:10:07 ID:nfCUoiJG
607 そうなんですよ。そこもチェックしてたんですけど 効果的な使い道が浮かばなくて、、とほほです。 609 ありがとうございます。 勉強の雛形にさせてもらいます
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 きっと突っ込みどころ満載だろうけど、これを参考に自分は がんばってみる。
>>611 せっかくだからiptables -L -vしたら
ウチの環境(日本のみ許可、携帯のみ許可、etc...)で そんなことしたら表示が恐ろしいことに・・・ -n を付けようぜ!
614 :
611 :2008/07/25(金) 02:20:35 ID: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 :2008/07/31(木) 17:36:39 ID:XyjnsPYp
Debianでどのように設定していますか if-pre-upのどこにリンク張っていますか pre-upに置いたらまずいですか
/etc/network/if-pre-up.d/にスクリプト なんの話だ 別に
forwardチェインでログとってもMACアドレス記録されるようにしてほすぃ
618 :
login:Penguin :2008/08/11(月) 23:54:22 ID:TGzzuzuv
OSはCentOS5です ルータでは特定のIPからのポートスキャンをはじけないので、 IPテーブルの設定ではじきたいのですが、具体的なコマンドを教えてください ちなみに、まちBBSからのポートスキャンをはじかないと書き込みができないので、 まちBBSからのポートスキャンのみはじきたいです
サーバ管理してるなら、それくらいは自力で頑張ってみよう
>>23 >>24 24氏のアドバイスで、ppp0の全てのパケットは、192.168.0.10へ
DNAT(Destination NAT)されるようになったけど、それでよかった
んだよね。
>>31 で、31氏が書いているのは、iptablesが動いているマシンに
httpdや、smtp,pop3, DNSなどのサービスが動いてたら、
それらを除外せにゃならんよねという、話だと理解しました。
で、最後にDNATがチェインの最後で実行されればいいんですよね
↑2年半前にレスってどうよ?w
専ブラ使っているんでね、このスレ見つけて 最初から読んで、resってみたんだが、ダメかね。 というか、このスレ立ってから、そんなに経つのか よく落ちないな。
UNIX板のipfilterのスレなんて5年半で200レスくらい……
624 :
login:Penguin :2008/08/31(日) 23:21:06 ID:n+n8JTmC
国内プロキシ経由の海外からのアクセスは防ぎようはないのかな
国内プロキシを弾くしかないね。 逆に、ホワイトリストを作成し、登録したIP以外を全部弾いた方が楽だと思う。
626 :
login:Penguin :2008/09/02(火) 03:53:13 ID:U/dhSPhZ
うん。それもアリなんだね だけどサーバー目的じゃないんだ 攻撃者特定の為に国内限定にしようと思ったんだけど 踏み台からの攻撃もあるから努力のしようがないことに気がついた
webサーバの保護の話でないなら別に放っておけばいんでないの
サーバを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 :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
なんか一見合ってそうに見えるけどな…… カーネルはデフォルトのもの?エラーとか出ないで スクリプト実行できてるよね。
>>629 まずはチェインがどの順序で解釈されるものなのか知っておいたほうがいい。
POSTROUTINGはFORWARDやOUTPUTよりも後で実行されるので、
そこでMASQUERADEするのであればクライアントIPなどの判断はその後で
やらなきゃダメ。
632 :
628 :2008/09/13(土) 15:27:44 ID:W75dUOM6
レス、ありがとうございます。
>>630 カーネルは、Ubuntu 8.04 サーバー版で、特に手を加えていません。USBメモリに入れているくらいです。
スクリプトもエラーは出ていません。
>>631 なるほど、解釈される順番には気がつきませんでした。
早速試してみます!
クライアントから外部に向かうパケットがinput段階で叩き落とされないか?
ホントだ。-d が余計だな。
635 :
628 :2008/09/13(土) 21:32:24 ID:XplBrS+o
>> iptables -A FORWARD -i eth1 -o ppp0 -s $client_ip -j ACCEPT FORWARDチェインなんでエラーは出ないんだが、 -i と-o はどちらか一方でないと成立しないような気がする
>>635 iptables -nvL と iptables -nvL -t nat、各種ログはチェックした?
-s -d とか -i -o あたりが自分の使ってるルールに比べると ちと厳密だね。その辺外して後から変えていったら。
639 :
login:Penguin :2008/09/14(日) 11:34:18 ID:aDiVPCKf
http://fedorasrv.com/iptables.shtml のやり方で海外からのアクセスを弾いてるのですが
読めば読むほどよくわからなくなってきたので
質問させていただきます。
cidr.txt ・・・ cidr.txt.1 ・・・ cidr.txt.100 ・・・ cidr.txt.1056
と同じようなファイルがどんどん増えていきます(汗
消しても消しても増えるのですが新規にファイルを作成するのではなく
cidr.txt に上書きするようにすることはできないのでしょうか??
あと、(2)IPアドレスリスト更新チェック に
毎日自動でIPアドレスリストの更新有無をチェック
と書いてますが何時に更新するか設定はできないのでしょうか?
>>639 上書き
wgetを-Oで保存ファイル名指定
更新時刻
crontabで設定
641 :
628 :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
全部ACCEPTにしてもつながらないとかないのかね
>>642 いや、さすがに、それは無いでしょ?
先にルーティングできることを確認しなかったら何が悪いか判らないじゃない?
644 :
628 :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のままなのですが、これが正常なのでしょうか?
>>644 >
>>643 > そうですね。何がわからないのか分からない状態です。
まず、iptableを切って、クライアントから外界が見れることを確認してください。
その状態から、徐々に絞っていく方が楽でしょう。(なお、クライアントの防備は厚めに。)
646 :
628 :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
に、したくらいです。
# ちら裏終わり
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
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 ではダメなようなのですが どうしたら受け取れますかね?
>>650 と言われても何とも言えん。ルールを出せ。
>>651 そのWebページとやらはどこにあるんだよ。
構成を出せ。
653 :
login:Penguin :2008/10/05(日) 11:41:14 ID:Fghhu9nw
おまえら、netstat-natの出力みたことありますか。 なかなか楽しいが、見た内容を人にしゃべっちゃだめだぞ。
NATを使わない単なるルーターだが、port制限行うタイプの設定が まったくわかりません。 (LAN1) -eth0[Linux Box]eth1- (LAN2) ・LAN1からLAN2へのpingは許可 ・LAN2からLAN1への pingも許可 ・LAN1からLAN2へのsshは許可 ・上記以外の接続は全て不可 ぐぐるとNATばかりでてきます。NATもpppoeも関係なのです。 あーん、誰か助けてくらはい。
>>654 誤)ぐぐるとNATばかりでてきます。NATもpppoeも関係なのです。
正)ぐぐるとNATばかりでてきます。NATもpppoeも関係ないのです。
間違えちゃったorz
>>654 間違え&連投すいません。
ルーターとして[Linux Box]は動いています。ずぼずぼ通信できてしまいます。
制限ができないのです。
連投すいません。
>>654 普通にFORWARDチェインに対してACCEPTとDROPのルールを作ればいい。
-t natとかは不要。
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)
iptables -L -v と iptables -t nat -L -v を晒せ
ICMPなpingは行き帰り両方をきちんと定義しないと駄目じゃないか?
>>658 TCPだってping (ICMP echo)だって行き帰りのパケットがあるだろうに。
ネットワークの基礎を勉強し直せ。
TCPはステート情報を使うようにすれば、片方向の定義だけでいいけどね。 (FTPとか特殊なプロトコルをのぞく)
RELATED,ESTABLISHEDは超重要
>>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
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だとチェックボックスひとつで 共有できるしなあとか思ってはみるものの具体策がわかりません おしえてください
pc1 は ip_forward してますか?
ごめん、pc0 は ip_forward してますか?
>>670 /proc/sys/net/ipv4/ip_forward
に1とあり大丈夫なようです
>>668 というか「ルータ」に192.168.1.0/24のスタティックルートを設定できないのか?
前提としてルーター(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)経由で繋がるのか?
restartしてないだけというエスパー予想。
675 :
667 :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 :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 :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 :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 :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 :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
>>680 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
これは余計じゃないかな。
>>668 それとip_conntrack モジュールはロードしている
682 :
667 :2008/11/09(日) 07:45:30 ID:cyMfQhQp
>>681 余計かなぁ…?
ルーターとPC1が別のアドレス空間になっているから
PC0用のアドレスに書き換えてやらないとパケット戻ってこない気がするけど
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 :2008/11/09(日) 14:02:18 ID:MyRkucom
なーるー 原因不明だな 全部のiptablesオプションに --modprobe=/sbin/modprobe 付け足して 呼んでみるとかやってみるべきかもね それでもダメなら pc0 に pc1 から ping して応答が帰ってくるかどうか ぐらいのレベルから検証してみたほうがよさそうだね。
eth0を物理1つのエイリアス2に区切りました。 eth0 192.168.0.10 eth0:0 192.168.0.11 eth0:1 192.168.0.12 .0.10にだけtelnetが繋がるようにするには どうすればいいのでしょうか?
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設定すれば? 絞るなら大本から絞れ
>>687 こういうのって(iptablesとデーモンの)両方やらないか?
ポートを開けないようにアプリ(telnet)側でやり、 さらにうっかり開かないようにiptablesで縛るね。 片方だけだと「うっかり」が結構出るけど、両方とも独立に 設定するならオペミスで開いてしまう事故は非常に起こりにくくなる。
690 :
login:Penguin :2008/11/15(土) 01:42:42 ID:Zo/JTpVo
ssh+鍵暗号 でいいやん telnet 殺しちゃいなよ
ここでの telnet はあくまで例なんじゃないの?
それやるとミスもあるんだよな。wrapperではじいてるから 後でFW設定しようとか思ってたら一台だけ設定してなかった、とか。
後でやろうと思ったとか、ちゃんと手順にそってやったことを確認しながらやらないのは問題外 ヒューマンエラーを防止するために手順メモとチェックリストは個人的にでも作ったほうがいい。 まあ、より強固で確かな方から設定していった方が漏れがあった時被害が少ないかもな…。
実際はもうちょっと複雑な過程ではまるんだが、ちと面倒だったんで…… あとはAの方ではじいてると思ってそっちのルール更新してたらBだった、とか。
ubuntuのufwで出力されるiptablesのルールって誰か分かりますか? あれってデスクトップ用に最適化されているんですかね?
696 :
login:Penguin :2008/11/18(火) 00:24:59 ID:jDfQIBNa
2.4 系だと MANGLE に TCPMSS 張れないから FORWARD と OUTPUT に張っているけど MANGLE に張る場合となにが違うのかよくわからん
>>695 設定してシェルから
iptables -L -v
してみれば良いのでは?
ていうかして、参考にしたいから。
自分はknoppix firewallと同じルールにしているけど、ubuntuのやつも
見てみたい。
>>697 いや、自分も手元にubuntu環境ないから見てみたいのですよ
あ、ubuntuライブCDが手元にあったわ ufw enable して iptables -L -v 見てみる
700 :
544 :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 :2008/11/24(月) 21:56:04 ID:qB2Gxz8P
追加です。 ping 66.249.89.99 -I eth0 とかすると、ソースアドレスはeth0のアドレスになってて問題なくpingは通ります。
・IPv4 ・マルチホームホスト ・デフォルトゲートウェイ2つ ・ポリシールーティングなし が条件かな? この場合、 ・ルーティングエントリは、送出先インターフェースに関連づけられる。 ・IPアドレスは、インターフェースに関連づけられる(が、他のインターフェース経由で送出されても良い) ・IPアドレスとルーティングエントリを直接関連づける機構がない。 ・2つのデフォルトゲートウェイのうちどちらが使われるかは、メトリックによって決まる。値が同じなら平等。 みたいなかんじ。 IPアドレスと同じサブネットにいるゲートウェイが必ず使われるという保証はない、と言う状況になると思う。 解決策は、今のようにSNATをかけるか、ポリシールーティングで厳密にルーティングを指定するか、だと思うが。
>>702 レスサンクスです
ポリシールーティングなのかわからないんだけど
>>544 にあるように、UIDによってルーティングテーブルを分けてます。
mainテーブルはeth1がデフォルトになってて、
一部のユーザーはテーブル2を見て、eth0に振られます。
>>700 の現象が起きるのはそのユーザーのみです。後出しですいません。
tcpdump見てると、domainのみeth1のアドレスでまず送って、その後eth0のアドレスで送ってます。
>>544 で言ってた遅さの原因は最初のDNS問い合わせがタイムアウトしてるからのようです。
>・IPアドレスは、インターフェースに関連づけられる(が、他のインターフェース経由で送出されても良い)
ここを厳密にインターフェースに関連付けられればいいんですけど、SNATしかないんでしょうか?
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 :2008/11/25(火) 19:15:43 ID:+bzr+l5D
自分でも混乱してきたのでまとめ
table2を見てる特別ユーザーの場合
>>704 の状態
ソースアドレスがeth1のアドレスになってしまって通信不可
>>704 に加えてSNAT
基本的にソースアドレスはSNATで指定したアドレスになり通信できるが
DNSのみeth1のアドレスで問い合わせ後、SNAT指定のアドレスで問い合わせるので遅くなる。
>>666 亀ですんません
-i $INTIF取ってもダメでした
結局、-s ! $OREIPで凌いでます
今さっき、単純なポリシールーティング(fwmark未使用)なら動いたけど・・・・ なんか、自分のよりずいぶんややこしいことやってるな
708 :
700 :2008/12/26(金) 18:06:08 ID:ltPqHwfd
やりたいことは単純で、ユーザー毎に使うネットワークを分けたいだけなんですけどね。 宛先のみでは分けれないので静的なルーティングでは実現できず、fwmark使うしか思いつかなかったんです。
既に理解しているようならスルーしてくれ。 まず、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 :2008/12/27(土) 00:58:36 ID:jUvzXagD
自分でsocketから書けばbindでIPアドレス指定することで
ルーティングで小細工しなくてもNICを使い分けれるんですね。知らなかった。
でもwgetとか普通のクライアントアプリならbindとか呼ばず、いきなりconnectじゃないですか?
そういう場合ってどうやってソースアドレス決定するんでしょう?
ルーティングテーブルでローカルネットワーク使うように設定しても(
>>704 のtable2)
ソースアドレスがグローバルIPになっちゃうんですよね。
##完全にiptablesの話じゃないな
#たしかに。板違いかも。
いや、ポリシールーティングの設定はいる。
けど、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}
http://hogehoge ではgw1
wget --bind-address=${ip2}
http://hogehoge ではgw2
wget
http://hogehoge ではmainテーブルで指定したgw
に向かってパケットが投げられる
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テーブル相当の内容を入れておくことが推奨される)
スレ違いになるけどIP配布するときにゲートウェイをMACアドレスの グループごとに変えるとかじゃ、だめなのかな。セキュリティの問題で 分けてるんだとすると、だめだが……
714 :
700 :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と同じルーティングになってしまいませんか?
スルー推奨
>>716 これは 韓国ネチズンvs 2ちゃんねらー のせいじゃないかな。でないと偏りが大きすぎるw
迷惑な話だ(笑 vipper専用の回線でも引いてそこでやってほしい
719 :
login:Penguin :2009/01/16(金) 22:24:37 ID:Qy3jFgAJ
DebianでfirestarterのGUIを最小化自動起動させている方いらっしゃいませんか?
http://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
>>719 usernameのところをちゃんと自分のユーザー名にした?
firestarterの場所はちゃんと合ってる?
端末でsudoとかsuとかせずにfirestarterと打って起動出来る?
721 :
719 :2009/01/17(土) 16:22:18 ID:98qqdXhI
>>720 usernameは自分のユーザー名にしました
firestarterの場所は/usr/sbin/firestarterにしました
sudoとかsuせずに起動できません
>>721 ごめん間違った。
sudo firestarterでパスワード要求されずに起動できる?
セッションにはsudo firestarterで登録ね。
723 :
719 :2009/01/17(土) 18:36:18 ID:98qqdXhI
>>722 セッションへの登録の仕方が間違ってました
自動起動時の最小化はできませんでしたが、通常モードで起動することはできました
本当にありがとう
724 :
719 :2009/01/17(土) 19:05:29 ID:98qqdXhI
>>722 --start-hidden
↑を付加して最小化もできました…orz
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
適当なこというけど hashlimit は?
>>726 というかbindのACLで不正な問い合わせには応答しなきゃいいじゃないか。
仮にiptablesでやったとしてもパケットがやってきてしまうことは
どうしても防げないわけだし。
bindのDDoSはどんどんひどくなってるみたいね。 とりあえずはbindのほうをいじったほうが、確かに早いかも分からん。 スレ的にはiptableで簡潔ないい記述ができればいんだが。
731 :
726 :2009/01/31(土) 16:55:12 ID:CmZY/+bL
BINDは対策済なんだけど、これだけでは偽装された発信元IPアドレスに(短い)パケットを返してしまう。 iptablesで叩き落とせばこのバックスキャッタリングを防げる。 上手い方法ないかなあ。
blackholeとかメンテナンスするのいやだからなぁ。 ルールベースで切りたいな確かに。
しかしひどいね。blasterが流行ったときみたいだな。
BINDは設計がおかしいから、もうどうにもならん
だれか海外サイトから設定をかっぱらって来るんだ
u32モジュールってなんだ!? こんなの初めて見た
俺も初めて使った。最近のkernel/iptablesじゃないとダメみたいね。 あと at ってなってるところは@に置換ね。
ただこれ、すごい単純なマッチングだからアタックの問い合わせにいろんなのが 出てきたら、ダメだな。よく見てるとランダムな文字列のDDoSもあるから、そういうのには 上の人みたいに時系列で追うルールじゃないと対応できない、たぶん。
うちには「.」だけじゃなく「se」の攻撃も来てる。
741 :
login:Penguin :2009/02/02(月) 17:41:07 ID:pp7sQ9oB
>>728 hashlimitはudpで使えるの?
recentの場合は一度hitcountに達すれば攻撃が続く限り全部DROPできる。 これに対してhashlimitの場合は攻撃が続いている間、攻撃の一部を受け入れてしまう。 という理解で正しい?
UDPの場合はipアドレス偽装しても困らないんだから hashlimitは全く役に立たないと思うんだが。
>>743 TCPもSYNに限ってはアドレスを偽装できるので、
アドレス偽装対策としての確実性を求めるべきではない罠。
745 :
login:Penguin :2009/02/05(木) 12:05:09 ID:HWvjHGlG
namedのログを見ると、実際には同じ発信元IPアドレスが繰り返し使われている。 何故かというと、namedは攻撃の踏台に使われているだけだから。 本当の攻撃対象のIPアドレスを発信元に偽装して、世界中のnamedに問い合わせをバラまく。 namedの応答を悪用することで攻撃のトラヒックを何倍にも増幅することができるから。
結局あれをやってる連中の意図はそういうことなのかな。 となるとやっぱり律儀に返事を返すのは、どうしても 連中の思ったとおりのことをやってしまうことになるね。 あまり本来の設計にない動作はさせたくないが、しょうがないなこれは。
DRDoSを調べようとしてもDR-DOSばかりヒットするのは困ったものだな・・
直接iptablesというわけではないのですが質問です。 ある特定のISPユーザにしかサービスを許可したくない場合等 ドメイン名で制限を書けたい場合にはどのようにするのが一般的でしょうか? (IPアドレス帯域を公開していたりTCP Wrappersが対応していればカンタンなのですが)
安易な対策としてzone "."にallow-query { 127.0.0.1; };を書き加えてみたけど、拒否されますた。orz Feb 6 12:25:21 ***** named[26734]: loading configuration from '/etc/named.conf' Feb 6 12:25:21 ***** named[26734]: /etc/named.conf:23: option 'allow-query' is not allowed in 'hint' zone '.' Feb 6 12:25:21 ***** named[26734]: loading configuration: failure Feb 6 12:25:21 ***** named[26734]: exiting (due to fatal error)
optionsに127.0.0.1とローカルのIPだけ許可する設定を書けばいいよ。 公開してるゾーンだけanyに許可。
>>749 DNSでアドレスから名前を逆引きして判別 (さらにsecureにしたい場合は、
確認できたホスト名をアドレスに再変換してチェック) とか。
753 :
login:Penguin :2009/02/13(金) 16:23:01 ID:e2K4rCg5
BIND 9.4からnamed.confの仕様が変更になっていたのね。 allow-queryが効かなくてハマった…。
省略せずに、ちゃんと明記すればいいんだっけか google様でわからなかったら苦労しそうなパターンだよなぁ
MythwebでwebからTVの録画や視聴をしようと思い、念のため外からの接続はSSL経由で クライアント認証にしてみました。 そしたら、 1、Mythwebから録画設定等の画面は開ける(httpsでリンクやsubmitできている) 2、Mythwebから録画した映像を見ようとするとサーバに接続できない(リンク先のプロトコルがhttpになっている) と言う結果になりました。 iptablesで httpsで接続できているマシンから、httpで要求があった場合はhttpを通す。 ただし、httpsで接続していないマシンからhttpの要求があった場合はブロックする。 と言ったような都合のいいブロック方法って何かありますか? ちなみにMythwebはLAN内ではhttpで普通に使えています。
>>755 iptablesで必要なポートを開けるためのスクリプト(setuidフラグ付き)を作り、
それを呼び出すためのcgiを作ってhttpsからアクセスさせればいいのでは。
もちろんセキュリティホールにならないようきちんとチェックする必要があるが。
>>756 あ〜、なるほど。
そういう手もありますか。
でもftp何かでもコマンド用のポートとデータ用のポートが違っても大丈夫な様に、
httpでも同じような仕組みができないかと思ったんですが、難しいんですかね〜?
ftpは追跡用の専用モジュールあるでしょ(ip_conntrack_ftp) http対応させるならhttp用のモジュールが無いと無理。 そもそもL7だからiptablesの仕事じゃないと思うが。 一応l7-filterってのもあるけど、それでうまくいくかどうかは知らない。
あー、内部のftp鯖用だとip_nat_ftpだっけ、まあどっちでもいいや・・・
あまりニーズがなさそうだからねぇ。ftpのようなトリックは自分でやらんと。 そういうことをやる汎用のルールはないか、という意味の質問なんだろうけども。
>>758 >>759 >>760 レスありがとうございます。
言われてみればftpは専用モジュールがありましたね・・・。
実際にはやはり、sslでログインなどの認証かまして、そのIPに対してhttpを開放するルールを
作るのが正解っぽいですね。
あるいは、リバースプロクシか何かで強制的にポートを入れ替えてしまうとかですかね?
ありがとうございました!
>>761 今更だが、sshでトンネルを掘る(簡易VPN)っちゃダメなのか?
公開鍵認証のみ受け付ける設定にすれば安全性はクライアント認証と変わらない。
(つ〜か、下手にスクリプト組むとセキュリティの確認が面倒)
ポート80には、韓国・中国・香港・台湾(.tw)などの国を拒否しつつ ポート8080では、日本からのIPのみを許可する方法教えてください。 いろんなサイト見てると意味不明になってきましたorz
方法っつーか地道にリスト作るしかないでしょ。 そんな需要あまりないから自分で。
>>764 あるんだな
>>763 web上探せばスクリプトも公開されてるよ
2chでスレッドが立ったこともある
外部公開したいくらいなら自分で探してみ
5つくらいのリストファイルDLしてgrepするだけでいけるはず。
767 :
764 :2009/03/16(月) 04:12:07 ID:IPdPlwrs
APNICかなんかの情報でそれできるかね? 最近は再割り当て頻繁だから、古い情報をもとにやると 本来はじくべきでない人をはじいたりしそうだなー。 メンテナンス自動化しないと、やはりその問題が起きるから かなり手間かかると思うが、それをやるスクリプトってことかね? クラッカーは迂回路から入ろうとしたりするわけだから、あまり 意味がないと思うけど……
>>767 金魚みたいに口パクパク開けてねえで調べろって
769 :
764 :2009/03/16(月) 09:16:14 ID:IPdPlwrs
俺に言うなよ(笑 ちゃんとレス番見れ。
じゃあ俺はちゃんとレス番を見てお前に言っちゃおうかな?
>>764 金魚みたいに口パクパク開けてねえで調べろって
ちょっとググったらその手のスクリプトの内容も分かるぞ。
DLしてgrepが基本だからそんなに手間もかからないし面倒くさくもないけどな。
ちなみにBOTを弾くのにも有効な手段。ポートを変えてても総当たりで試そうとするタイプもいるから困る。
771 :
764 :2009/03/17(火) 01:08:26 ID:OQn5xYfP
いや俺は質問者じゃないって。スクリプトがあるとかないとか、関心なし。 つか質問者どこいった?(笑
772 :
764 :2009/03/17(火) 01:14:57 ID:OQn5xYfP
あと、BOTをそんなIPベースでちまちま羅列する方法ではじけてる、 なんてのはDDoSの意味が分かってないとしか。 アドレスブロックなんていまてんでバラバラにクラスレスであっちこっちに 再割り当てしまくってる上に、BOTなんて二重三重に国を経由して来る。 自分でやってることと現実が一致してないのに悦に入ってるだけ、の 可能性もあるかと。
調べて自分の目で確かめるのが一番だと思うよ 逆に興味がないなら調べる必要ないし
てんでバラバラにクラスレスにあっちこっちを塞ぐスクリプトなんだよな。 国別iptables。 なんか美しくないし自分とこでは必要なさそうなので使ってないけど。
攻撃元IPアドレスの分析とかやってないんだろうな 攻撃元のうち、日本以外の物が9割以上 日本が発信元のうち、某激安ホスティングプロパイダと学校系で約5割 これらを拒否するだけで95%以上は対策できる。 あと、固定IPと動的IPで、攻撃される量がかなり違う。 進入成功して踏み台にするにも、IPアドレス変わったら使い物にならないし 42億近いIPを全スキャンすると途方もない時間がかかる。 結局、効率的にやる必要があるので、固定IPだとわかっているブロックが狙われやすい。 hosts.allow/denyに.jpと書く方法もあるけど、DNSの逆引きに時間がかかるため、 結果として自分でDoSを起こしてしまう可能性が出てくる。 apnic/jpnicのデータベースからスクリプトで変換してiptablesで入れておく方が現実的かと。
こうしてインターネットは国ごとに分割され使いにくいものとなったのであった
777 :
764 :2009/03/17(火) 16:43:59 ID:OQn5xYfP
俺もadhocな感じがするし完全にはできないから、まして人が作った スクリプトで自分の管理するマシンに到達不可能なIPをじゃんじゃか 機械的に生産するとか、とてもやろうとは思わないわ。 それこそ趣味でやってんなら別だが、他人にサービスする用途だったら 知識ある人ならやらんでしょ。需要ないって書いたのはそういう意味で。 ちなみにBOT感染してるPCの数は日本はそれなりに多かった気がする。 どこだったかで統計みたけど。自宅の通信環境が良いので自宅でサーバを 動かしてる人が多いからじゃないか、とか分析してたな。
apnic/jpnicのデータっても即時更新されるわけじゃないからね。
>>775 >攻撃元のうち、日本以外の物が9割以上
かなり有効な対策なんだな
>apnic/jpnicのデータベースからスクリプトで変換してiptablesで入れておく方が現実的かと。
そういうツールの話だろ?
780 :
764 :2009/03/17(火) 22:51:02 ID:OQn5xYfP
それはさぁ、インターネット全体を把握することが誰でも簡単にできますよ、という
あまり現実的じゃない話かと。
>>779 がむしろそういうことができると言うことで何かメリットのあることを
やってて、そのレベルで、できる、かといえばできる、わな。
つかその攻撃元がうんぬんってのも分散攻撃とは何か、が分かってない
統計かと。実際iptablesのログ見てても最近のDNS DDoSなんか
まぁよくこんないろんな国から来るな、という感じでしょ。
そういう方法しか思いつかない人がいるなら、 より良い方法があると思うならアドバイスをしてやれば良かろうに。 と思った。 俺?対策はしてないな。興味はあるけど。 >iptablesを使って素敵なファイアウォールとか、 >快速ルータを作ったりするために、 >情報を出し合うスレ
782 :
764 :2009/03/18(水) 01:42:02 ID:jphinfD+
というかないよ。むしろAPNICがそのプログラムくれって感じだろ(笑
無いなら黙ってればいいんじゃね? JP以外弾きたいと言う人がいて、(若干非効率ながらも)弾く方法があるというのに それを需要が無いだの、メリットがどうだのこうだの。 >764に他人のサーバ環境を心配される必要も筋合いもないんだぜ? セキュアのセの時も知らない奴ならともかく。
APNICのリストみたって、日本のIPの全部は分からないんじゃないの? 一部の大学や海外系ISPとか、あとネットワーク系企業とか、 結構重要なのが漏れてる気がするんだけど。
5年くらい前に調べたときは中国・韓国からのアタックが90%以上占めてた。 アドレスレンジのリスト作ってiptablesで弾くだけでかなり効果あった。 最近は東欧や南米からのアタックが増えている希ガス。(ちゃんと統計とってないけど)
>>784 どっちにしろ100%は無理なのは分かってるけど
その辺りのIPアドレスはどこかにリスト化されてないのかな?
788 :
764 :2009/03/19(木) 04:18:08 ID:LfNCeRW7
>>783 非効率というか、DBはたしかにAPNICが公開しているが、それを
じゃあcronか何かで毎回持ってきてgrepしてリスト作るの?
それみんながやり始めたら単なる迷惑行為かと。
しかも現状とは完全には一致してないから、 JP以外は排除なんて
ことは本当にちゃんとやろうと思ったら不可能。むしろJPなのに
アクセスできない人が出てくる。
一応趣味だろうがなんだろうが、サーバ管理者でネットのオペレータの
端くれなんだから、はじくべきでないものをはじいいてしまうルールというのが
いかにダメか、って分かると思うんだけどね。
>はじくべきでないものをはじいいてしまうルールというのが >いかにダメか、って分かると思うんだけどね。 最所っから >そんな需要あまりないから自分で。 と言ってる人にはそうなんだろうな >それみんながやり始めたら単なる迷惑行為かと。 なんのために情報公開してるんだか 2chにアクセスするの止めたら?
790 :
764 :2009/03/19(木) 07:28:16 ID:LfNCeRW7
iptablesのラインというか、地理情報をIPと完全にマッピングする方法は あるのかないのか?って話になるよね。それはやろうとしても不完全になる。 ちなみにJPNICの活動理念から引用するけど、 JPNICはインターネットの円滑な運用のために各種の活動を通じてその基盤を支え、 豊かで安定したインターネット社会の実現を目指します。 できもしないことのために彼らのDBに四六時中アクセスするってのは、 俺にはできんなぁ。 スパム排除ならもっと他にいいフィルタ方法が沢山あるし、DDoSは 論理やパターンではじかなきゃ、BOTNETを利用してる連中はふせげないよ。 需要、ないでしょ? ちなみにできることであれば俺はいくつかラインはここに書いた。 できないのに、できるよバーカ、みたいなことを言うのがいたけど、 それは自分でやるのは勝手だが、ここの住人の見解ではないというだけ。
自分の見解がスレの見解だとも? フィルタリングされて困る人 1 apnic等に登録されていないアドレス帯を使ってる人 2 クラッキング等が困難になる、ヒット率が下がる、BOTNET使ってる人 3 高額なハードを売りつけれなくなる人 SPIに言及してるから3かな
IPアドレスで弾くのは本質的な対策になってないよな ちゃんとサーバのセキュリティ対策をやっておけばそんなことする必要ない 海外に行ったら見られなくなったりするコンテンツとか正直ありえんよ 俺は出張でよく海外行くからねえ
ここはiptablesのスレだから、IPアドレスで判断するのは基本。 それはしょうがない。
ここはなんでもかんでもiptablesでやろうとするスレです。 アプリケーション層でやれとかいう人はお引き取りください。
796 :
764 :2009/03/20(金) 02:20:35 ID:fkbrMgVo
>>791 では俺が書いてることで技術的に間違ってる点をあげてみてくれ。
困るとか困らないとかじゃなくて。ちなみに一ユーザですよ。
簡単にできるからgoogleで調べろ、ってのがじゃあこのスレの意見って
ことでいいの?(笑 どこぞのアングラサイトのハッカー気取りの
個人掲示板ならそれでいいだろうが。
>>793 んなこたーない。最近DDoS対策で一番助かったのはパターン
ベースのラインだし。プライベートIPがソースでグローバルから
入ってくるとか、そういう不正パケットは確かにIPベースではじいてるが、
これはプライベートIPの定義がはっきり決まってるからできることだわな。
>>792 ここlinux板だろ?
どうして、自宅経由でアクセスするとか考えないんだ?
32022とか、一時使用のポートに見せかけてsshd開いておいて
XForwardをsshの中通すようにでもすればいいだろ
そもそも、海外ってのが中国だったら、普通の方法じゃ見れないとも思うが
798 :
764 :2009/03/20(金) 13:16:17 ID:4kmKdqy9
国別での対策なんてされたら俺の同胞が困るだろ
799 :
764 :2009/03/20(金) 17:02:44 ID:fkbrMgVo
>>798 みたいないう嫌○厨みたいのがここ見てわけわかんないけど好都合だからっつって
APNICにガンガンアクセスするスクリプトを繰り返し動かすとか、迷惑行為だなぁ、やっぱり。
この話題はもうiptablesのライン出てくることないから、まだ続けるなら、通技板にでも持っていこう。
800 :
764 :2009/03/20(金) 17:12:40 ID:Wj9gyTsE
自演かもしれないけどな トリップを付けていないから本人の判別なんて出来ないからなあ
801 :
764 :2009/03/20(金) 17:20:35 ID:fkbrMgVo
といいながらハンドルマネすんのやめてくれ(笑 レス番付けるのは 読むほうの利便性を考えてやってることなんだからさ……
803 :
764 :2009/03/21(土) 02:53:34 ID:+9fyatks
特定の国からアクセスされたくないというのなら その対策を取るのは情報を発信する側の自由だろう そういうニーズの存在を否定することはできないし 対策する手段があるということは喜ばしいことでもある
iptables側はそのニーズを汲み取ってはいないけどね。
805 :
764 :2009/03/25(水) 17:04:48 ID:FXSCQYzx
ググれカスもいいけど、アドレスぐらいケチケチせずに貼っちゃえよ
ttp://www.42ch.net/~shutoff/ 俺はこんな感じのスクリプトでやってる
#!/bin/sh
DROPCOUNTRY="KR,CN,KP,HK,ID,IN,MX,RU,TW,PL,TH,AU,PH,UA,PE,IT,CA,CZ,NL,TR,BR"
wget -O delegated-apnic-latest
ftp://ftp.apnic.net/pub/apnic/stats/apnic/delegated-apnic-latest wget -O delegated-ripencc-latest
ftp://ftp.apnic.net/pub/stats/ripe-ncc/delegated-ripencc-latest wget -O delegated-afrinic-latest
ftp://ftp.apnic.net/pub/stats/afrinic/delegated-afrinic-latest wget -O delegated-arin-latest
ftp://ftp.apnic.net/pub/stats/arin/delegated-arin-latest wget -O delegated-lacnic-latest
ftp://ftp.apnic.net/pub/stats/lacnic/delegated-lacnic-latest perl countryfilter.pl iptables $DROPCOUNTRY < delegated-apnic-latest > filter-apnic.sh
perl countryfilter.pl iptables $DROPCOUNTRY < delegated-ripencc-latest > filter-ripencc.sh
perl countryfilter.pl iptables $DROPCOUNTRY < delegated-afrinic-latest > filter-afrinic.sh
perl countryfilter.pl iptables $DROPCOUNTRY < delegated-arin-latest > filter-arin.sh
perl countryfilter.pl iptables $DROPCOUNTRY < delegated-lacnic-latest > filter-lacnic.sh
sh iptable.sh
sh filter-apnic.sh
sh filter-ripencc.sh
sh filter-afrinic.sh
sh filter-arin.sh
sh filter-lacnic.sh
/etc/rc.d/init.d/iptables save
意味が分からないで使うやつがでてくるから貼るなとはいわんが 解説くらい付けたら。ローカルだけの処理じゃないんだし。
807 :
764 :2009/03/26(木) 11:30:02 ID:P+axV9ZV
808 :
764 :2009/03/26(木) 14:30:18 ID:9PJCe/57
>>806 素直にわからないから教えてくださいって言えば?
意味もわからず2chに貼られたスクリプト実行するって・・・
809 :
764 :2009/03/26(木) 23:31:41 ID:qS6lSxTJ
>>806 解説はURL参照。つーか、説明しなきゃならんほど複雑なスクリプトか?
これ見てわからん奴は使わなくていいんじゃ
わからないものは使わないまともな人間ばっかならいいんだけど。
812 :
764 :2009/03/27(金) 07:02:52 ID:BIb02kCF
またニセモノが(笑 人様を罵倒してる764は全部ニセモノだから。
>>811 そういうことですね。
クラックやら不正アクセスやらを防ぐためにAPNICに迷惑かける
なんて本末転倒だね。互助精神とかないのかな……
813 :
764 :2009/03/27(金) 16:00:52 ID:w8VvGftF
>>812 > クラックやら不正アクセスやらを防ぐためにAPNICに迷惑かける
805のスクリプトだけじゃ糞の役にも立たないよ
APNICに迷惑かけるってどのあたりが迷惑かけるになるの?
cronで毎秒廻したりするの?
> 互助精神とかないのかな……
こゆこと抜かす奴に限って何もしないよな
そー思うならお前が解説書けばいいじゃん
>>813 >cronで毎秒廻したりするの?
わからないまま使ったらそういうやつもいるかもな。
ここは背中がむずかゆくなるスレですね
816 :
764 :2009/03/27(金) 20:05:39 ID:7FYXgDlE
サーバに迷惑かけるから2ちゃんにアクセスしない方かいい
アクセスしないとサーバの費用がでないから、もっとサーバに迷惑かけるわけだが。
818 :
764 :2009/03/27(金) 20:24:01 ID:qj7O0Z/e
>>813 そいつは文句たれるだけで何もできない
聞いても無駄
819 :
764 :2009/03/27(金) 22:14:34 ID:ZxCHJ1ME
iptable.shの中身さらしたら添削してくれる人居る? なんだかんだ言いながら俺も全ては理解してないんだよね また解説付けろとか言われちゃう?
820 :
764 :2009/03/28(土) 05:03:47 ID:DxUAu1AT
>>814 そのうえ、これ実行するようになってから日本のプロバイダを使ってる
知人がアクセスできなくなったんですけど?とか質問するとか……
>>815 1000行くまでこんなかもなー。 ちなみに私はIP基本的に変えませんので
一日にころころID変えてる764はニセモノですね。
これはひどい
こいつ面白すぎる
823 :
764 :2009/03/28(土) 09:27:10 ID:/RF47Jyw
764の人気に嫉妬 >> 820 > 知人がアクセスできなくなったんですけど? 805のスクリプトでどうやるとアクセス出来なくなるんだよ > 一日にころころID変えてる764はニセモノですね。 俺は固定IPだから変えようがない訳だが何か トリぐらい付けりゃいいじゃん
824 :
764 :2009/03/28(土) 10:14:55 ID:DxUAu1AT
トリップなんてつけてもこういう子は別のトリつけて 俺の方がホンモノとか言い出すだけだから意味ないよ。 適当に察してください。 あとはもう全部ハンドル764にするか?(笑
825 :
764 :2009/03/28(土) 12:07:00 ID:KJQ281R1
826 :
764 :2009/03/28(土) 12:40:04 ID:jEiFNbB8
>>825 APNICに迷惑かけるとか言い出す奴がいるから
ものの例えででてきたんだろ
>>825 sleepすりゃいいだろ?お前も↓の口だなw
>>cronで毎秒廻したりするの?
>
>わからないまま使ったらそういうやつもいるかもな。
828 :
764 :2009/03/28(土) 19:54:28 ID:KJQ281R1
わからないままだったらそんな手の込んだことしないだろう。 どーでもいいけどな。
829 :
764 :2009/03/29(日) 04:55:48 ID:8+6d9q3n
普通はNICの一覧をwgetしまくるってところで引くと思うんだが、 そうでない人は頻繁にやらないと情報が古くなるぜー、という話だけ聞いて まじでちょこっとsleepするだけでまわすとかやりかねんよ。 ちなみにftp.apnic.netのワーニングに NOTE: All transactions with this server are logged. If you do not like this, disconnect now! とあるな。
830 :
764 :2009/03/29(日) 05:36:47 ID:HI0WBZq3
ログ取られて困らない人にはどうでもいい話しだ
831 :
764 :2009/03/29(日) 05:51:37 ID:8+6d9q3n
たぶん同じIPから頻繁に同じファイルをwgetし続けたら DoS候補者リスト入りすることになると思うけど(笑
832 :
764 :2009/03/29(日) 06:20:59 ID:FAWRu8u/
latestを数個(しかも一日に一回)ダウンロードさたらDoSw
833 :
764 :2009/03/29(日) 06:42:51 ID:8+6d9q3n
一日一回にしろ、とは誰も書いてないなー。 あとはAPNICは各国からオペレータ手弁当で出して運用してるわけで 個人サーバから毎日wgetしてDROPさせるなんて目的のために 情報提供してるわけじゃないな。 別に誰がどうなろうと、関係ないから自由だけど、俺はSPAMや アタック対策でそんなことはようやらん。 人が聞いてきたらお勧めしない。
834 :
764 :2009/03/29(日) 08:09:47 ID:HyR7zle7
お前がやらなきゃいだけ いちいちケチつけんなよ
835 :
764 :2009/03/29(日) 08:15:46 ID:8+6d9q3n
だから最初から、やりたい人は自分で勝手にやれば?と言っているわけだ。
だから最初から、やりたい人は自分で勝手にやれば?と言っているわけだ。
キリッ
>>788
837 :
764 :2009/03/29(日) 15:19:27 ID:6W86XuY3
なんでこいつ1000まで予約してんだかw
839 :
764 :2009/03/30(月) 00:33:50 ID:SqiVwqBX
840 :
764 :2009/03/30(月) 00:37:07 ID:SqiVwqBX
>apnic.netだけじゃなくすりゃいいじゃねぇか 五倍の更新頻度にしたら意味ないよ。
842 :
764 :2009/03/30(月) 21:11:08 ID:F6k1EnFr
eth0, eth1, eth2の3つを付けてるサーバを持ってて, WAN - Router - eth0 - eth1 - client - eth2 - client という構成で,eth1,2をスイッチングHUBと同じように動作させることは iptablesだけではできないのでしょうか? bridgeモジュール必須?
eth2の位置がおかしくなった…eth0,1,2は1台のサーバに積んでます
>>843 iptabelsはMACアドレスによって許可、拒否をする以外はL3-4に作用する。
スイッチングHUBは、ポート間をブリッジしたネットワーク機器を指す。
>>843 IPv4ならProxyARPすればOK。
>>843 マスカレードして eth1 と eth2 の間のクライアントアドレスに置き換えて
ROUTER からパケットが戻ってくるようにはできるけど、eth2 端のクライアント
アドレスを ROUTER に認識させるのは無理があるんじゃないのか?
>>848 OKだけど、それ簡単じゃないだろ。
無駄に複雑。
>>849 どもです。
[root@centos ~]# vi iptables.sh ← ファイアウォール設定スクリプト作成
以下コピー&ペーストでOKですよね?
で、空けたいポート出てきたら↓に追記してくという感じで。
#----------------------------------------------------------#
# 各種サービスを公開する場合の設定(ここから) #
#----------------------------------------------------------#
テンプレのサイト見たんですが、どれもマニュアルなので自分にはまだ早いというかとりあえず公開しなければな状況で一番楽かなと思ってます。
849さんは全部手作りですか?
centosだったら、lokkitで設定して何か不足があれば 手で書くって感じでいんじゃないの、そんなに複雑なことしないなら。
下図のようなネットワーク構成のイメージで、
ttp://www.atmarkit.co.jp/aig/02security/dmz2.gif グローバルIPとリクエストのポート番号によって以下の様に振り分けたいのですが可能でしょうか。
aaa.bbb.ccc.ddd:80だったら、公開web1サーバー(192.168.0.1)へ
www.xxx.yyy.zzz:25だったら、メール中継サーバー(192.168.0.2)へ
aaa.bbb.ccc.ddd:8080だったら、公開web2サーバー(192.168.0.3)へ
また、以下のような事にグローバルIPをスルーさせたりローカルにNATしたりする運用も可能なのでしょうか ?
aaa.bbb.ccc.ddd:80だったら、公開web1サーバー(aaa.bbb.ccc.ddd)へ
www.xxx.yyy.zzz:25だったら、メール中継サーバー(www.xxx.yyy.zzz)へ
aaa.bbb.ccc.ddd:8080だったら、公開web2サーバー(192.168.0.3)へ
識者の皆さんのお知恵をお貸しください
どうとでも可能。 iptablesの説明読め。
>>852 一応聞いておくが
aaa.bbb.ccc.ddd
www.xxx.yyy.zzz
aaa.bbb.ccc.ddd
の3つはIPアドレスが違うんだよな?
iptablesは当然ながらドメイン名レベルでの振り分けなんてできないからな。
3つじゃなくて2つか失礼
ドメイン名レベルの振り分けがしたいなら、apacheかnginxでバーチャルドメイン+リバースプロキシ。
皆さんありがとうございます >> 854-855 グローバルなIPは2つで ちょとわかり辛かったかもですが、ドメイン名レベルの振り分けではなく、ポート番号での振り分けです。 >> 856 mod_proxyも検討したのですが、他にも同居するサービスがあってhttpのリクエストだけって訳じゃないのでFWを検討しました。 ちょっと掲題が複雑になってしまったので、整理させていただきますと グローバルIPが10.0.0.1でポート番号が80のリクエストは、公開WEB1サーバーである10.0.0.1の80へ(つまり何もしない) グローバルIPが10.0.0.1でポート番号が8080のリクエストは、公開WEB2サーバーである192.168.0.1へ(NATする) て事をしたいのですが、 わからなかったのはIPアドレスが競合してしまうので、ファイヤウォールにグローバルIP10.0.0.1を付けられませんよね? 違うIPのリクエストをファイヤウォールに応答させるには、どういった設定になるのだろうって思いました。 参考になるURLでも結構ですので、お教えいただけると幸いです。
>>851 助言さんくす。
lokkitすげーありがたや。初めて知りました。
859 :
login:Penguin :2009/04/26(日) 20:03:23 ID:s8aH0S98
iptablesの設定がうまくいかないので教えてください。
今Ubuntuのサーバと、クライアントのWindowsマシンが同一NW内にいます。
Ubuntuのiptablesの設定は書きアドレスを参考に設定するとクライアントから
SSHの通信ができなくなります。
(厳密には、下記のものを少し変えて OUTPUTはACCEPTにしてします。
trusthost, myhostも変更済み)
ttp://www.atmarkit.co.jp/flinux/rensai/iptables01/iptables01b.html いろいろやってみたところ、43行目の
iptables -A LOGGING -j DROP
をコメントアウトすると接続できます。
これは42行目でwarning以上の警告がでてるものをログにだして、43行目でパケット廃棄
という設定ではないのでしょうか?
861 :
859 :2009/04/26(日) 20:52:57 ID:xldeLDJD
>>860 ちょっと長くなりますがすいません・・・
11.5がUbuntuのサーバです。
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 192.168.11.0/24 192.168.11.5 icmp type 8
ACCEPT icmp -- 192.168.11.0/24 192.168.11.5 icmp type 0
ACCEPT tcp -- 192.168.11.0/24 192.168.11.5 tcp dpt:22
ACCEPT udp -- 192.168.11.0/24 192.168.11.5 udp dpt:137
ACCEPT udp -- 192.168.11.0/24 192.168.11.5 udp dpt:138
ACCEPT tcp -- 192.168.11.0/24 192.168.11.5 tcp dpt:139
ACCEPT tcp -- 192.168.11.0/24 192.168.11.5 tcp dpt:445
ACCEPT tcp -- 192.168.11.0/24 192.168.11.5 tcp dpt:901
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:60000:60030
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
LOGGING all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
LOGGING all -- 0.0.0.0/0 0.0.0.0/0
Chain LOGGING (2 references)
target prot opt source destination
LOG all -- 0.0.0.0/0 0.0.0.0/0 limit: avg 3/hour burst 5 LOG flags 0 level 4 prefix `DROP:'
862 :
859 :2009/04/26(日) 20:55:07 ID:xldeLDJD
>>861 あ、すいません、これは
iptables -A LOGGING -j DROP
をコメントアウトして実行している結果です。
これをコメントアウトしないとつながらなくなってしまうので・・・
>>862 自分も詳しくはないので自信がないけど、inputとoutputでのルールを
通過できたパケットがloggingに飛んでいる。
そこでlogとして記録された後、dropで叩き落とされているからでないか?
だから、iptables -A LOGGING -j DROPをコメントアウトするとつながると
言うことになるのではないかと思う。
対策はinput、outputにパケットを戻すとかコメントアウトしたままに
しておくとか?
あと、outputの基本ポリシーがacceptになっているので、再度全部の
パケットを通すよう記述しなくても大丈夫だと思う。
GUIツールとか ブラウザーでポチポチできるツールないすか???
なに得意げになってんだ、この馬鹿は?
>>865 これすげぇぇぇぇぇぇーーーー!!!
dクス!
あれ?apnicのipデータおかしくね???
http://fedorasrv.com/iptables.shtml ここを参考に、外国からのアクセスを弾くように、iptables を設定しました、iptables -L で確認すると
確かに、設定は有効なようなのですが
limit: avg 1/sec burst 5 LOG level warning prefix `[IPTABLES DENY_COUNTRY] : '
とログに関するwarningが出ます、これはどういう意味で、このwarningを出さないようにする方法は無いでしょうか?
>>871 これでいいのか?
iptables -A DROP_COUNTRY -s $addr -m limit --limit 5/s -j LOG --log-prefix '[IPTABLES DENY_COUNTRY] : '
>>872 質問者(>870 )が「参考にした」というページの、シェルスクリプトの該当部分。
生成された定義ファイルも示さずに質問するような奴には、この程度の返事で十分だろ。
まあ、自分で書いたスクリプトの内容も理解できていないだろうしね。
http://fedorasrv.com/iptables.shtml ここを参考に、外国からのアクセスを弾くように、iptables を設定しました、iptables -L で確認すると
確かに、設定は有効なようなのですが
limit: avg 1/sec burst 5 LOG level warning prefix `[IPTABLES DENY_COUNTRY] : '
とログに関するwarningが出ます、これはどういう意味で、このwarningを出さないようにする方法は無いでしょうか?
乱暴なことやってるわけだから、warningのひとつやふたつ気にしてもしょうがないと思うが……
チェイン1 国外からのアクセスを禁止して、国内からのみアクセスさせるチェイン チェイン2 tcpへのBruteForceアタックを禁止するチェイン(synフラグをチェックする) があるとします。 iptables -A INPUT -p tcp いろいろ -j チェイン1 iptables -A INPUT -p tcp いろいろ -j チェイン2 というような順番でチェックさせたいのですが、チェイン2はsynフラグをチェックしているため、 チェイン1よりチェイン2の方を先に記述しないといけませんが、 基本的には国外の方がBruteForceアタックをしかけてくるので、チェイン1を処理として上位に上げたいと考えています。 上記の問題を、チェイン1の内部でチェイン2を呼ぶ以外で、うまく解決する方法のヒントなりいただけないでしょうか?
879 :
login:Penguin :2009/08/04(火) 23:11:01 ID:NK5rtxpW
iptablesって、ホスト名をワイルドカード指定することは出来ないのでしょうか? .2ch.netだとhost/network `.2ch.net' not foundと言われてしまいます www.2ch.netならOKなのですが・・
>>879 iptablesはその名の通りIPアドレスをもとにしたルールなので無理。
その手のルールを作りたければアプリケーション側でやれ。
IPアドレスを元にしたルール、というのも一つの理由だけど、 ワイルドカードを認めるとフロー毎に逆引きが必要になるので、 遅くてまともに動かせない、という根本的な問題もある。 アプリケーション側で通信制御している例として httpd の .htaccess なんかがあるけど、 トラフィックが多い大規模サイトの場合、 遅くなるからドメイン指定するなというのが共通の認識。
逆引きすると逆引きで発生した通信も iptables で処理する必要があるわけで いろいろめんどうなことになる。 そもそも *.2ch.net の IP アドレスは逆引きしても *.2ch.net にならない。
できるだけロジックベースで組むのが賢いよ。 リストでどうこうするのは、どうしてもしょうがないときの対応方法で。
1行のルールでソースIPアドレスを複数指定って出来ないんですかね? -s ipアドレス -s ipアドレス って構文はエラーになりました
>>884 -m multiport --sports ip1,ip2,…
詳しくはiptablesのmanに載ってる
それってポート番号だけじゃないんですかね?
>>884 ない。独自チェインを作るとかすればアクションの記述を一度きりにすることはできるだろうけど。
>>884 セグメントにまとめてセグメント指定するとか。
INPUTとOUTPUTのポリシーをACCEPTにして それぞれに「192.168.10.176/28」をrejectで登録した場合 IPが「192.168.10.180」、サブネットマスクが「255.255.255.0」の端末からの通信は rejectされずに通ると考えてるのですが、間違ってないですよね?
外にサーバ置く場合、lookitで設定した以外に必要な処理ってなにあるの? IPやホスト名でのアクセス制限は各アプリでも行うとして。
893 :
login:Penguin :2009/09/10(木) 19:35:12 ID:7Nx/8iVn
>891 お前の組織が持っている、セキュリティポリシーに沿って必要な処理を入れろよ。
TCP SYN Flood攻撃対策とか色々あると思うのだが知らんの?
iptablesのテンプレなんかいくらでも転がってるんだから、 おまえが「lookitで設定した以外に必要な処理」と思うものを入れればいいだけ。
使えねぇスレだな。だったらいらねーじゃんこんなとこ。
使えねえスレだから全然伸びてないんだよ
>>1 見て察しろよw
たとえばGoogleMapのような平行してTCPセッションを大量に張らせる サービスを提供しているような場合、SYN Flooding対策は入れられない。 お前が何が必要で何が不要と判断できないなら外部コンサルにでも頼め。
>>898 なんかかんだ教えてくれてるよな。
お前いい奴だなw
>>890 IPアドレスマッチでは、相手が設定しているサブネットマスクは結果に影響しない。
901 :
login:Penguin :2009/09/13(日) 15:52:22 ID:OyZ0irJZ
VRRPで振られたIPを送信元にして内→外に通信がしたいのだけど、tcpdumpで見ると、正しく相手サーバからNATまではパケットが返ってきているのだけど、そのあと、ローカルマシンにパケットがこないのです。 以下の設定だけではなにかたりないでしょうか? VIP 内: 10.0.0.12 VIP 外: a.b.c.9 # iptables -t nat -A POSTROUTING -s 10.0.0.0/21 -o eth1 -j SNAT --to a.b.c.9 VRRPはaliasで以下のように振られています。 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:1c:c0:e2:89:1f brd ff:ff:ff:ff:ff:ff inet 10.0.0.10/21 brd 10.0.7.255 scope global eth0 inet 10.0.0.12/21 scope global secondary eth0 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:1b:21:3d:ea:3f brd ff:ff:ff:ff:ff:ff inet a.b.c.7/28 brd 202.218.205.239 scope global eth1 inet a.b.c.9/28 scope global secondary eth1 ローカルマシンのデフォルトゲートウェイは、10.0.0.12に設定されています。
192.168.0.1/255.255.0.0 って言うのは192.168.0.1からどこまでの範囲を示しているのでしょうか? わかりやすく計算してくれるサイトとかご存知ないでしょうか?
>>902 $ ipcalc -b -n 192.168.0.1 255.255.0.0
BROADCAST=192.168.255.255
NETWORK=192.168.0.0
>>903 この人はコマンドではなくてサイトが知りたいらしいよ。
仕事ならサブネットの計算はできるようになっといたほうがいいな
255.255.0.0って別に難しくも無くそのまんまのような気がするが
910 :
Cent :2009/09/25(金) 16:59:25 ID:7+qs416V
指使って計算すればw 指が生えてくるころにはわかるようになっているだろぅ。
>>908 そのままだわな。
というか192.168.0.1/255.255.0.0 ってネットワークの記述じゃないよね……
何が分からないかも分からないってのはよくある話ではあるが。
>>911 |というか192.168.0.1/255.255.0.0 ってネットワークの記述じゃないよね……
192.168.0.0/16 と 192.168.0.1/255.255.0.0 、ヤマハのルータだと、どっちも通るよ。
(RTX2000,RTX1500,RTX1100,RTX1000,RT300i,RT250iあたり)
何が分からないかも分からないって点は同意。
それはマスクすれば一緒だからね。> どっちも通る ネットワークのアドレスを人に説明する場合とは違うよ。
nftablesがやってくるぞ〜
まだまだ先の話かと
ipchainsからiptablesに移行するのが面倒くさかったなあ。 また面倒な移行をしなくちゃいけないのか。
>>916 たしかに。IPをただ並べてるだけの人ならいんだろうが...
919 :
login:Penguin :2009/10/25(日) 12:53:13 ID:DbVIvmqd
iptablesを、パーソナルFW(?)として稼働させてます。 tcp:8080で稼働させているサービスを tcp:80 でも待ち受けたくて # iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports:8080 としたんだけど、何故か「大きなパケット」だけポート変換してくれないのです。 誰かエロイ人、原因やより良い設定を教えて下さいませ。 補足情報 ・パケットの流れをiptablesのログで追っかけたところ、 (1) rawテーブルのPREROUTINGでログを採ると、宛先ポートは80となっている (2) filterテーブルのINPUTの先頭でログを採ると、 小さいパケットだと宛先ポートが8080に変換されているのに対して 大きなパケットだと宛先ポートが80のまま流れてきている ・正確なしきい値は調査できてないけど、 「小さいパケット」として確認できたのは、LENが1500以下 「大きなパケット」として確認できたのは、LENが1600以上
920 :
login:Penguin :2009/10/25(日) 14:42:00 ID:34XcNlgd
レスアンカーってどうやって 使うの?
>>920 JDとかV2Cとかの2ch専用ブラウザを使えば分かる。
ageてる人が目立つとか。
>>919 IP fragmentが起こってるんではないかな。
どういう環境なのか知らんが、途中経路でICMPを落としてるのなら
通すように設定してみれ。
linuxigd 0.92を使ってUPnPをPCルータに実装したのですが 接続が切れて復活がたまにあります。 みなさんはどう対処しているのでしょうか?
対処も何もそんな事象は起きてない
質問 LAN内の特定のPC 例えば 192.168.1.3は基本外へのアクセスは拒否 しかし特定の時間は 例えば 16:00〜19:00は許可する こんなルール作れる?
>>925 crontabでルールを切り替えるとか。
>>925 仕事でやるなら、ちゃんと金払ってやってもらえよw
928 :
login:Penguin :2009/11/01(日) 14:21:25 ID:YN+9cK6B BE:185372227-2BP(1234)
>>926 なるほど。その手もありですね。
>>927 ?
いや、息子が最近ネットばかりやってるようだから、制限かけようかと。
>>928 完全に切ると別の手段を探し始めるから、切断じゃなくてtcで通信速度を
落としたりMAC詐称とかで通信妨害して内容がたまに壊れるようにするのが
おすすめ。
930 :
login:Penguin :2009/11/01(日) 17:47:09 ID:YN+9cK6B BE:105926742-2BP(1234)
>>929 tc使うとネットワーク全体が影響受けない?
iptables -L で見る設定内容と iptables-save > ./iptables.txt で保存した内容を比較すると チェインが変わっていて、設定が違うのですが、そんな事ってありえますか?
iptables -L -vとかしてみるとどう?
>>933 さん、ありがとう
手元に環境が無いので月曜日に確認します。
>>4 のShorewallをインスコしてみたけどいきなりZoneの概念が分からない(^q^)
> Shorewall views the network as a set of zones
とあるから、ネットワークを区切ってそれぞれにゾーン名を割り当てて
便利なゾーン名を使ってルールを記述できるのかと思ったら、マニュアルは
WANや各セグメントはNIC別になってるのが前提みたいな感じ
NICが別ならそもそもZoneなんて別名にすぎないし、単一IFで複数の
セグメントとやりとりするからこそZoneが必要になるんじゃなかろうか
そういう場合に、Zoneで切り分けようとすると意味的におかしなにネスト(loc:netのごとく)をしたり
hostsに「net eth0:!10.0.0.0/8、loc eth0:10.0.0.0/8」みたいな美しくない記述が出来てしまうように思う
そもそもなぜhostsというファイル名なのかピンとこない
Shorewallは各ホストではなく、ホスト間に介在するものだから複数NICで切り分けろ
というのはわからなくはないけど、そうだとしてもIFに関係なくネットワークごとにZoneという
ラベルを貼ってルールを振り分けることの重要性は変わらないんじゃなかろうか
だとするとZoneって何なの^^
これは技術的な制約なのか、俺の考え方がおかしいのか
つかったことないけど、zoneっていうからScreenOSみたいな感じかな?
938 :
936 :2010/02/28(日) 00:30:23 ID:RfHmv2Uk
落ち着いて考えたら連鎖ルールを書かなきゃセグメントを排他的に設定する必要はなかった 今はZoneをまんせーしている
復活?
/etc/hosts.deny で sshd へのアタックを防ごうとしているのですが、 iptables では drop することができますが、hosts.deny でも drop することはできるのでしょうか? かつ、refused または droped のログを記録したいのですが。
>>940 hosts.deny でも refused の記録残るよ
943 :
login:Penguin :2010/03/22(月) 21:44:59 ID:5C62ztgm
iptables -A INPUT -f -j LOG --log-prefix '[IPTABLES FRAGMENT] : ' iptables -A INPUT -f -j DROP を設定したが、 winからping xxx.xxx.xxx.xxx -l 2000 しても通過するようです。 フラグメントしているのになんででしょう?
誰がパケットをフラグメントさせてるの?
945 :
login:Penguin :2010/03/24(水) 01:16:25 ID:ith/27+z
winからのicmp送信時には、既にフラグメントされているものかと・・・。
windowsのpingのオプションを見るべきだね
947 :
login:Penguin :2010/03/24(水) 11:28:49 ID:ith/27+z
--fragment -f match second or further fragments only
centos5.4 のデフォルトのiptables の設定ファイルって何処にあるのでしょうか 教えてくださいエロイ人
んなことはCentOSスレで聞け
951 :
login:Penguin :2010/04/11(日) 11:31:03 ID:6XeLMfss
複数の非連続なipを指定する事できますか? -s 192.198.0.3,192.168.0.12 これは通りませんよね。 良い方法あったら教えてください。
954 :
953 :2010/04/17(土) 07:39:15 ID:EW7ln4Fl
上の方で同じ話題が出てましたね。 すみませんでした。
初歩的な質問で申し訳ありません 特定のIPアドレスからのアクセスを防ぐには iptables -A INPUT -s 221.xxx.xxx.188 -j DROP という記述ではだめなのでしょうか?
それ以前に適用されているルールによる
こんな感じです iptables -F iptables -X iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p icmp -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp --dport ssh -j ACCEPT 中略 iptables -t nat -A PREROUTING -p tcp -m tcp --dport 587 -j REDIRECT --to-ports 25 iptables -A INPUT -s 221.242.207.188 -j DROP iptables-save > /etc/sysconfig/iptables
追記です。 拒否したいのは特定IPからのスパムメールです。 iptables -A INPUT -p tcp --dport smtp -j ACCEPT の記述があるからそちらが先に適用されているのでしょうか?
3連投申し訳ありません 中略のところに上の記述があります。
何で肝心なところを省略するんだw ルールは上から順に評価されてマッチしたところで終了。 (語弊があるが面倒だからそう言っておく) 君の想像通りのミスかと。
962 :
login:Penguin :2010/04/23(金) 00:25:09 ID:AOTwgmlN
eth0 : 192.168.1.1 eth1 : dhcp(インターネット) 上記のような場合に、192.168.1.1:8080 にアクセスがあったら、例えばyahoo.co.jp:80 に パケットを飛ばすというようなことはiptablesで可能でしょうか? とりあえず、今はsshでlocalhostに繋いでポートフォワーディングするくらいしか思いつか ないのですが、iptablesでも可能でしょうか?
それって、キャッシュとかプロキシーじゃないのか?
iptablesとsquidを使ってそんなのを紹介してたのはあったなー 特定のところへつなぐならstoneでもよさげでは?
単に Squid 立てるだけでいいような。
967 :
login:Penguin :2010/04/23(金) 23:21:43 ID:AOTwgmlN
>>963-965 ありがとうございます。squidは数年前に使ったきりなんですが、
今はポート飛ばす事も出来るんですね。
でも、squidは入れてないのでiptablesでは出来ないでしょうか?
>>967 変な使い方をしたければ自力でどうぞ。
# 自機を守るためのフィルタでルーティングを行おうとする変態は、たぶん貴方しかいません。
透過プロキシたてればどうとでも出来るよ。
今iptablesを勉強してて難しいなぁと思ってたんだけど、このスレの議論最初から読んで「皆凄いなぁ」と思った Linuxサーバーのセキュリティとか、こまごまと色んな設定とか多すぎてマジきついですね ファイアウォールだけでなく、コンテンツフィルタリング、SELinuxのboolean等など・・・ ただ起動させるだけなら誰でもできるけど、各種設定となると・・・髪の毛が大量に抜け落ちそうです・・・
>>970 マシンの動作を細かく指定して隅々まで自分の管理下に置きたい人にとっては、設定項目が多いのは喜ぶべき事なのです。
その観点からすると、linuxやsolarisは簡単です。逆にWindowsやMacOSXの方が面倒に思えます。
linuxやsolarisは、全てのポートが閉じた状態から、必要なポートだけ順次開けていけるけど、
WindowsやMacOSXで同じ事をやるのは非常に面倒。
(そもそも、必要なポートのみを開く事が困難:パネルを開いただけで勝手にポートが開くという論外なのまである)
# 得体の知れない『ウィルス対策ソフト』に"お任せ"すれば簡単だけど、iptablesを使う人種が易きに流れる訳も無し
>>967 出来ない。
>>968 も言ってるように、iptable は filter であって router じゃないから。
>マシンの動作を細かく指定して隅々まで自分の管理下に置きたい人にとっては、設定項目が多いのは喜ぶべき事なのです あぁ、確かに Windowsでウィルス対策ソフトやファイアウォールソフトに頼りまくってた自分からするとめんどくさいですが、自分の好きなようには設定できますね ただ、セキュリティ全体で考えると極めてめんどくさくないですか? ファイアウォールだけでなく、不要なデーモン、cron停止とかポートごとの設定とかその他色々 膨大な知識が必要になったり、設定箇所も間違えないプレッシャーがあったりと自分には荷が重い気がしますw
>>973 linuxにだってセキュリティアプリはあるんだぜ。
鯖用だけどね。
>>973 全て丸呑みしようとしてるから難しいんじゃね?
>>971 でも書いてるとおり必要なポートだけを順次開けるだけなんだから
ちっとも難しくないと思うけどな
ましてや、最近はmakeとかせずにyumでなんとでもなっちゃうのが多いやん
不要なデーモンってのも、Windowsマシンでいったいどれほどの不要なサービスが起動してるかわかってるのか?
動作がとろくなるブラックボックスのウィルスソフトやファイアーウォール使う方がよっぽど不安だらけだよ
976 :
login:Penguin :2010/04/24(土) 16:04:23 ID:7fhmbqGv
>>968 ,972
そうですか。iptablesではポートのリダイレクトは出来ないんですね・・。
ちゃんと読んでないから誤解してるんだろうけど 単純な port forwarding ではないの? それなら普通に iptables でできるけど
978 :
login:Penguin :2010/04/24(土) 17:55:50 ID:7fhmbqGv
>>977 sshのようなポートフォワーディングが出来ればなと思っています。
観念してSquid調べてますけど、今でもhttp(s),ftpくらいしか出来ないように
見えるんですけどどうなんでしょうか・・。
>>962 で「例えば yahoo.co.jp:80」って書いちゃったのが誤解の元でしたね。
80に限らないんです。すみません。
「sshみたいな」というのがわかってないけど iptables -A PREROUTING -t nat -i eth0 -p tcp -d 192.168.1.1 \ --dport 8080 -j DNAT --to 123.456.789.10:80 とかではダメなわけね?
980 :
login:Penguin :2010/04/24(土) 19:53:50 ID:7fhmbqGv
ありがとうございます。 natにしてDNATしてさらにFORWARD,OUTPUTをそこだけ空けて出来ました! 助かりました。ありがとうございます。
port80を例にしたのが失敗だな・・・・
test
test
test
loopytable
hoppytable
わざと誤読して屁理屈こねてるのがいて糞ワロタw
ほう
けい
ちん
師弟繁多
ファイアソール
バード
ボンバー!