Sponsored Link
 戻る

280.めっさ疲れた

投稿者: ぴゅあ - 2003年07月19日 9時47分56秒

 「Postfixにおいてバーチャルドメインでメールボックスをローカルとは別に持つ」
 というのをずっとぶっ通しで試してたけど・・・
 もしかしてこのバージョンではまだダメなのか?@1.1.11-11
 と思っておくことにした(詳細は疲れたので書くのをやめとく)
 殆どの解説が2.0.xであるかローカルと共有だったりだもんなと
 1.1.11近辺で動かしているのもあったけど肝心なところの情報不足
 で取り敢えず断念
 ローカルと共有は前にやったのでできてるからまぁ取り敢えずはそれで我慢してもいいし
 途中もしかしてとそう(↑)思って最新版@2.0.13をmakeしようかとも思ったけどやめといた(ソースをダウンロードして解説読むまではしたけど)

 とRed Hatから提供されるまで待つのか?・・・ってことになることになりそうだが
 それぢゃあダメなのでインストしてみるかも知れんがそれは判らん
 やらんかも(と言いつつ缶こぉひぃ買いに行って戻ったら解凍までしちまったが)

 とソースに付属のINSTALLは読むのも今はヤになってくるが他の解説ではmake installでパス関係を設定するだけくらいらしいので(@1.1.11の例だったが)途中でやめたーと思っても少しはやってみとくかなと(パス関係はmain.cfで散々見てるしそのまま指定すりゃいいし)
 ダメならローカル宛でよしとしとこぉってことで

 でとんでもなく長い時間探し回ってるときに見つけたもの
 Pyzarさん自身前に出したのと同じだったかな?
 別もののような気もしたんだけど・・・
 http://www.kobitosan.net/postfix/ML/archives/msg02983.html
 やりとりはあまりよくない印象も受けるんだけど
 いちお話してたのと同じような内容になってたりする

 ねむねむ
コメント>>

279.と・・・

投稿者: ぴゅあ - 2003年07月19日 2時19分55秒

 Postfixでバーチャルドメインは・・・
 苦戦中
 一般サイトではあるがちゃんと検証して書いてるんだろうか・・・
 と思ってしまったりする
 尤も読んで悩むってことは説明として足りないものがあるってことだが

 Postfixのオリジナルドキュメントにも誤りあり・・・
 ちっちゃいこと(直ぐ判る・・・かも?)だから(邦訳サイトにでもだが)伝えるほどのことでもないかな

 取り敢えず1からバーチャルドメインに関して情報を見直してみるつもり


 時間待ちのまま忘れてた(照)
コメント>>

278.前から書こうと思ってたのを書いておこう

投稿者: ぴゅあ - 2003年07月19日 0時20分21秒

 rpmの情報をデータベース化するもの
 ・・・の書き直した最初のステップのスクリプト

rpmlist.sh:
#!/bin/sh

DEV=/mnt/cdrom
FPATH=$DEV/RedHat/RPMS

