トップページ⇒linux
1001コメント407KB

おい、iptablesの使い方を具体的に詳しく教えろ!

■ このスレッドは過去ログ倉庫に格納されています
0001初心者01/09/18 21:50ID:vcHWxUb2
家庭内LANのルーターとして使いたい。
web, ftp, mailサーバーをうごかしつつ、IPマスカレードして
LANのPCをそとにつなげたい。
コネクションはADSL、IPはグローバルひとつだけ。

具体的なiptablesのコマンドを教えろ。
それと、/etc/sysconfig/iptablesって何なの?これについてもね。

急いでいるのですばやい解答を求む
0136login:Penguin02/01/22 08:07ID:XFXkO4Vc
ログ出力するときって、いちいち
iptables -A .... -j DROP
iptables -A ... -j LOG
みたいに-jの先以外が同じ行を2行ずつ書いていくのですか?
ipchainsの-lだけで指定できる方が簡単だったような。
0137login:Penguin02/01/22 13:13ID:UXXt0yTf
ログ出力専用チェインをつくるみたい。
JFにもそうあった。
あと、逆だよね。
iptables -A ... -j LOG
iptables -A .... -j DROP
0138login:Penguin02/01/23 05:33ID:MpfwbTB/
MS NetMeeting とか、、やっぱり無理でしょうか?
0139login:Penguin02/01/23 08:18ID:I0GwTZYN
>>138
このへんは読んだか?
http://www.microsoft.com/japan/support/kb/articles/JP158/6/23.asp
http://oscar.as.wakwak.ne.jp/win/voip.shtml
0140login:Penguin02/01/23 09:30ID:wwyOHTAl
>>139
レスどうもです

上のリンクは見てなかったんですが、数社ルータメーカーが掲示している
“NetMeetingを通す方法”の元?なんでしょうか
>動的に割り当てられるポート (1024 〜 65535) で、セカンダリ UDP 接続を通す。
これがちょっと、、です。。

下のほうはチェックしてました(というかリンクが紫になってただけ、、)
IPMasqueradeでは他サイトでも安定してるというか実用例があるみたいなんですけど、
できたらIPMasquerade用のモジュールを読み込まないで、というので考えています
サイト内リンクのH323(netmeeting) protocol helperもやっては見たのですが
英語が××で、ぶっちゃけ成功していません。。
あ、なんか前よりバージョンがあがってるみたいなので、もっかいやってみます
(正直日本語解説がないと無理なのかも、とは思ってはいるんですが、、)

失礼しました。。
0141login:Penguin02/01/30 18:38ID:yyaVmfbc
あるドメインからのパケットを丸ごとdropしたいんですが、どういう指定に
すればよいのでしょう?
manを見たところ、-sとか-dの引数としては、単一のホスト名、単一IPアドレス、
IPアドレスによる範囲指定が使えるようなのですが、名前では無理なのでしょうか?

最悪、IPアドレスの範囲指定でゴリゴリやるのも手なのですが、あるISPが持ってる
IPアドレスのリストって調べられるものでしょうか?
host -l だとちょっと辛い感じです。
0142iptable使ったことない馬鹿厨房02/02/01 19:07ID:DP/uyWNH
http://www.linux.or.jp/JM/html/iptables/man8/iptables.8.html
に、iptableのmanの日本語翻訳版が有るから参考にどうぞ

一応ドメインでも指定できるみたいだね・・・
でも、(確証はないが)逆引きに失敗した場合にすり抜ける可能性が有ることに注意
あるドメインのIPアドレスの範囲を知りたければwhoisを使いましょう。

安全を期するなら、IPアドレスの範囲指定&ドメイン名で弾くべきか?
いつ新しいIPアドレスが追加されるかわからないしね・・・
# ドメインで弾くほうには -l を付けとけば
# 新しいIPアドレスが追加されたってのに気づきやすいよね。

0143iptable使ったことない馬鹿厨房02/02/01 19:18ID:DP/uyWNH
>>142 の補足&訂正。

すまぬ、やっぱ厨房だ・・・
まず、>>141って付け忘れた(笑)

で、重要なのだが
-l は iptable では使えないかもしれない。
というわけで
--log-prefix Check the range of an IPAddr.
みたいにしとけば、メッセージ付きでsyslogに残るらしい

詳しくは下記URLをっと。
http://www.linux.or.jp/JM/html/iptables/man8/iptables.8.html#lbAX
014414102/02/01 19:41ID:sjAwGCQI
>>142
わざわざありがとうございます。…実は、
ttp://www.a-tone.com/taky/os/linux/iptables.html
を見つけて、ここのスクリプトとdynfw(developerworks)
を使って処置し、様子を見ているところです。

whoisの使い方が今一わからないので、ここはもちっと
調べてみるつもりですが、当初の目的は達成できたかな、
と思ってます。
0145iptable使ったことない馬鹿厨房02/02/01 19:58ID:DP/uyWNH
>>109
ident(113)へのをDROP(DENY)にすると異常に接続までに時間がかかることが有る
IRC鯖からのみREJECT or ACCEPTに変更するとスムーズになるかもしれない。

まぁ、上の投稿のように「嘘」とか「間違い」の可能性は大だけど・・・
0146/usr/sbin/sage02/02/02 01:23ID:5AIXSyU3
そうかここで質問に答えてもらうにはこういう書き方をすればいいのか勉強になったとても勉強に感謝しています
0147login:Penguin02/02/10 11:46ID:+SdcoApJ
iptableじゃなくて、ipchainsだけど便乗質問。
telnetやircの接続を速くするためにipchainsでauthやsocksをREJECTする設定にしたのですが、DENYにするのと変わりません。
ACCEPTにすると速いんだけど、何が原因なんだろう。
もちろんauthやsocksポートには何も待機していません。ので、REJECTとどうちがうんだろう。

