★ループバックアドレス★
自分自身を指すIPアドレスで、デフォルトはlocalhost.localdomain 127.0.0.1になってます。設定は/etc/hostsに。ネットワークアダプタを経由しないので、無くてもテストできる(?)ということらしいです。試しに、/etc/hostsにtest.localdomain 127.0.0.2にしてping打ってみたら同じように正常に動いてます。ん? ループバックアドレスって一つじゃないの? 調べたら、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でポート通過ルールを設定するときはサーバ側なのかクライアント側なのか考慮して設定していきます。