2009年12月20日日曜日

つまりはメモ代わりってことだろ?

どうも、食べる方の鯖も好きですが、コンピュータの鯖もそれなりに面白いと思っているQです、こんちには。

というわけで鯖構築とかちょっとメモ。最近メモばかり書いてますが要するに、まあ書いた方が良いという自分の中での需要があるから書いているわけです。



①emacs設定

CentOS,emacs 21
ホームディレクトリの.emacs内に書く。

(setq transient-mark-mode t)
範囲指定で色づけ

(global-set-key "\C-h" 'delete-backward-char)
backspaceキーをbackspaceキーとして使う。ものによると思うが、自分のPCは\C-hとして認識されていた。

(global-font-lock-mode t)
プログラムを書くときに色をつける。(バージョン22は不要)



②useradd,userdel

新規ユーザーを作る。
root権限
useradd hogehoge
passwd hogehoge
(二回パスワード)

ユーザーを削除
userdel -r hogehoge



③ftp(vsftpd)サーバーを立ち上げほか

自動起動ON
/sbin/chkconfig vsftpd on
(/sbin/chkconfig --listで自動起動するサーバーを調べられる)

起動、停止、再起動
/etc/rc.d/init.d/vsftpd start(or stop or restart)

vsftpdに限らず、httpd,sshd等も同様の方法でいける。

なお、ランレベルというものを見ると、ある起動条件下で、何が起動するかを調べることが出来る。

/etc/inittabで
id:?:initdefault
の?に入っている数字を見れば、どのランレベルで起動するか分かる。
(/sbin/telinit ?で?のランレベルに切り替え)

ランレベル3はテキスト環境
ランレベル5はグラフィカル環境

/etc/rc.d/rc1(2,3,4,5,6).d/*
で各ランレベルで何が起動し、何が起動しないか分かる。
Kで始まるリンクは起動しない(終了)
Sで始めるリンクは起動する。
数字は起動する順番(小さい方から)



④ファイアウォール、SELinux

ファイアウォールによって閉じているポートを開く。
system-config-security level
で設定画面を呼び出し、開きたいポートを指定

ファイルにはユーザーごとにアクセス権限があり、SELinuxがそれを監視している。
したがってユーザーがプログラムを介してファイルにアクセスする為にはプログラムそのもの(例えばftp)にアクセス権限を与えなければならない。

/usr/sbin/setsebool -P ftp_home_dir true
これでftpで自分のホームディレクトリにアクセスできる。

httpdで一般ユーザー権限のディレクトリ、ファイルをapacheで公開する場合は、
ファイルがあるディレクトリに対しては
chmod o+rx ディレクトリ
でその他ユーザーに実行権限・読み込み権限
途中のディレクトリに対しては
chmod o+x ディレクトリ
でその他ユーザーに実行権限(通過)を与える。

また、公開するディレクトリは
/sbin/restorecon -R ディレクトリ
を実行する。
よく分からんが、ファイルとタイプの不整合を解決するものらしい



⑤cron
定期的にコマンドを実行させる。
/etc/crontab -eで設定環境を実行

* * * * * コマンド
で設定とあるが要するに
(minute) (hour) (day) (month) (week) コマンド
ということ。
指定したmonth、day、hour、minute、weekにコマンドを実行してくれる。

9 10 11 12 * emacs
としておけば12月11日10時(AM)9分になるたびにemacsが起動する。



⑥IPアドレス、ホストネーム、arrow,denyの設定

/etc/sysconfig/network
ネットワーク全体
HOSTNAME=saba.hogehoge ホスト名
DOMAINNAME=hogehoge ドメイン名
GATEWAY=0.0.0.0 ゲートウェイのアドレス

/etc/sysconfig/network-scripts/ifcfg-eth?
デバイスごとの設定
IPADDR=192.168.1.1
NETWORK=192.168.1.0
NETMASK=255.255.255.0
BROADCAST=192.168.1.255

/etc/resolv.conf
DNSの指定
nameserver 192.168.1.2 DNSサーバのアドレス

/etc/host.deny
アクセスを拒否するアドレス
/etc/host.arrow
アクセスを許可するアドレス(優先)



⑦各コンフィギュレーションファイル

ftp /etc/vsftpd/vsftpd.conf
http /etc/httpd/conf/httpd.conf
ssh /etc/ssh/ssh_config
見れば簡単なことはどうすれば良いか分かる。
なおsshでキーを登録した後、PCの再セットアップしたり、同じIPを持つPCで別のOSを起動したりするとキーがおかしいので認証が通らなくなる。そういう時はホームディレクトリにある
.ssh/known_hosts
の内容を消す。



⑧文字コード

apacheで公開するときコンフィギュレーションファイルの
AddDefaultCharaset UTF-8
をコメントアウトする。
これをやらないと、どんな文字コードで書いたhtmlファイルも
UTF-8として送られてしまうので文字化けする。
htmlファイル内に文字コードはかけるのでそれをクライアントに認識してもらえばよい。



結構な分量になったが、サーバー立てるときの足がかりにはなりそうだ。自分は記憶能力に難があるとしか思えないので、記憶の外部記憶としておきたいのである。
まだまだだけど、Linuxというものが以前ほど遠いところにあるものではなくなったように思う。そろそろもう一段二段上の使い方を学ぶ時期かもしれない。
あとはHDDミラーリングと停電対策をしておかないと…なんかあったら折角の設定もおじゃんである。







鯖を読む
読む暇あったら
鯖立てる

0 件のコメント:

コメントを投稿