0148login:Penguin02/02/10 11:57ID:9HqpzYwu
>>147

-j REJECT --reject-with tcp-reset
-j REJECT --reject-with icmp-port-unreachable

0149login:Penguin02/02/10 12:15ID:+SdcoApJ
>>148
--reject-withはipchainsには無いのでした(;_;
015014802/02/10 12:23ID:9HqpzYwu
ごめん iptablesじゃなくてipchains... だったのね.
0151login:Penguin02/02/10 18:15ID:l9WkUBSt
iptables か ipchains で arp を無視するってできないの?
ICMP は無視できるから arp はどうかなって思って。
0152login:Penguin02/02/10 18:35ID:aNFiZsxi
明日の「教えてクン」を目指す、若き戦士達に以下の文章を捧げる。
日々精進し、パソコンヲタクどもの親切を蹂躙してやれ。

1.努力を放棄すること
  いやしくも「教えてクン」たるもの、努力をしてはならない。
 過去ログを読んだり、検索してはいけない。
 「英語は苦手なので、分かりません。」は、高く評価できる。
 辞書片手にマニュアルやReadMeを読むなど、決してしてはならない。
 他力本願と言われようと、自分で調べたり試行錯誤したりせず、
 他人の努力の結果を搾取するのが、正しい「教えてクン」である。
 また、「もう何が悪いのかサッパリ分かりません。」と言って
 ふてくされるのも有効である。「サッパリ」という単語が
 「やる気の無さ」を効果的に表現している。
 「原因を特定するには、何をすべきでしょうか?」と訊いてしまうと
 自己の積極性が現れてしまうので、「教えてクン」失格である。
0153login:Penguin02/02/10 18:35ID:aNFiZsxi
2.情報を開示しないこと
  使用OSや、機器構成などの必須の情報を知らせてはならない。
 マザーボード名やBIOSのバージョンも同様だ。
 具体的なアプリ名やバージョンも隠蔽すべきだ。
 「DVD再生ソフト」のように曖昧に表記しておけばよい。
 反対に「前から欲しいと思っていた○○」とか「安売りされていた
 ○○」 等の「どうでもいい情報」は、どんどん書いてやれ。
  トラブルの場合は、状況を正確に記述してはならない。
 「なんだかうまく動きません。」とか「エラーが出ます。」等と
 具体的なことは何も書かないことが重要である。
 また、自分の試してみた事も具体的に書いてはいけない。
 考えられる組合せのマトリックスを作成し、状況を整理するなど
 もってのほかである。最悪の場合、それだけで問題が解決してしまう
 こともあるのだ。
 「いろいろやってみたけど、動きません。」が理想的だ。
0154login:Penguin02/02/10 18:35ID:aNFiZsxi
3.答える人間のことを考えないこと
「教えてクン」は、孤高の戦士である。相手のことを考えるようでは
 教えてクン失格というものだ。
 以下のような行動が、望ましい。
  初心者であることを高らかに宣言し、初心者向けの丁寧で
 分かりやすい説明を強要する。専門用語の使用を禁じておくと
 さらに効果的である。簡潔な説明を禁じられたヲタクどもは、
 同じ内容を説明するのに、何倍もの労力を強いられる。
 自分は努力せず、相手には多大な努力をさせることこそが
 「教えてクン」の真骨頂である。
  マルチポストも有効である。そのBBSを信用していないことを
 明確に示せる。「どうせ、お前らじゃ分からんだろう。」という
 意志表示として高く評価できる。もちろんマルチポストの非礼を
 あらかじめ詫びてはならない。それでは、単なる「急いでいる人」
 になってしまう。それは、教えてクンではない。
  質問のタイトルは、「教えてください。」で良い。
 タイトルを読んだだけでは「何に関する質問」か全く分からない。
 そういう努力は、答える人間にさせれば良いのだ。
 とにかく、答える人間が答えやすいように気を使って質問しては
 ならない。傲慢で不遜な態度が必須である。
 「聞きたいことがあります。」など、プロの仕事であろう。

最後に、言うまでも無いことだとは思うが、答えてくれた人達に
お礼の言葉を返すなど言語道断である。
せっかく「教えてクン」を貫いてきたのに、最後にお礼を言っている
ようでは、臥竜点睛を欠いていると言わざるを得ない。
質問だけしておいて、後はシカトが基本である。
上級テクニックとして、「そんなことはもう試しました。」とか、
「そこまで初心者じゃありません。」などと言って、回答者の
神経を逆なでしておけば完璧である。

以上のことを踏まえて質問すれば、君も立派な「教えてクン」である。
ビバ!教えてクン! 教えてクンに栄光あれ!!
015515102/02/10 18:51ID:l9WkUBSt
>>152-154
俺のこと?
0156棄教者 ◆witdLTi2 02/02/10 22:31ID:j1lOk64t
>>152-154
では, ぼくはあなたの価値判断に照らしてだめな人間になろうと思います.
0157login:Penguin02/02/11 01:48ID:XQAN99IG
>>147
ipchains すてれば良いじゃん。

iptables の方が、何をやるにも簡単だよ。
0158login:Penguin02/02/17 16:37ID:UTkS9MnU
今月のUNIX USER買ったら、iptables 動いたー
嬉しい・・
0159159?02/03/04 16:49ID:kx52FFMm
はじめまして。まずは下のスクリプトを見てください。

# /bin/sh


IPTABLES="/sbin/iptables"


# Initialize
$IPTABLES -F


# Policy
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP


# Input
$IPTABLES -A INPUT -p tcp --sport 80 --dport 1024: -j ACCEPT
$IPTABLES -A INPUT -p udp --sport 53 --dport 1024: -j ACCEPT

$IPTABLES -A INPUT -p tcp --dport 80 --sport 1024: -j ACCEPT

$IPTABLES -A INPUT -p tcp --sport 110 --dport 1024: -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport 25 --dport 1024: -j ACCEPT

$IPTABLES -A INPUT -p tcp --dport 6000 -j DROP
$IPTABLES -A INPUT -p tcp --dport 9010 -j DROP


# Output
$IPTABLES -A OUTPUT -p tcp --dport 80 --sport 1024: -j ACCEPT
$IPTABLES -A OUTPUT -p udp --dport 53 --sport 1024: -j ACCEPT

$IPTABLES -A OUTPUT -p tcp --sport 80 --dport 1024: -j ACCEPT

$IPTABLES -A OUTPUT -p tcp --dport 110 --sport 1024: -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --dport 25 --sport 1024: -j ACCEPT


# Forward

これだと1024以上のポートがフィルタリングされないんですよね?。
でも、クライアント用に使うにはこうしないといけないんです。
だから、2chのみなさんにクライアントに使うポート以外を
フィルタリングする方法を聞きに来ました。
よろしくおねがいします。
(Webサーバー兼用です。)
0160login:Penguin02/03/04 18:25ID:tqDAEMfs
省略されてしまうレスにマトモに答える気にはなかなかならないが、
とりあえずlocalhostに対してMASQUERADEしてみては?
0161login:Penguin02/03/04 18:42ID:LzqnkBou
>>159
ねえねえ、iptables 使っているなら、ステートフル
ファイアウォールが使えるよ。この機能を使えば、
1024以降を明示的に空けっぱなしにしなくても、
良いんだよ。



016216102/03/04 18:47ID:LzqnkBou
基本はこうだ

iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT --dport www -m state --state NEW -j ACCEPT

016316102/03/04 18:49ID:LzqnkBou

ごめん最後の行間違えました。

iptables -A INPUT -p tcp --dport www -m state --state NEW -j ACCEPT
0164login:Penguin 02/03/04 18:50ID:eqpRMDR5
何気にこのスレの1は好きだw
016515902/03/04 20:18ID:kx52FFMm
>>160
すみませんでした。これからは、気をつけるようにします。

>>161-163
ありがとうございます。さっそく試してみます。
0166login:Penguin02/03/04 20:35ID:vBnpQMfX
最近、iptablesのlogをとるようにしました。
たまに自分あてでないのが来るんですけど、
なぜですか?
0167login:Penguin02/03/04 22:17ID:vEEs1eqc
>>166

どんなログ?
016815902/03/06 18:28ID:Y3qblAn4
>>160様
localhostへのマスカレードってどうやってやるんですか?。

>>161-163様
ありがとうございました。
おかげで問題が解決しました。
0169login:Penguin02/03/06 22:14ID:5IiaRQ6B
>>166 routed とか zebra とか うごいてない?
017016602/03/06 23:53ID:OInjMMbB
よく見ると
dhclient: bound to XXX.XXX.XXX.XXX ... と
ifup: bound to XXX.XXX.XXX.XXX...が、ありました。

そこは、以前あたえられたアドレスでした。
そこにいけといってたんでしょうか?
017116602/03/06 23:56ID:OInjMMbB
>>169
こちら側では動いてません。
0172login:Penguin02/03/10 14:06ID:OvV6rlUg
デスクトップ機(192.168.0.3)からサーバ機(192.168.0.4)への接続に失敗する。
sshへの接続はうまくいくのに、プロキシサーバ(8080port)への接続ができない。
iptablesを外すと、プロキシへも接続できるからおかしいのはiptabelsの設定だと
おもけど、これのどこが悪いんでしょうか?

↓サーバ機のiptables用スクリプト
#!/bin/sh
IPTABLES="/sbin/iptables"

# flush tables chians
$IPTABLES -F
$IPTABLES -X

# chain policies
$IPTABLES -P FORWARD DROP
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT

# loopback rules
$IPTABLES -A INPUT -i lo -d 127.0.0.1 -j ACCEPT
$IPTABLES -A OUTPUT -o lo -s 127.0.0.1 -j ACCEPT

# network rules
$IPTABLES -A INPUT -p tcp -s 192.168.0.3 --dport 8080 -i eth0 -j ACCEPT
# ↑こいつが通らない。
$IPTABLES -A INPUT -p udp -i eth0 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 192.168.0.3 --dport 22 -i eth0 -j ACCEPT
# ↑こっちは通る。
0173 02/03/11 03:49ID:lNNe1lrw
>172
port80から8080へのREDIRECTチェインがない。
squid使ってるなら、ドキュメントに思いっきり書いてあるはずだが...。
0174 02/03/11 03:55ID:lNNe1lrw
あと、INPUTのtcp --sport 80もないか...。
0175login:Penguin02/03/12 14:32ID:E+SuNJC1
>>173-174
ありがとうございます。もう1度squid関連調べに逝って来ます。
0176login:Penguin02/04/20 19:21ID:rohCWPRw
便乗で悪いんですけど、firewall内に自鯖があって、NATで外から読めるようにしつつ
増すカレー度処理する時はどうすればいいんでしょ?
0177login:Penguin02/04/20 19:39ID:oxFqc4ZZ
>>176
まず普通にmasqueradeの設定をする。そこにDNATの設定を追加する。
017817602/04/21 07:40ID:Yr+atmvA
どうもです。
やっぱりなんか調子悪いんで、設定ファイルコピペします。
誰かご指南を。
#!/bin/sh

/sbin/modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t filter -F FORWARD
/sbin/iptables -t nat -F PREROUTING
/sbin/iptables -t nat -F POSTROUTING
/sbin/iptables -t filter -P FORWARD DROP
echo "filter reset"
/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE
echo ":masqrade"
/sbin/iptables -t filter -A FORWARD -m state --state ESTABLISHE,RELATED -j ACCEPT
echo ":accept"
/sbin/iptables -t filter -A FORWARD -i eth1 -p icmp -j ACCEPT
/sbin/iptables -t filter -A FORWARD -i eth1 -p udp --dport 53 -j ACCEPT
/sbin/iptables -t filter -A FORWARD -i eth1 -p tcp --dport 80 -j ACCEPT
/sbin/iptables -t filter -A FORWARD -i eth1 -p tcp --dport 23 -j ACCEPT
/sbin/iptables -t filter -A FORWARD -i eth1 -p tcp --dport 110 -j ACCEPT
/sbin/iptables -t filter -A FORWARD -i eth1 -p tcp --dport 25 -j ACCEPT
/sbin/iptables -t filter -A FORWARD -i eth1 -p tcp --dport 21 -j ACCEPT
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.0.2
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 21 -j DNAT --to 192.168.0.2
/sbin/insmod ip_nat_ftp
/sbin/insmod ip_conntrack_ftp
0179ド素人02/04/21 12:06ID:/RGp8aww
>>178
重箱の隅をつついて悪いけど、
>/sbin/iptables -t filter -A FORWARD -m state --state ESTABLISHE,RELATED -j ACCEPT
は、
誤 : ESTABLISHE
正 : ESTABLISHED

では?
0180login:Penguin02/04/21 15:30ID:LZsNjgeb
>178
http://www.atmarkit.co.jp/flinux/rensai/security03/security03a.html
0181login:Penguin02/04/22 03:50ID:WsiHtJm9
/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE
これだとこのマシンから出て行く全てのパケットをマスカレードしちまう。
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
じゃないと駄目なんじゃないか?
0182login:Penguin02/04/22 22:23ID:UlaPXRyr
ログの放出先ってどうやって指定するの?

iptables -A logging -j LOG --log-level warning -m limit --modprobe=/sbin/modpr
obe

sysylog.conf に
iptables.* /var/log/iptables.log

じゃぁ駄目?
0183login:Penguin02/04/22 23:22ID:5POPEszb
>>182 駄目。facility は kern で固定。
設定できるのは priority だけなので syslog では細かい設定は無理。
方法はある事はある。ulogd で検索してみれ。
もしくはメッセージの文字列を見て分類できる賢い syslogd を探すかだ。
0184login:Penguin02/04/25 16:53ID:usxeJJr6
>>183
 情報サンクス。
 駄目かぁ。しかしその前に、kernelいじらないと
 ログすら射出していないことに気づいた。
0185login:Penguin02/04/26 22:55ID:14T5vB2N
Xeroxネットワークスキャナから専用クライアントを用いて書類を取り出すときに、
クライアントは不定のポートからスキャナのポート1605にアクセスします。
書類を取り出そうとすると、スキャナはクライアントのポート1605に2つ目の
コネクションを作ろうとします。

iptablesのゲートウェイを通してアクセスすると、最初のコネクションは
FORWARDされますが、2つ目のコネクションはFOWARDされませんので、書類が
取り出せません。これをiptablesの設定で最初のコネクションを作ったホスト
にフォワードすることはできるでしょうか?
0186login:Penguin02/04/26 23:31ID:UqjpWVgK
>>185
ネットワーク環境が判らないので答えようがないぞ。
ネットワークスキャナとクライアントの間はアドレス変換(NAT)されているのかい?
0187login:Penguin02/04/26 23:36ID:GAEFUI6w
ステートフルにやりたいのなら自前で conntrack モジュールを書く。
それが嫌ならスキャナからクライアントのポート 1605 へのパケット
の forward を明示的に許可するルールを書くしかないじゃん。
いまいち何で悩んでるのかわからんな。
018818502/04/27 02:05ID:ElV/5Jg0
レスどうもありがとうございました。ゲートウェイの中はプライベートアドレス
でスキャナはグローバルアドレスですので、中から外への接続はNATされます。
ゲートウェイの中に複数のマシンがあって、スキャナにアクセスするのを
どれかひとつに決めれば、DNATルールでいいんですが、これだと、他のマシン
からスキャナが使えません。スキャナの1605にコネクションがあるときに、
スキャナから1605への接続要求があったときにゲートウェイ内の該当マシン
にFORWARDする、ということは不可能でしょうか?
0189login:Penguin02/04/27 14:04ID:TybU9eRm
結局 >>187 を読めとしか答えようが無い。
0190age02/05/29 15:51ID:XCO36owR
age
0191login:Penguin02/05/31 11:37ID:ufDGLsrG
ガッツ溢れる>>1記念age
0192login:Penguin02/06/03 08:55ID:z8IONuWA
wget で下記のようなエラーメッセージが出るんだけど
...
$ wget ftp://ftp.us.debian.org/debian/README.mirrors.txt
--07:59:52-- ftp://ftp.us.debian.org/debian/README.mirrors.txt
=> `README.mirrors.txt'
ftp.us.debian.org をDNSに問いあわせています... 完了しました。
ftp.us.debian.org[192.25.206.10]:21 に接続しています... 接続しました。
anonymous としてログインしています... ログインしました!
==> SYST ... 完了しました。 ==> PWD ... 完了しました。
==> TYPE I ... 完了しました。 ==> CWD /debian ... 完了しました。
==> PORT ...
無効なポート番号です。
再試行しています。
...
192.168.2.1(DNSサーバ兼NTPサーバ)では、下記のような設定になってて
wget は 192.168.2.6 で実行しています。(192.168.3.2 はWeb サーバ)
直し方教えて。
...
$ sudo iptables-save
# Generated by iptables-save v1.2.6a on Mon Jun 3 08:46:04 2002
*filter
:INPUT DROP [224:16115]
:FORWARD DROP [10:432]
:OUTPUT DROP [339:31838]
-A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 123 -j ACCEPT
-A INPUT -s 192.168.2.6 -i eth1 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p udp -m udp --sport 53 --dport 1024:65535 -j ACCEPT
-A INPUT -s 192.168.2.6 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A FORWARD -d 192.168.2.0/255.255.255.0 -j ACCEPT
-A FORWARD -s 192.168.2.0/255.255.255.0 -j ACCEPT
-A FORWARD -d 192.168.3.2 -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -s 192.168.3.2 -p tcp -m tcp --sport 80 ! --tcp-flags SYN,RST,ACK SYN -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 123 -j ACCEPT
-A OUTPUT -d 192.168.2.6 -o eth1 -p tcp -m tcp --sport 22 ! --tcp-flags SYN,RST,ACK SYN -j ACCEPT
-A OUTPUT -p udp -m udp --sport 1024:65535 --dport 53 -j ACCEPT
-A OUTPUT -d 192.168.2.6 -p icmp -m icmp --icmp-type 0 -j ACCEPT
COMMIT
# Completed on Mon Jun 3 08:46:04 2002
# Generated by iptables-save v1.2.6a on Mon Jun 3 08:46:04 2002
*nat
:PREROUTING ACCEPT [730:50671]
:POSTROUTING ACCEPT [51:3434]
:OUTPUT ACCEPT [467:31733]
-A PREROUTING -d 192.168.1.100 -i eth0 -j DNAT --to-destination 192.168.3.2
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Mon Jun 3 08:46:04 2002
0193login:Penguin02/06/03 12:19ID:AWppMUpu
>>192
wget --passive-ftp ftp://hoge/fuge
で、どーよ?
019419202/06/03 13:20ID:z8IONuWA
DNS/NTPサーバ設定あれこれ直したりしてたけど
>>193
で解消 thx
# Generated by iptables-save v1.2.6a on Mon Jun 3 12:38:22 2002
*filter
:INPUT DROP [446:41510]
:FORWARD DROP [10:432]
:OUTPUT DROP [604:49984]
-A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
-A INPUT -s 192.168.2.6 -i eth1 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.2.6 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -i eth1 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 123 -j ACCEPT
-A INPUT -i eth1 -p udp -m udp --dport 123 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 53 -j ACCEPT
-A FORWARD -d 192.168.2.0/255.255.255.0 -j ACCEPT
-A FORWARD -s 192.168.2.0/255.255.255.0 -j ACCEPT
-A FORWARD -d 192.168.3.2 -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -s 192.168.3.2 -p tcp -m tcp --sport 80 ! --tcp-flags SYN,RST,ACK SYN -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
-A OUTPUT -d 192.168.2.6 -o eth1 -p tcp -m tcp --sport 22 ! --tcp-flags SYN,RST,ACK SYN -j ACCEPT
-A OUTPUT -d 192.168.2.6 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A OUTPUT -o eth1 -p udp -m udp --sport 53 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 123 -j ACCEPT
-A OUTPUT -o eth1 -p udp -m udp --sport 123 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 53 -j ACCEPT
COMMIT
# Completed on Mon Jun 3 12:38:22 2002
# Generated by iptables-save v1.2.6a on Mon Jun 3 12:38:22 2002
*nat
:PREROUTING ACCEPT [1251:92645]
:POSTROUTING ACCEPT [105:6734]
:OUTPUT ACCEPT [960:65072]
-A PREROUTING -d 192.168.1.100 -i eth0 -j DNAT --to-destination 192.168.3.2
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Mon Jun 3 12:38:22 2002

0195state02/06/03 23:10ID:AxNSLimH
はじめまして
iptables には ステートフル インスペクション という機能が追加されたのですが、
>>161-163 で使い方が紹介されているのですが、
具体的には NEW, ESTABLISHED, RELATED, INVALID のパケットとはどんな
パケットなのでしょうか?どのようにして判別し、どのようにして処理しているのでしょうか?

3-way ハンドシェイクのように簡単な仕組みではないと思うのですが、いまいち理解できません。
詳しい方、いましたらご教授願います。詳しく説明しているwebなども紹介していただけたらうれしいっす。
(nfs関連の動き回るポートをうまく処理できたらいいな〜なんて考えているのですが、
 とりあえずstateでそれができようと、できまいと、stateの仕組みを知りたいのです。)
よろしくおながいします ヽ( *´ー`*)丿
019634002/06/05 19:48ID:4hxQLmqM
NEW=前戯
ESTABLISHED=真っ最中
RELATED=あれ?抜けちゃった
INVALID=いきなり

