menu
書いてる野郎
orebike@gmail.com
2005年08月13日 昔にインストールした Debian 3.1 sarge のメモ
debian linux 3.1インストール
参考書:Debian GNU/Linuxでつくる骨太システム―安全・強靭なサーバの構築と管理
http://www.amazon.co.jp/exec/obidos/ASIN/4861670381/qid%3D1123920522/249-4574578-0360300
CD-ROMのインストーラから起動
ホスト名を聞かれたので指定。俺のlinuxなので orex
に決定
ドメイン名を聞かれたが特に無いので なし
パーティションの設定 パーティションの設定は後々のことを考えてLVMを使うことにする
手動でパーティションテーブルを編集
をとりあえず選ぶ
IDE1
が hda
として認識されているのでこれを操作する
新しいパーティションの作成を選択
/boot
は LVM
を使えないそうなので /boot
だけ単独の基本パーティションとして 1GB 確保する
確保完了
空きが 81.3GB あるのでこれを LVM として設定する
残りを全部同一パーティションに設定して利用方法をLVMに指定する
そして論理ボリュームマネージャの設定をする。 これにより複数の基本パーティションを1個のディスクとして操作できる
ボリュームグループの操作を選択
ボリュームグループを作成する
/dev/ide/host0/bus0/target0/lun0/part2 ()
ってやつが表示されてるからチェックをいれて続ける ボリュームグループに名前を付けろといわれるので
vg
にしておく
論理ボリュームの作成にうつる
グループ化して1個のディスクになったのでこれを新たにパーティションに切り分ける
ボリューム名を指定する。
/
用のパーティションを root
という名前で作る
どこに作るか聞かれるのでさっき指定した vg
を指定する。容量を聞かれるのでとりあえず 8.65G ほど割り当てておく
どんどんパーティションを追加していく
/etc
用のパーティションを作る etc
という名前で作成 vg
につくる。単なるテキストファイルの集合なんで100MBほど確保する
/tmp
用のパーティションを作る tmp
とういう名前で作成 vg
につくる。1GB ほど確保
/var var vg
イロイロは入ると思うので 10GB ほど確保しておく
/usr usr vg
必要だろうなってことで 10GB 確保
/home home vg
45GB
swap領域 swap 1G vg
確保した LVM を確保の名目どおりに割り当てていく
設定をディスクに確定させる
これで設定完了。あとは自動的にインストールされる
ブートローダに GRUB を使うか聞かれるので、使う指定にする
Debian は最小限のインストールで必要なものを後から追加していくことで システムを構築していうというが・・・一瞬でインストール終了 Redhat と大違い・・・唖然
起動しないなんか /etc
にファイルが書き込めないとかなんとかほざかれた
何回か試したらできた
意味不明まいいか
2005年08月16日コンソールの日本語化 コンソールの日本語メッセージが化けるので表示を日本語対応にする
なんか jfbterm
ってやつを使うらしい
そして jfbterm
はフレームバッファを利用するらしい
フレームバッファは画面表示の機能を抽象化して決まった手順で画面表示機能を利用できるようにしたものですわ
$ modprobe vesafb
っで登録できる
modprobe
はドライバを突っ込む用のインストーラってところか
あらかじめ自分用のカーネル用にコンパイルされたドライバ群の一覧からインストールを試みる
失敗したので
$ modprobe vga16fb
を試してみる 成功!
うちのグラフィックボードはこれらしい
$ jfbterm -c -q other,EUC-jp,iconv,UTF-8
っで起動・・・
でもよく考えれば、Windows側から日本語コンソール使えばいい話であって あんま意味ないな・・・
じゃあこの17インチモニタの理由はなんだ・・・
2005年08月16日 ssh のサーバ側設定
Windwos 側から接続できるように ssh デーモンを立ち上げることにする
Debian では最初から入っているみたいなんで起動時に立ち上げることにする
一応初期の設定ファイル /etc/ssh/sshd_config
を覗いてみる
port 22 Protocol 2
に設定されている
rootでのリモート接続を拒否しておく
PermitEmmptyPasswords no
※何も知らない当時はこうしておくのがいいと思ってましたw。ローカルでは単に不便なだけw ※2020-05-26追記。なんもわかってない
デーモンの起動
なんか本には
$ /etc/init.d/sshd start
って書いてあるがsshd なぞというスクリプトは無い なんか ssh ってスクリプトっぽいので
$ /etc/initl.d/ssh start
で起動できた。
自動起動するように設定する
$ update-rc.d ssh default
で起動する設定になるっぽい
したけどもう起動する設定になってますよって 言われちゃった。
ってことで接続・・・・現場で使い慣れてるTeraTermProを・・・・ sshが使えねぇ・・・使えね〜
ってことでputtyでやると できたー 接続完了
これで画面のメッセージ記録もwindowsでできるから楽チンだわ ますます17インチのモニタが・・・
2005年08月16日ファイアーウォールの準備
Linuxのファイアーウォールは Netfilter
という機能で実装されている
コレを制御するために
$ /sbin/iptables
というコマンドが使われる
まず iptables の設定を保存するための環境を作る
スクリプトのサンプルが
/usr/share/doc/iptables/examples/oldinitdscript.gz
っであるのでこいつを改造する
こいつを解凍して起動のスクリプトの場所に設置する
$ gunzip oldinitdscript.gz $ cp oldinitdscript /etc/init.d/iptables
このスクリプトに実行権限を与える
$ chmod 755 iptables
さらにこいつの iptables
の設定ファイルの保存先を作る
場所は
/var/lib/iptables
なぜこんな場所なのかは知らん
一覧を見ると・・・
$ ls apt canna dictionaries-common dpkg exim4 misc urandom aptitude dhcp discover emacsen-common logrotate nfs usbutils
なので たぶんデーモン系の設定ファイルとかはここらしいね
とりあえず作る 作った
ファイアーウォールに用いられるルールのテーブルは主に二つ filter
と nat
だ
filter
はパケットを制限し、nat
はルーティングに用いる
ここから iptable
コマンドによりルールを登録していく
まずルールを全部破棄する
入力パケット出力パケットすべてを拒否する
$ iptables -P INPUT DROP $ iptables -P OUTPUT DROP
入力パケットを拒否設定にしたらネットワーク越しのsshのログインが跳ねられた それも設定した瞬間・・・ まぁ設定としては正しいんだが・・・しょうがないからローカルから作業する
今のところ全部拒否になってるので ルールを追加して穴ぼこを空けていく
自分自身に対しての許可をする ループバックの許可ってやつらしいね
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
つまりこのコマンドならローカル発信のローカル受信の場合の入力は許可することになる
再び通信可能なようにsshの穴ぼこを空ける
$ iptables -A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT $ iptables -A OUTPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
22番ポートでの新規セッション確立を許可したのでセッション確立後の通信は全部許可することにする
$ iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT $ iptables -A OUTPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
ってことで許可されたっポイんで リモート接続してみる
できたー!OKOKO
そうしたらこの設定を何回も打ち込むのは面倒なんで 保存する ちなみに全部拒否でsshだけ穴が開いている状態なんで当然webなんかもできない
自動更新のシステムapt-getにはftpを利用しているのでftpのリクエストが出て行く穴を開けておかないと 何かと不便なんで空けておく
FTP
$ iptables -A OUTPUT -p tcp -m state --state NEW --dport 20 -j ACCEPT $ iptables -A OUTPUT -p udp -m state --state NEW --dport 20 -j ACCEPT $ iptables -A OUTPUT -p tcp -m state --state NEW --dport 21 -j ACCEPT $ iptables -A OUTPUT -p udp -m state --state NEW --dport 21 -j ACCEPT
http
$ iptables -A OUTPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT $ iptables -A OUTPUT -p udp -m state --state NEW --dport 80 -j ACCEPT
dns
$ iptables -A OUTPUT -p tcp -m state --state NEW --dport 53 -j ACCEPT $ iptables -A OUTPUT -p udp -m state --state NEW --dport 53 -j ACCEPT
OK全部許可したので セーブする
$ /etc/init.d/iptables save active
とうちこむと さっきの var/lib/iptables
のところに保存されるらしい
保存されてた! なんかコマンドを打ち込んだ順番がきになるが
さてと iptable の起動スクリプトを Linux 起動時に起動するようにする
とりあえず今の標準の runlevel が何か調べてみる
$ /etc/inittab
現在の標準は レベル2 だった
だからレベル2のところにショートカットをつくりゃいいわけですな
$ cd /etc/rc2.d $ ls S10sysklogd S18portmap S20inetd S20ssh S89cron S11klogd S20canna S20lpd S21nfs-common S99rmnologin S14ppp S20exim4 S20makedev S89atd S99stop-bootlogd
本では 18番 でポートマップが始まって 20 で各種サービスって言っているので、 19 あたりでサービスに関するフィルタをしておけばいいだろってことで
S19iptables
のシンボリックリンクを作っておく ちなみに portmap は NFS とか NIS とかちょっとヤバメの古いプログラムの番号を TCP にマッピングする仕組みらしい
必要ないような・・・
$ ln /etc/init.d/iptables ./S19iptables
で完了 これで開始時にさっきのルールが適用される
って調子ぶっこいてたら apt-get
コマンドが使えなくなった・・・
正確に言うと更新情報はゲットできるけど更新のデータそのものがダウンロードできない
ドコにも情報が載ってないんだよね・・・・
っでググりまくったらなんかファイアーウォール設定した上でFTPを使うには
$ ip_conntrack_ftp
とかいうモジュールがカーネルに組み込まれてナイトだめっぴ
ってことで
$ modprobe ip_conntrack_ftp
を実行すると・・・
$ apt-get install vim
が成功しました! ってことねあとで起動時に読み込む設定にしておかねば
ルーティングもしてる場合は
ip_nat_ftp
もいるらしい・・・
ftpは古いからな〜 こういうところでネジレが出てるのかな