★ループバックアドレス★
ん? ループバックアドレスって一つじゃないの? 調べたら、
127.xxx.xxx.xxxはすべてループバックアドレスになるそうです。127.0.0.0/8なので。もち
ろん127.0.0.0は問い合わせ用、127.255.255.255はブロードキャスト用ですが。なぜこんなに
広くレンジを取っているのだろう?
★設定ファイルの捜し方★
基本的に設定ファイルは/etc以下か/var以下、自分のホームディレクトリ以下(通常隠しファイル)に置かれるお
約束になっています。でも大量のファイルがあってどれがどれやら・・・
・コマンド類だったらmanで出てくるマニュアルの最
後あたりに載っています。
・locateで捜す。ファイル名が分かってる場合、高速。文字列が含まれて
るディレクトリ・
ファイルを表示します。>locate hogehoge
GUIで名前が違ってる場合の正式名はプロパティに出てます。
・分からない場合、findで捜す。/etc以下でhogehogeという文
字列が書き込まれている
ファイルを捜すには、>find /etc -type f |
xargs grep hogehoge
★Linuxサーバはノー
トPCに変更★
LinuxマシンのメインはノートPCに代えました(以下、轟天号と
命名)。ノートPCで動かす場合、古めのPCがいいです。新しすぎると対応で
きないデバイスがあって動かない可能性もあります。また、上手くいかなくても情報量が多いので何とかなる可能性が大きい
です。ノートPCは場所を取らず、低騒音で比較的停電に強いので家庭内サーバに向いてます。※新しいマシンは発熱量が大
きすぎでちょっと問題あるらしいです。
個人的にはIBMのノートPCをお奨めします。IBM
はクセのないパーツ構成なので割とすんなりインストールできるようです。ThinkPadは数が出てるので良品の中古も
多く、ユーザー数も多いので問題が起こったときも解決しやすいでしょう。また、IBMはマニュアル類をHPからダウン
ロード出来るようにしてるので、取説が欠品でも大丈夫。古いマシンでもきっちりサポートしてるようです。
僕は轟天号、ThinkPad560Eをオークションで2万円で購入しました(2002年5月)スペックはP-166
32MRAM(増設済)
2.1GHD。P-133の560だと1万5千円程度。P-100くらいだと1万円少々のようです。なお、僕はCD-ROMドライブのない560Eを買っ
てしまいましたが、初心者はCD-ROMドライブ付きのを買った方がいいです。僕の
場合、入ってたWindows98が壊れててLANカードが動かず、1FDLinux使ってデスクトップ機内蔵のCD-
ROMからネットワークインストールしました…。簡単じゃなかったす。いくつかの1FDLinuxはカスタマイズ
(LANカード設定に必要)にRHL7.2にないコマンドが必要で(libc-5とかapioとか)探して回りました。
RHLに置いてないんだもの。疲れた。勉強にはなったけど。とりあえず、こいつはルーターファイアウォール各種サーバ
に。一応、モバイル用途も考えているのでWindows98も再インストール。
…をしたのですが、やっぱり轟天号からWindows削除しました。理由は98使ってるとLinux使えないという至極当たり前の話のため。ただ、こ
のスペックでクライアント用途に使うのでしたらWin98の方がいいです。適当に切りつめれば
300MByte行かないし、IEもサクサク動きます。で、Linuxの方はGNOME入れると1Gくらいになってしま
う(詳しい人が取捨選択すればもっとコンパクトになるかも知れないけど)し、処理も激重です。うちの轟天号では
Mozillaの起動に何分もかかります。ブラウザはw3mを使うしかないですね。
さて、インストール終わったらXが起動しません。うそーん、「クセのないパーツ構成」って言ってたやん、自分。もう、エラーメッセージ見て、あちこち検
索しまくりました。
その時の失敗その一:設定ファイルをWindowsの方でなおしていたが、改行コードが違うのをすっかり忘れ
(UNIX系はLF、Windows系はCR+LF、MACはCR)なんでここでエラーが出るのかとクビを捻ってまし
た。一見何も無いところでエラーが出るので不思議だなと(死 3日ほど気づかず
(爆)
失敗その2:バージョンが違うと設定ファイルも変わります。Xの設定ファイルはバージョン3以下だと
XF86Configなのですが、4になってXF86Config-4に変わりました。僕は必死にXF86Config
の方を変更し、「同じところでエラーがでるなぁ」っとやっぱりクビを捻ってました。2日気づかず(爆)
思いあまってX86Configの設定説明ファイル、README.Configを訳して読んでみましたがハズレでし
た。確かにユーザーが多いので過去の例にも結構ひっかったのですが、ことごとくバージョン3で、書式が変更された4では
動きません。もうお手上げなので自力解決を諦め、VineLinuxのMLに入会し質問したところ、たちどころに設定
ファイルと解説が返ってきました。ありがとう、先人のみなさん(涙)。GNOMEが800x600、65535色でキレ
イに起動しました。trdentのドライバに問題があって、VESAドライバを指定する必要があったのでした(今は
SETUP情報修正されたようです)。でも、重くて使い物にならなかったけど(汗
なお、後日、GNOMEやGIMP、Mozillaなどを全て削除しました。ディスクが小さいので容量が足りず、apt-getできなくなってしまった
んです(汗)。Xは形だけ残してますがサーバ機以外に使ってませんのでこれも無意味かな。
★ADSL+ルータ導入!!★
引っ越しました。NTTに確認したらメタル回線だというのでODNのADSLに加入。ちょっと手間取って3週ほど
56kアナログで接続してました。イーアクセスから送ってきたモデムはBritePort
Router8100Cで、ルータタイプです。これでホントのLANが出来るよ〜と思いながらスイッチングハブを買ってきて接続。轟天号ではすでに色々な
サービスが動いてました(後述)が、この変更に伴いルータ機能を停止、iptablesの設定も変更(これも後述)
しました。
で、Webサーバを外部に公開するつもりでルータモデムのポートフォワーディングの設定をしたのですが、WAN
側IPにアクセスしてもそのトップページが出ずにモデムの設定画面が出てしまいます。何が原
因だろうかと延々悩んだあげく、BritePort
Router8100Cの製造元クリエイティブメディアのサポートに連絡したら、WAN側IPで
も、LAN内部からのアクセスなら無条件で設定画面になるという回答でした。……この設定に
何の意味が? まあ、スプリッタに56kモデム繋げてアクセスしてみると確かにトップページは表示できてました。説
明書か、HPに書いてくれ、クリエイティブメディア!
ここでご注意
Webサーバを公開することにしましたが、まだまだタコなものでセキュティに絶対の自信がありま
せん(いや、もちろん人並みにやってるつもりですが)。公開するとヤバめな情報は一部ぼかしたり割愛させて頂き
ます。
っていうかファイアウォール設定公開は止めようかな……(弱気
★固定IP不要、ダイナミックDNSを導
入★
常時接続とは言え、接続が切れるとIPは変わります。でも、ドメイン名とつじつま合わせをしてくれるサービスサイ
トがいくつもあります。その中の代表的なno-ip.comに登録しました。
いくつか選べるドメイン名に自分の名前を追加して、ry.sytes.netを
取得(無料です)。さらに一定間隔ごとに自分のIPをno-ip.comに連絡するソフトもインストール。だけど上
手く動かない。サーバのファイアウォールにブロックされて通信が出来てなかったので、ファイアウォールで8245
ポートのパケットを許可しました(dynupdate.no-ip.comと
dynupdate.no-ip.comから向けのみ
)。また、snortなどのIDSを入れていると自DNSサーバ間でBAD
TRAFFICメッセージがでますが、これは上記のno-ip.com通信デーモンとのやりとりで問題ありません。TCP:1065,
UDP:1026,1028,1029の各ポートを使ってるようです。いちいちログに吐かれるのがウザイという方は
ルールを変更してください。snortの場合bad-traffic.rulesファイルの中の「msg:"BAD
TRAFFIC same SRC/DST"; sameip」行にある「any any -> any
any」を 「$EXTERNAL_NET any <>
$HOME_NET」あたりに変更。もちろん、ローカルネットワークが信頼できるという前提です。
外部にサーバを公開するときはiptablesの動きをある程度理解してから設置しましょう。LAN内部にあるか
らって、モデムのファイアウォール機能を過信してはいけません、って偉そうに書いてるけど大丈夫か、自分。
★公開後ログを見てみる★
むう、ルータでネットワーク切ってるせいか不正パケットや変なポートのアクセスがありません。いいのか? 見逃してないか? 不安だ。
で、唯一開けてる80番ポート、すなわちWebサーバですが、早速クラッカーの連中がチェック掛けてます。まるで
蚊、あるいは蛭みたい(うげ)。でも、全部、IIS狙いです。バックドアの
チェックと、CodeRED。お前ら、そんなに好きか? Windows(笑)。で、ことごとく400,404で叩
き返されてます(良かった)。公開前にchkrootkitで検査済みです。全部IISなのは(もしかして、
Apache向けのアタックは通してるんじゃないだろうな? ちょっと不安。ログに残ってないし、ログの改ざんもな
いので大丈夫だと思うけど)、やっぱりWindowsに穴が多かったり管理が甘いせいなんでしょうか? あと、ア
タックの元がアジア圏ばかりなのはなんで?
★ファイアウォール★
ルータに簡易ファイアウォールが付いてるのですが念のため轟天号にもiptables入れてフィルタリングしてます。定石通りforwardと
inputは基本的に拒否。無条件に開けてるのは80ポートのみ。他のサービスは全て相手を指定して許可してます。指定
した相手以外とは通信できません。それ以外の通信は全てログにはき出すようにしてます。snortが入ってるのですが念
のため。
ログはこんな感じで出ます。外部からの自WWWサーバへの通信ログです。
MACアドレスとIPアドレスの一部は伏せます。
Oct 17 08:03:34mike2mike kernel: iptables:
IN=eth0
OUT=MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
SRC=211.55.xx.xx DST=192.168.100.1 LEN=1500 TOS=0x00
PREC=0x00 TTL=113 ID=62171 DF PROTO=TCP SPT=4957DPT=80
WINDOW=17520 RES=0x00 ACK PSH URGP=0
211.55.xx.xxというクライアントが
、192.168.100.1という自WWWサーバに接続しようとしてます。実は僕は結構長い間、クライアントのポートとサーバのポートは同じだと思って
ました(汗
サーバ側は固定ですが、クライアントは動的に決定されます。ですので、iptablesでポート通過ルールを設定する
ときはサーバ側なのかクライアント側なのか考慮して設定していきます。
n え? この項漠然としてるって? だって詳細公開は怖いので。
★PHP4+PostgreSQLとか★
いきなりぶつかったトラブルですが、PHPでDB呼び出すプログラム作ったところ、こんなのが出ました。
pg_connectで作ったDBにpostgresユーザで接続しようとして
FATAL 1: IDENT authentication failed for user "postgres"
in /home/httpd/html/test.php on line 17
pg_connectのuserをapacheにしてみたら出なくなったのですが、今度はpg_queryでパーミッ
ションエラーが出ます。この対処は基本的に間違ってると直感して、改めて調べ直したところ「IDENT認証」が問題だと
判明。いや、エラーメッセージそのままでした(汗。
で、同じエラーに当たった人はマニュアル見てください。pg_hba.confでDBアクセス制限の設定があります。
VineLinux2.5のRPMではデフォルト設定が、
local all
ident sameuser
となっていて、アクセスしたユーザとDBユーザが同じ名前でIDENT認証し一致したら接続するようになってます。で、
通常はここらをキッチリ設定しないといけないんですが、同じPC、1ユーザなので、以下のようにローカルに限って全て許
可することにしました。
local all trust
これでpostgresユーザで問題なく使えるようになりました。
ちなみにPostgreSQLサーバをリモートで使う場合は$PGHOSTの設定をする必要があるようです。