if [ $# -ne 1 ]
then
    exit
fi

mount $DEV

for file in `ls $FPATH`
do
    if [ $file != TRANS.TBL ]
    then
        echo "-----RPM-FILE:$file-----"
        rpm -qp $1 $FPATH/$file
    fi
done

umount /mnt/cdrom
---ここまで

# chmod 700 rpmlist.sh
# ./rpmlist.sh -i

 元々は
 rpm -qpl /mnt/cdrom/.../* > list.txt
 だったかなぁ?忘れた(照)
 としていくつかのPerlスクリプトを駆使してデータ化,rpmファイルとの関連付けの加工をしていたのを簡単に処理できるようにしたもの
 実際にはこれと共にでもデータ化をするのだけどそれはまだ入れてない
 Win上で動かしたPerlスクリプトを若干改造して動かすだけだけど(そのコードはそこそこ長いので出さないけど)
 いちおシェルスクリプトのひとつのサンプルとして
 応用する参考にはなるだろう


 サーバールームの4台目のサーバーマシンを再構築ちぅ
 先日ルーターとハードディスクを交換してそのまま置いてたやつだけど@P-133
 もう1台のPostfixテストマシンとしてとsamba, httpの実験をする予定
 httpの設定自身は簡単であって最小構成から一からのインスト(といっても取り敢えずRPM)に何が必要かというのを確認するだけだけど
 このマシンがWin版httpサーバーの代わりとして動き出すことは・・・考えたいけどないんだろうなぁ。。。(アプリサーバーとして重いかもしれないというのが若干気になるとこだけど/問題なかったとしても)
 だってホントは今httpサーバーになってるマシンはファイルサーバー@Winになる予定だったけど1基辺り20GB前後のHDDしか認識できないから・・・パワーはあり過ぎるくらいあるんだけど残念ながら
 のでsambaサーバーとなるには苦しいので・・・勿体無い

 あとサーバーであるためのハードは
 という話もあるけど(前から記事にしようと思っていること)
 それはそのうち記事にする
コメント>>

277.Postfix中間報告 その2?(もっと前にもあったよーな・・・(汗))

投稿者: ぴゅあ - 2003年07月18日 8時50分39秒

 sendmailはその暗号かいってなようなcfファイルに触りたいと何度も思ってもいちも躊躇ってしまっていたものだったけど
 こんなに簡単でホントにええんかいっ ってくらいPostfixの設定は簡単(解ればね・・・だが)
 他の多くのサーバーと設定ファイルの構造(設定の仕方もかな)が似ているという点もとっつき易いと感じるとこなんだろう

 ステップ1とステップ2の触り程度が終わったという感じだけどステップ2の大半も合わせて終わってしまったという感じか(ステップは記事269を基準に)

 ステップ1のローカル専用のメルというのは非常に簡単
 というか最初に実験したときのがそのまま(最初の最後の状態からバーチャルドメインを無効にしただけ)という感じ

 触るのは/etc/postfix/main.cfだけ

・触る必要のない項目(テンプレートとなる元のmain.cfが適切に設定されているとして)
command_directory, daemon_directory, alias_maps, mail_spool_directory, local_destination_concurrency_limit, default_destination_concurrency_limit, debug_peer_level, sendmail_path, newaliases_path, mailq_path, setgid_group, manpage_directory, sample_directory, readme_directory, alias_database

・設定項目(長くなるので詳細は割愛)
myhostname, mydomain, myorigin, inet_interfaces, mydestination, mynetworks, relayhost, smtpd_banner

・明らかに要らないもの
 mynetworks_style

 残りはdebugger_command以外コメントアウトされている状態でよい
 debugger_commandはX用に書かれているのだが・・・取り敢えずそのままで問題は出てないということで・・・後で調べる
 あといくつか(default_privsは一般サイトの解説に実例として設定されているのだが・・・)不明な部分はあるけどそのまま

 つまり「設定項目」に挙げた部分を設定するだけで動く

 そしていくつか判ったこと

・relayhostを書かないと・・・(特にこの辺は何処にも説明がないのだが)
 宛先メアドのドメインからDNSサーバーを利用してそのドメイン内にあるSMTPサーバーを探し出すらしい
 そして「直接」そのサーバーにメルを転送するらしい
 遠いサーバーだったりすると結構時間が掛かることにもなるんだろう(なんかサーバーの応答が遅いよとかの苦情という形で出てきたりするんかな?)

 relayhostに設定するのは当然ながらリレー先のSMTPサーバー
 ただローカルで稼動させる場合1つの問題があるかもしれない
 それはローカルの各マシンがDNSサーバーに登録されていない場合(これは多いのかもしれない?)
 ここにホスト名を書くとホストが見付からないと言ってリレーできない(Postfix自体が立ち上がらなかったんだったかな?@OKとは出てたけど)
 だからIPアドレスで指定しないといけないのだ(次で説明)

・/etc/hostsファイルは参照されないらしい
 PostfixはDNSサーバーを直接見て/etc/hostsファイルを見てくれないらしい
 ので先のrelayhostの問題(?)が出てきたりする
 尤も全てIPアドレスで使ってもいいんだろうけどね
 ただしサーバー用に固定IPを持っていないネットワークではドメインを持つ必要がある(なんでかはさっきまで書こうと思ってたけど疲れたから省略しとこう@バーチャルドメイン・バーチャルホストといった話にもなる)
 /etc/hostsファイルを参照してくれないというのはなんか設定があるかもだけどね

 またこれは/var/log/maillogにそんなホスト知らんとwarningとしてポロポロログに出てくることになるんだが
 それは知らんと言うかどういうかだけでログが増えたりはせんのだろうということで気にしなければそれでもいいのかもと思ったりもした
 因みにWU-IMAPはちゃんと/etc/hostsファイルを見ている

 また折角ホスト名を設定してもそれは生かされてない(使われてない)という感じもあった
 ドメイン名は必須にもなるだろう(IPアドレスでってなら別)
 それはこのサーバーが受け取るドメイン(或いはIPアドレスで)を指定しないといけないから
 そして他のサーバーへのリレーもしたいならその辺の情報が使われることにもなる

・mynetworksはちと違う?
 という感じがした
 説明を読むのが足りんのかも知れんけど?
 このパラメタはそのまま読むとPostfixにアクセスできるクライアントを指定する(制限する)ためにあるように読めた
 しかし実際は・・・
 relayhostに設定されたSMTPサーバーにリレーが許可されたクライアントであるかを指定するらしい(設定方法によるのかも知れないが)
 この点がもしかするとPyzarさんが以前苦戦したsendmailに関係している部分があるのかも?・・・と思ってここはちと書いてみようかと思ったのだった

・Postfixのリレーはこう動く(らしい)
 relayhostを設定すると指定されたサーバーがリレー先のSMTPサーバーということになる
 これは改めて言うまでもなく

 mynetworksに設定されたネットワークとの関係がどうなるか
 これが大切な部分でありなんか何処のサイトでもちゃんと解説されてなかったりなことだったりするもの(全然ないというのが殆どであったとしても解り難いかと思う@あるといっても設定マニュアルくらいが現状か?)でありなことだったりする

 もうさっさと解り易く書いてしまえば

・そのサーバー宛のメルは何処からでも全て受け付けられる(拒否設定がなければだろう)

・mynetworksで指定されたクライアントはそれに加えて他のSMTPサーバー宛のメルを転送してもらうことができる
 それ以外は拒否される(つまりそのドメイン内のユーザーにのみ送信できる)

 長い話はやっぱやめて(書いたが消した)
 そういうこと
 らしい

 つまりそういう制限をしているプロバイダのサーバーではそのプロバイダにダイヤルアップしてメールサーバーにアクセスしないと他のドメイン宛にはメルが送れないということ
 ただし他のプロバイダからでもそのサーバー内のユーザーには送ることができる(それは別途制限しているプロバイダもあるのだろう)
 これは多方面へのリレーを禁止するということで知らないホスト(=クライアントマシン)からの踏み台(SPAM)防止にもなるのだろうかと思ったりする
 (FORMでの制限ではなくTOでの制限ということね)

 たまたま実験のバターンで2まで終わっちまったかなって感じだけど
 あとは3のバーチャルドメインを片付ければOKってとこかな?

 先に端折ったドメインの必要有無の話とかローカルでのメールも使いたいけど専用のサーバーマシンを用意できないというときにどうするかとかって話辺りも端折ることにしたけどこの辺は後でまとめる話題として
 先のような辺りも後々色々なパターンでまとめとかんとね
 まだまだ細かいところは解説してるところもないし色々と調べてまとめとくのがいいと思うし
 この辺の絡みでローカルなドメインは不要になるのかな(考えない方がいいのかな)って思えもするしイントラネットでもDNSサーバーの設定を考えた方がいいような気がしてるし固定IPでないインタネ向けの場合でもDNSキャッシュサーバーにローカルの設定をするようなこともあった方が良さそうにも思えたりしてるし
 それは次の実験のバーチャルホストで絡んできそうでもあるからこの辺も調べることになるかなと思いちぅ

 てかバーチャルホスト絡みの実験も簡単に設定が終わってしそうな気がしてるけどね
 それだけPostfixは簡単で
 簡単でありながら適切に動くように設計されてるって感じがしてるかな
 少なくともsendmailで苦労するのとは全然違うと思う

 あ ステップ4
 sendmailコマンドの実験か
 これはもっとすぐに終わりそうだけど
 ってか今やって直ぐに答えが出るくらい簡単そうだが
コメント>>

276.そしてPostfix実験途中経過

投稿者: ぴゅあ - 2003年07月18日 4時24分18秒

 まだ1つ目の実験をやったとこだけど
 (入れ直したArGoSoft Mail Serverがなんか上手く動かなくなってるのよね/シェアウエア版とか色々入れちまったからゴミが残ってるんだろうか)

 実験1:ローカルなネットワークで仮想などメインを作りローカルなメルが使えること
 基本的に考えた設定で「非常に簡単に」実現できた
 彼方此方にある解説サイトでの説明ではよく解らんかったこと,こんな風に動くのかといったことも色々と解った(それはいずれちゃんとした形にまとめて公開するとして)
 その実験中外へ出さないつもりが直にメアドの先のSMTPサーバーに勝手に繋がったりだったのだが(その辺がどういう意図でこう設定してそうでないときどうなるのかとかって解説はまずないのよね・・・@Postfix自身の設定マニュアルにも)

 今はまだ仮のテストサーバー@Win上のを直さんとなので実験2に行く辺りで止まったままだけど
 続きは明日(かな?)

 「どういう意図でこう設定して・・・」というのは何処の解説サイトにもまずないから(特に解り易く)その辺が特にうちで重点を置こうとしているところだけど
 とそれに関連してRPMでも前から思うところもあって

 なんでRPMを作ったときのconfigureパラメタとか添付されてないのかな
 とか思ったり
 探し切れてないだけのことかも知れないけど
 それがあるとどういうコンパイルがされたものであるのかというのも解るし
 SRPMSにあるソースからカスタマイズしたいときでも各本家サイトから最新版を持ってきてコンパイルしたいときでも各々のディストリビューションの持つポリシー(構築方針)に外れることなく参考にしてビルド(コンパイル或いはconfigureか)できると思うんだけど・・・
 いつもぢぶんでmakeしようかなと思うときに一番の障害となって躊躇うのは元々どういうオプションを指定してるのよってとこだわな
 それで「やっぱり保留」ってこともかなりあったりする・・・
 のだが あちしは・・・
コメント>>

275.RE: iptables その2

投稿者: ぴゅあ - 2003年07月18日 4時11分56秒

> という順番は有効だという考え方はいいんですよね!?
 は「この場合」としてくけど合ってます

 簡単に説明しておくと

> # router config ルーターはhttpで設定します

> # ingress ・・・バケットを拒否しておきます
より後に書かれた場合のことを考えるとすぐに解るでしょう

> $iptables -A INPUT -p tcp -m state --state ESTABLISHED --sport 80 -s 192.168.0.1 --dport 1024: -d 192.168.0.2 -i eth0 -j ACCEPT
の"-s 192.168.0.1"は
> $iptables -A INPUT -s 192.168.0.0/16 -i eth0 -j DROP
の"-s 192.168.0.0/16"に含まれるというのは解りますよね

※次行の
> $iptables -A INPUT -s 192.168.0.0/24 -i eth0 -j DROP
は意味ないです
 "192.168.0.0/24"は"192.168.0.0/16"の一部です
・"192.168.0.0/24"は"192.168.0.0/16"での"192.168.0.*"〜"192.168.255.*"のうちの"192.168.0.*"として含まれている
 全くこの場合とは関係ない話だが
 $iptables -A INPUT -s 192.168.0.0/24 -i eth0 -j ACCEPT
 $iptables -A INPUT -s 192.168.0.0/16 -i eth0 -j DROP
というルールが必要だとすると1行目の"-s 192.168.0.0/24"は意味を成してくる
 また
 $iptables -A INPUT -s 192.168.0.0/16 -i eth0 -j DROP
 $iptables -A INPUT -s 192.168.0.0/24 -i eth0 -j ACCEPT
 としてしまうと2行目の条件は1行目に含まれてしまうので2行目のルールが評価されることは絶対にない
 これが書く順番に注意という実例でもある
 (と続きを書かなくてもこれで理解できてしまったかな?(照))

 いちお話を戻して
 「# router config ルーターはhttpで設定します」が後に来てしまうとここに書いてあるルールはDROPとして並んでいる「# ingress ・・・バケットを拒否しておきます」のルールの方で常にマッチしてしまって「# router config ルーターはhttpで設定します」らのルールが評価されることは絶対になくなります
 別の考え方をするなら「# ingress ・・・バケットを拒否しておきます」のルールがあった上で「# router config ルーターはhttpで設定します」は先に対する例外として評価しないといけないから「# ingress ・・・バケットを拒否しておきます」より先に書かないといけないと考えると解り易いのでしょう

 この場合「先に評価させないといけない」というルールであったから先に書かないといけないわけで
 先に挙げたiptablesの設定例(259の記事)にある
> ### 外部ネットワーク ###
> # OUTPUTルール定義
> $IPTABLES -N OUT_WAN
ではdomainやntpに対するルールはデスト(-d)に対する偽装IPのDROPより後に書かないとダメということになります
 なんでかってのは考えてみて
 ポイントは

・偽装IPのDROPはデスト(-d)を評価している
・domain,ntpではソース(-s)を含めて評価している
 このときデスト(-d)の評価がパスしていることを前提としている

 おわかりかな
コメント>>

274.RE: iptabes その1

投稿者: ぴゅあ - 2003年07月18日 3時52分37秒

> manを読めばわかるでしょうか?
 解りません

> ・・・と答えてくれるって言うのは…理解できません。
 捉え方が根本的に間違っているからです(それは凡そ2つのことに関して)

 先に

> pyzar=5
> geocities=2
> とプログラムに教えておいて
> $pyzar-$geocities=?
> と問い掛けると
> $pyzar-$geocities=3
> と答えてくれるのはわかるけれど

 と

> pyzar-geocities=?
> と問い掛けて
> pyzar-geocities=3
> と答えてくれるって言うのは…理解できません。

 ってところからまず間違ってるんですね

 細かいところは抜きにして実例を挙げた方が早いと思うので

 前者の「わかるけれど」はこの場合シェルスクリプトを例として挙げていると思うけど
 後者の書き方ができるものとして大抵知っていそうな言語にはBASIC,C,Java等があります

 前者の書き方に似たもので例えばPerlだと

 $pyzar=5
 $geocities=2
 とプログラムに教えておいて
 $pyzar-$geocities=?
 と問い掛けると
 $pyzar-$geocities=3
 と答えてくれる

 となるんです
 似てるけど違うというのが解るでしょ
 しかし
 どれもそれぞれがそう書ける言語なんです

 シェルスクリプトだと定義のときは"$"なしで,参照のときは"$"付きで示すという規則(構文規則)になっています
 これが頭にあるもんだから"$"がないのに参照できているのは変だと思ったんでしょう
 これが1つ

 もうひとつは値を持てる変数とラベル(単なる名前)をごっちゃにしていることです
 ってかそれはここではあまり重要ではないことだと思うけど

 それよりも
> どうして人間が勝手に付けた名前が理解できるのかわかりません。
 ってのが根本的におかしいです
 だって
> pyzar=5
> geocities=2
 に出てくるpyzarやgeocitiesって名前(変数名或いは定義名等)は「人間が勝手に付けた名前」ですよ?
 「どうして人間が勝手に付けた名前が理解できるのか」が解らないという点に矛盾してませんか?
 というよりも
 そもそも各種言語は人間が解り易いように人間が勝手に作ったものです(突っ込み趣味人種相手の細かいフォローは放っておくとして)
 のでpyzarやgeocitiesって名前を人間が勝手に付けられるというのも人間が勝手にそういう仕様を作っただけのことです@作ったからできる
 そもそも言語が作られるというのはそういうもんですね(話し言葉としての言語にもそういった向があると言えたりするんだろう/そしていろんな国の言葉がある)

 と まずしておいて

> > 単なる識別名ね(ルールの塊に付けた名前)
 ラベル(識別名)の例としては
 (シェルスクリプト風に@goto命令なんてないかもだが)

 var1=10  # 被除数
 var2=5   # 除数
 if [ $var2 -eq 0 ]
 then
  goto ERR_MSG
 fi
 echo $var1 / $var2
 exit

ERR_MSG:
 echo 0では割れないよ
 exit

 ここでERRはラベルです
 goto ERR_MSGは$var2が0だったときに割り算は計算できないからってことでERR_MSGというラベルを探してそこへ飛んで続く処理をしろってことをやらせてます
 ERR_MSGは単なる名前であって何処にあるかという場所を示す指標になるものです(先に行った通りこれは実際にシェルスクリプトを書いてもエラーになって動かないかも知れないですよ)
 var1やvar2とERR_MSGは明らかに違うものというのが解るでしょ
 iptablesにおいてnameとかラベルとかって呼び方をしたのはこのERR_MSGという単に付けられた識別名に相当するものです
 こういう説明は要らんのかも知れんけど

 -jはjumpの略です
 たまたまだけど今例にしたgotoと同様の意味です・・・ってのは言うまでもないだろう
 つまり-j XXXは-Nで定義されたXXXを探してそのブロックのルールを評価しろって飛び先を示す適当にXXXと付けた名前(ラベル)でしかないのです

 ただしXXXに使う名前は既に存在するINPUTやOUTPUTなどと同じ名前にはできません(或いは-Nで同じ名前で二重に定義することも)

 これはシェルスクリプトだろうがCとかJavaとかでも変数名やラベルに元々持っている単語(キーワード)を使うことはできないといった仕様としての制限があります(そういったキーワードのことを予約語と呼んだりもする)
 シェルスクリプトではその辺の制限を構文仕様で少し和らげているとも言える書き方ができるようになっていたりするが

 折角だから例
 シェルスクリプトの場合
・"if=10"の"="の前後には空白を入れてはならない
・定義名を使うときは"$"を付けて"$if"のようにする
 という条件を付けてやると予約語である"if"と間違って認識されることを防げる
 たぶんだけどこれがシェルスクリプトの言語仕様としての意図があるところなんだと思う

 ついでに例2
 Perlだと
・変数名の前には"$"をつけ"$if = 10"とかする
・参照のときもやはり"$if"とする
 これによりif関数と混同されることはない

 ついでに例3
 BASICやC,Javaなんかだと
・"if=10"はエラーとなる
 何故なら"if"は予約語だから
 他の変数名にしなければならない

 根本的に間違った理解の仕方をしているというのが解っただろうか

 といってあちしはなんも解ってないからだめぢゃー
 と思っているようではダメです
 そうだったのかと思うかどうかが大切なことでしょう
 そのあともっと詳しく知ろうと思うかどうかは個々の気持ち次第
 知ろうと思わなくてもそれは(今のとこ)ぢぶんには知る必要はないと思っただけのことで別に無理して知る必要はないんです
 捉え方が違っていたということを知るのは別のひとつのことで
 だめぢゃーと思うかそうだったのかと思うのかはまた全く別の次元の話で
 少なくともだめぢゃーと思ってしまうよりはそうだったのかと思う(思うだけで十分)気持ちが大切なんだろうと
 少なくともいつもすぐだめぢゃーとばかり口走るような人だと(そういう人も結構多いんだが)そのことができるようになるかどうかではなく何事に関してもだめぢゃーばっかりで何も出来ないんだろうな(しないんだろうな・・・か?)と思ったりするけどな
 ということです(この微妙な意味解るかな)

 きっと長いので一端閉じ
コメント>>

273..RE2: iptables

投稿者: Pyzar - 2003年07月17日 21時38分54秒

>ぴゅあさん
レスありがとうございます

でも…よく理解できない…

> 単なる識別名ね(ルールの塊に付けた名前)
>  だから本来の言葉とか変換とか全く気にするものではない
>  「こういった書き方ができる」というのが本来の言葉ってことにもなったりするかな
>
>  ちと解り難いかもだけどman iptablesを見れば書いてあります
>  (サイト用に分類・整理したのがあるけどまだ作業中でアップしてない(照))

どうして人間が勝手に付けた名前が理解できるのかわかりません。

たとえば
pyzar=5
geocities=2
とプログラムに教えておいて
$pyzar-$geocities=?
と問い掛けると
$pyzar-$geocities=3
と答えてくれるのはわかるけれど
唐突に
pyzar-geocities=?
と問い掛けて
pyzar-geocities=3
と答えてくれるって言うのは…理解できません。
manを読めばわかるでしょうか?

で…別件なのですが

251>  同一のの順番は間違えないこと@書いたつもりでそれ以前のルールにマッチしてしまって
251> 特にACCEPTされてしまったときには後ろにいくら書いてもそこまで到達することはなくDROPされるということが
262> 起きなかったりするので(ACCEPT/DROPが逆の場合も同様)

# router config ルーターはhttpで設定します
$iptables -A INPUT -p tcp -m state --state ESTABLISHED --sport 80 -s 192.168.0.1 --dport 1024: -d 192.168.0.2 -i eth0 -j ACCEPT
$iptables -A OUTPUT -p tcp -m state --state NEW,ESTABLISHED --sport 1024: -s 192.168.0.2 --dport 80 -d 192.168.0.1 -o eth0 -j ACCEPT

# ingress in eth0から入ってくるルーターとのDNS通信・ルーター設定以外のプライベートアドレスからのバケットを拒否しておきます
$iptables -A INPUT -s 192.168.0.0/16 -i eth0 -j DROP
$iptables -A INPUT -s 192.168.0.0/24 -i eth0 -j DROP
$iptables -A INPUT -s 172.16.0.0/12 -i eth0 -j DROP
$iptables -A INPUT -s 10.0.0.0/8 -i eth0 -j DROP
$iptables -A INPUT -s 127.0.0.1/32 -i eth0 -j DROP

という順番は有効だという考え方はいいんですよね!?
コメント>>

272.RE: iptables

投稿者: ぴゅあ - 2003年07月17日 15時26分15秒

> この"AAA"って自分にとってわかりやすければ本当に"AAA"でもいいんですよね??…

 そうです

 所謂一般には(?)ラベルって呼び方がされたりするもので(iptablesのmanでは名前(name)と呼んでるようだが)なんでもいいです
 ただしINPUT,OUTPUT,FORWARDってのは使えません
 これの代わりに使われるものだから当然でもある

 デフォルトでファイアウォールなし以外を選択するとRH-Lokkit-0-50-INPUTってのが出てきたりするでしょ
 それは同じようにして-Nで作られたもの

 因みにiptables-saveとして表示されるもので

   *filter
   :INPUT ACCEPT [0:0]
   :FORWARD ACCEPT [0:0]
   :OUTPUT ACCEPT [0:0]
   :RH-Lokkit-0-50-INPUT - [0:0]

はINPUT,OUTPUT,FORWARDは予約語みたくも存在する(必ず存在する)ものでその下にある:RH-Lokkit-0-50-INPUT - [0:0]が

   /sbin/iptables -N RH-Lokkit-0-50-INPUT

でまず追加されたと読み取ることができる

 それに続く

   -A INPUT -j RH-Lokkit-0-50-INPUT
   -A FORWARD -j RH-Lokkit-0-50-INPUT
   -A RH-Lokkit-0-50-INPUT ... -j ACCEPT
     :

はそれぞれ頭に/sbin/iptablesを付けてやればそのままシェルスクリプトに書いてやるものにもなる
 これらをそのまま並べてテーブルの初期化とかのコマンド行を加えてやればそのままシェルスクリプトとして復元できてしまうってことでもある

 でもってここに出てきているRH-Lokkit-0-50-INPUTはAでもBでも可


> で、iptablesはこの"AAA"をどうやってiptablesが使用する言葉…本来の言葉に変換するのでしょうか?

 先の通りラベル(名前)としてそのまま使う
 単なる識別名ね(ルールの塊に付けた名前)
 だから本来の言葉とか変換とか全く気にするものではない
 「こういった書き方ができる」というのが本来の言葉ってことにもなったりするかな

 ちと解り難いかもだけどman iptablesを見れば書いてあります
 (サイト用に分類・整理したのがあるけどまだ作業中でアップしてない(照))


> なんか一般常識みたいで…どこのサイト見ても書いてないのですが…

 書いてないというのは「-Nに関する説明が」ってことぢゃないですか?
 前に-Nで定義したブロック内で・・・を含めて-j RETURNの使い方を書いたけどあちしもこの辺ちゃんと説明されているところがないんでmanを十分に読み直してそう(書いたようなこと)であると判断
 そこまで使う(使える)ことに気付いてないのか用がないのかで説明を書く人が居ない(少ない)か、そこまで使わないので解ってる人が少ないから書かれてないとかではないの?と思ったり

 常識とかってもんでは少なくとも「全くない」です
コメント>>

271.iptablesのnameの定義について教えて下さい(2)

投稿者: Pyzar - 2003年07月17日 9時26分17秒

>ぴゅあさん
レスありがとうございます。
>
>  -N INPUT_DROPてあるでっしゃろ
>  これがユーザー定義チェインの名前の宣言
>  これでINPUTとかOUTPUTとかみたく指定して使えるようになる

なんか一般常識みたいで…どこのサイト見ても書いてないのですが…

> ルールが共有できるなら
>  -N AAA
>  -A INPUT ... -j AAA
>  -A OUTPUT ... -j AAA
>  なんてのもアリ

この"AAA"って自分にとってわかりやすければ本当に"AAA"でもいいんですよね??…
で、iptablesはこの"AAA"をどうやってiptablesが使用する言葉…本来の言葉に変換するのでしょうか?

# (~ヘ〜;)ウーン
# 質問の意味がわかって頂けるでしょうか!?
# なんか常識みたいだし…
コメント>>


トップへ