こんな感じ
0197_02/06/07 12:15ID:+8qkjCSy
iptablesdeでftpのpasvモード使いたいんだが

/sbin/insmod ip_nat_ftp
/sbin/insmod ip_conntrack_ftp

これらのモジュールはインストール時に入るんですか?
それともどこかからもらってくるんですか
入っている場合何処に入れられるんでしょう?
019819702/06/07 12:18ID:+8qkjCSy
追加
ですとリはターボ7です。
0199login:Penguin02/06/07 12:27ID:Konfj6z0
>>198
ターボの場合どうだったか確信が無いが、/etc/rc.d/rc.local か
/etc/rc.d/rc.modules に
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
と書いてみたら?
0200login:Penguin02/06/07 14:44ID:dekGeI0n
1です。
自分のたてたスレッドが繁盛しているのを見るのはいいね。

でもしばらくたって自分の書き込みを読むとかなりDQNでした。
ちょっとやばい。

でもまあ、まったりしたLinuxスレに電波乱入してすこしは
活気でたというものだから、結果的にはよかったかも。
0201login:Penguin 02/06/07 14:47ID:Un+oszzk
>>200
もっと楽しいこと書けよ、まんこ!
0202login:Penguin 02/06/26 10:31ID:DKIPFaEf
えと
16さんのスクリプトなんですが
$IPTABLES -A FORWARD -d 192.168.1.0/24 -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.1.0/24 -j ACCEPT
これは何処からのFORWARDの許可なのでしょうか?
nic2枚さしてeth0にppp0もたせてeth1に192.168.1.0/24のLANがあるとき
$IPTABLES -t nat -A POSTROUTING -o ppp0 -s 192.168.1.0/24 -j MASQUERADE
とeth1宛のマスカレードがあれば上の2つのFORWARDは特に必要ないんでしょうか?
eth0側のネットワークには何もないです。
0203login:Penguin02/06/26 13:32ID:uqb/DVYr
>>202
インタフェースを指定しなければ、全方向の forwarding が許可される。
オプション -i で入口、-o で出口のインタフェースを指定する。
POSTROUTING はその名の通りルーティングした後の処理なので、
FORWARD で許可されなければパケットはそこまでたどりつかない。
0204login:Penguin02/06/26 17:24ID:CssWagDV
ところで >>1は? どこへいった?
0205login:Penguin02/06/28 02:05ID:l6vDOI3u
FWとは別にLAN内にwebサーバーをおいたのですが、外からアクセスできません。
iptablesをこの様に記述したのですが
*nat
:PREROUTING ACCEPT [2451:150607]
:POSTROUTING ACCEPT [11:755]
:OUTPUT ACCEPT [11:755]
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.11
-A POSTROUTING -s 192.168.1.0/255.255.255.0 -o ppp0 -j MASQUERADE
COMMIT
# Completed on Fri Jun 28 01:57:26 2002
# Generated by iptables-save v1.2.5 on Fri Jun 28 01:57:26 2002
*filter
:INPUT DROP [56:2340]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [1303:157561]
-A INPUT -i lo -j ACCEPT
-A INPUT -s 192.168.1.0/255.255.255.0 -i eth1 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -d 192.168.1.0/255.255.255.0 -j ACCEPT
-A FORWARD -s 192.168.1.0/255.255.255.0 -j ACCEPT
COMMIT
DNATの使い方がおかしいでしょうか?教えてください。
0206login:Penguin02/06/28 02:37ID:MLKUrxTN
>>205
見たところあってそうなんだけどな。どこがおかしいのかわかんねーや。
ところで FORWARD のルールがそれじゃスカスカだ。
もうちっと固くしたほうがよかねぇか?
0207login:Penguin02/06/28 03:00ID:PZu/eU54
>>205
--to-destination 192.168.1.11 → --to-destination 192.168.1.11:80 かなぁ.
うちもうまくいかなくて結局delegateで逃げたけど.
020820502/06/28 03:24ID:l6vDOI3u
>ところで FORWARD のルールがそれじゃスカスカだ。
すごい気になるんですけど、どんなパケットが通るか想像できません。
たとえばどんなのが通るのかおせーて。
>192.168.1.11:80
だめだった。
0209login:Penguin02/06/28 03:46ID:tXunBKNC
>>205=208
-A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
を追加するとどう?
根拠は漏れの DNAT とは関係無いルールと
http://oggy.hn.org/conts/linux.html
から辿った
http://www.h4.dion.ne.jp/~juupp/pcunix/usage/linux/iptables-filter.html
だ。

FORWARD がスカスカなのは、
http://www.linux.or.jp/JF/JFdocs/packet-filtering-HOWTO-6.html
とかの図を見れば解る筈。
0210login:Penguin02/06/28 21:38ID:KNsT/qza
>>205

> -A PREROUTING -i ppp0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.11
が
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.11:80

それから
:FORWARD に
-A FORWARD -d 192.168.1.11 -p tcp -m tcp --dport 80 -j ACCEPT

これでどーよ
0211login:Penguin02/06/29 22:52ID:lGZLhgIu
ここはLinux板で数少ない役に立つスレだな。
0212login:Penguin02/06/29 23:41ID:4nTRLABN
>>210
どっちも違うな。つじつまが合わん。
バグでなければ iptables とは別の所に原因があるのだろう。
0213login:Penguin02/06/30 23:32ID:rlUFjQVm
http://www.linux.or.jp/JM/html/iptables/man8/iptables.8.html
ここを丸暗記しなさい。
0214login:Penguin02/07/01 00:41ID:gHRp2b10
>>213
丸暗記じゃ応用が効かないでしょ。
0215どうしよう02/07/01 01:33ID:3KHQAxcX
暗記じゃなくて理解するのです。
0216わら02/07/01 11:29ID:+IzpsJsE
1です。

去年の9月にたてたこのスレッド見たら笑ってしまった。

俺ってすごいDQNだなと思った。
0217 02/07/03 00:57ID:F+PSzLiB
You are DQN.
0218login:Penguin02/07/03 01:50ID:rn2Oo3wE
>>217
×are
○is
マジレスするなよ(藁
0219初心里奈坊02/07/03 19:17ID:xekDzak2
初心者里奈坊なんですが、どなたかお教えいただけないでしょうか?
ええと、NIC2枚刺しの赤帽さん7.3でFireWallを立てようとしています。
eth0側にローカルアドレスを、eth1側をグローバルと考えています。
16さんのスクリプトとある雑誌のipchainsのスクリプトを参考にして、
下記のようなスクリプトを作ってみました。

#/bin/sh

IPT="/sbin/iptables"

$IPT -t filter -F
$IPT -t nat -F

# default policy
$IPT -P INPUT DROP
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT DROP

#Loopback Interface
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

# Step 1
$IPT -A INPUT -s 192.168.5.0/24 -d ! 192.168.5.1/32 -i eth0 -j ACCEPT
$IPT -A INPUT -p icmp -s 192.168.5.0/24 -d 192.168.5.1/32 -i eth0 -j ACCEPT

# Step 2

# Step 3
$IPT -A OUTPUT -p udp --dport 1024 -s AAA.BBB.CCC.DDD/32 -o eth1 -j ACCEPT
$IPT -A OUTPUT -p icmp -s AAA.BBB.CCC.DDD/32 -o eth1 -j ACCEPT

# Step 4
$IPT -A INPUT -p tcp ! --syn --dport 1024 -d AAA.BBB.CCC.DDD/32 -i eth1 -j ACCEPT
$IPT -A INPUT -p udp --dport 1024 -d AAA.BBB.CCC.DDD/32 -i eth1 -j ACCEPT
$IPT -A INPUT -p icmp -d AAA.BBB.CCC.DDD/32 -i eth1 -j ACCEPT
0220初心里奈坊02/07/03 19:18ID:xekDzak2
# Step 5

# Step 6
$IPT -A OUTPUT -s ! 192.168.5.1/32 -d 192.168.5.0/24 -o eth0 -j ACCEPT
$IPT -A OUTPUT -p icmp -s 192.168.5.1/32 -d 192.168.5.0/24 -o eth0 -j ACCEPT

$IPT -A INPUT -p ! icmp -d AAA.BBB.CCC.DDD/32 -i ! eth1 -j DROP

$IPT -A OUTPUT -d 10.0.0.0/8 -o eth1 -j DROP
$IPT -A OUTPUT -d 172.16.0.0/12 -o eth1 -j DROP
$IPT -A OUTPUT -d 192.168.0.0/16 -o eth1 -j DROP

$IPT -A INPUT -d 10.0.0.0/8 -i eth1 -j DROP
$IPT -A INPUT -d 172.16.0.0/12 -i eth1 -j DROP
$IPT -A INPUT -d 192.168.0.0/16 -i eth1 -j DROP

$IPT -A INPUT -s 127.0.0.0/8 -i ! lo -j DROP
$IPT -A INPUT -s 192.168.5.0/24 -i ! eth0 -j DROP
$IPT -A INPUT -d 192.168.5.1/32 -i ! eth0 -j DROP

$IPT -A FORWARD -d 192.168.5.0/24 -i eth0 -j ACCEPT
$IPT -A FORWARD -s 192.168.5.0/24 -i eth0 -j ACCEPT
$IPT -t nat -A POSTROUTING -o eth1 -s 192.168.5.0/24 -j MASQUERADE

echo 1 > /proc/sys/net/ipv4/ip_forward
0221初心里奈坊02/07/03 19:19ID:xekDzak2
で、$IPT -P FORWARD を DROPにするとうまく動作しないのですが、
どこがいけないのでしょうか?

どなたかご教授お願いいたします。
0222login:Penguin02/07/04 09:33ID:eEQBB8kC
質問ばかりで申し訳ないのですが、
拠点-本社間で 拠点からのみ本社のLAN内WWW鯖を閲覧できるようにしたいのです。

拠点はグローバル固定IPです。
通常のiptables文に何を継ぎ足せばよいのでしょうか?
ちなみにRedHat7.2を使用しております。 どなたかご教授ください。
0223login:Penguin02/07/04 21:00ID:VG4GbJfc
>>222
ネットワーク図と今の設定がないと誰にもアドバイスできんぞ。
0224login:Penguin02/07/07 22:41ID:sDkdyr13
RedHat 7.3 をルータにしてマスカレードしてるのですが
時々ローカルマシンからWEBが見れません
見れたり、見れなかったりという状態です
ipchains に戻しても やはり同様の症状がでます。
ルータをRedHat 6.2 や Debian potato に切替えると正常に作動するので
回線は問題ないようです。
ipchains は rmmod で停止できるのですが iptableはどうやって停止するのでしょう?
組みこんだモジュールをrmmodして pppや eth をダウンしてもrmmod
できないので、ipchains に切替えるのに再起動しています
0225login:Penguin02/07/07 23:52ID:kuDvTQSU
うちも切れるよ RedHat7.3でマスカレードが
ポリシーを全部 ACCEPT にしても切れる
pppd や pppoe に問題があるのかも
rh7.3でadsl-setup してもpppoe.confができないから
7.1 で作ったやつを持つて来たけど
0226login:Penguin02/07/08 00:10ID:XwJX3NzB
>>224
まずマスカレードが原因か PPP が原因か切り分けないと。
でも ipchains でもダメな所を見ると pppoe が原因っぽいね。
>>225
7.1 は知らんが 7.2 以降だと pppoe.conf ができないのが正しいよ。
/etc/sysconfig/network-scripts/ifcfg-ppp0 で全部やる。
pppoe.conf を持って来たせいでおかしくなった可能性は?
0227login:Penguin02/07/08 02:37ID:awNNfZrK
>>7.2 以降だと pppoe.conf ができないのが正しいよ。
>>ifcfg-ppp0 で全部やる。
>>pppoe.conf を持って来たせいでおかしくなった可能性は?
わー、ズバリそれっぽい
pppoe.conf を削除して adsl-setup やり直したら今のとこ快調
レスポンスも速くなった気が
今までrp-pppoe使ってたからてっきり要るものだとばかり。
ありがとうございました!






0228login:Penguin02/07/08 15:04ID:eFKiuOMg
>>225
俺もpppoeを使っているが、squidかましているので
webは特に問題なし。
022922402/07/08 19:36ID:awNNfZrK
私のところは rp-pppoe を導入したのがエラーの原因でした。
pppoe.conf があると
/sbin/adsl-start(pppoe) /usr/sbin/adsl-start(rp-pppoe)共に
/etc/pppoe.conf を参照してしまうようです
カーネル2.2で安定していた rp-pppoe 3.3 をコンパイルして入れたのがマズかったようです。
rp-pppoeを削除すると安定して動作しています
/sbin/adsl-status では相変わらず /etc/pppoe.conf が無いと文句を言lっていますが
青いペンギンさま、ありがとうございました
iptables とは話題がずれてしまいました。

0230 02/07/08 22:24ID:vi+kfEIM
mirrorでlocalにmirrorしたいんですけど、
20でDROPします。
wgetする時は、--passive-ftpでいいんですけど、
mirrorの場合、どうすればいいですか?
0231login:Penguin02/07/10 20:55ID:qf6t6/3T
# Generated by iptables-save v1.2.6a on Wed Jul 10 00:34:34 2002
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [946:110573]
:block - [0:0]
-A INPUT -j block
-A FORWARD -j block
-A block -m state --state RELATED,ESTABLISHED -j ACCEPT
-A block -i ! eth0 -m state --state NEW -j ACCEPT
-A block -j DROP
COMMIT
# Completed on Wed Jul 10 00:34:34 2002

一般人ですがこんなもんで十分ですか?
0232デフォルトの名無しさん02/07/17 19:33ID:BEY/5JhK
ip6tablesは使ってますか?
増カレー度の必要性はないから
フィルタリングにしか使って
ないのでしょうか?

今いちipv6におけるiptablesの
使い道がよく分かりません。
0233名無しさん@Emacs02/07/18 00:41ID:SLqjV1Ug
IPv6って、基本的に全部グローバルサーバ
なんで、自分の身は自分で守ろうってこと
だろ。

それにIPsecがあるんだから、FireWallは
役にたたないので、自分で守るってこと
だろ
0234login:Penguin02/07/31 22:43ID:sepoqRm7
RedHat 7.3 (Xなし、iptables でフィルタ)で samba 動かしてます。普段は ssh でログイン。

iptables を稼動しているときに、samba を再起動すると Windows から見えなくなります。
iptables を止めて、samba を再起動すると、もちろん、再び見えるようになります。
そして、iptables を稼動させても、Windows から見えます。
(何をやっても、ssh の接続は問題ないです。)

nmap localhost すると必ず139は空いています。

なぜかわかりますか?

# デフォルトのチェインの初期化
$IPTABLES -F INPUT
$IPTABLES -F FORWARD
$IPTABLES -F OUTPUT

# 下記ルールにマッチしないパケット全部を拒否
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP

# ループバックアドレスに関してはすべて許可
$IPTABLES -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
$IPTABLES -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
# LAN 内での SSH 接続を許可
$IPTABLES -A INPUT -p tcp -s $LOCAL_NET -d $THIS_HOST --dport 22 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -s $THIS_HOST -d $LOCAL_NET --sport 22 -j ACCEPT
# LAN 内での SAMBA 接続を許可
$IPTABLES -A INPUT -p tcp -s $LOCAL_NET -d $THIS_HOST --dport 137:139 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -s $THIS_HOST -d $LOCAL_NET --sport 137:139 -j ACCEPT

よろしくお願いします。
0235login:Penguin02/08/01 12:34ID:88yj7yTC
>>234
それは漏れもかなり悩まされたよ!
$IPTABLES -A INPUT -ptcp -s $LOCAL_NET -d $LOCAL_NET --dport 137:139 -j ACCEPT
でいけると思う。理由はわからん。
0236名無しさん@Emacs02/08/01 18:02ID:5wqD4t0I
>>234
http://www.samba.gr.jp/project/translation/2.2.2/textdocs/BROWSING.txt
あたりを読んで,NetBIOSについて理解するのが先でなかろうか?

$IPTABLES -A INPUT -p udp -s $LOCAL_NET --dport 137:139 -j ACCEPT
とすれば多分いけるだろうけど。
■ このスレッドは過去ログ倉庫に格納されています