(読書)実践CentOSサーバルート養成講座 田鍬 享 (著)

実践CentOSサーバ ルート養成講座

実践CentOSサーバ ルート養成講座

 コンパクトにまとまっていて、サーバ構築がすぐに始められる内容になっている。順序通りにやっていけば、メールから、webから、DNSから、SSHからといろんなサーバを構築できる。説明も丁寧で、よい。

評価:★★★★☆

以下、メモ

ipコマンドによるIPアドレスの設定

% ip address show dev eth0

ip確認、設定といえば、ifconfigが定番かと思っていましたが、本章ではipコマンドの説明のみです。
ifconfigと似たような出力をだすには、下記がタイピング数がすくなくて便利

# ip a

sshd_cnfig

/etc/ssh/sshd_configファイルの主な項目

  • Port : SSHサーバの待ち受けポート:規定値22:推奨値10022など
  • Protocol : SSHプロトコルのバージョン:2:2
  • PermitRootLogin : rootログインの可否:yes :no
  • RSAAuthentication : SSH1における公開鍵認証:yes : yes
  • PubkeyAuthentication : SSH2における公開鍵認証:yes : yes
  • RhostsRSAAuthentication : SSH1における公開鍵とホスト情報を用いた認証:no:no
  • HostbasedAuthentication : SSH21における公開鍵とホスト情報を用いた認証:no:no
  • PermitEmptyPasswords : からパスワード使用の可否:no:no
  • ChallengeResponseAuthentication : チャレンジ・レスポンス認証の可否: no : no
  • PasswordAuthentication : パスワード認証:yes : no

公開鍵系がまだうまくいっていない。VirtualBoxでゲストOSにCentOS入れて、PuTTYとかTeraterm(SSH)とかでやろうとしてんだけど、なんかうまくいかない。仕方ないので、yumtelnet-serverいれて、telnetでやってる。

実行中のプロセス一覧を表示する

# ps -ef --forest

Linuxは似たようなコマンドがおおいので、覚えれませんね。pstreeとかが表示的には近いかな。Solarisだったらptree?

シリアル・コンソールを有効にする

  • /etc/securetty ファイルに ttys0 (=COM1ポート)を追加する
  • /etc/inittab ファイルに下記を追加
s0:12345:respawn:/sbin/agetty 9600 ttys0 vt100
  • ファイルの変更を有効にするために # init q を実行
  • GRUBの設定(/etc/grub.conf) 赤文字部分を追記
(中略)
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu

serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1
terminal --timeout=5 serial console

title CentOS (2.6.18-194.26.1.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-194.26.1.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet console=tty0 console=ttyS0,9600n8r
        initrd /initrd-2.6.18-194.26.1.el5.img

プロセス一覧の表示

# ps aux
# ps -u ユーザ名 ux (ユーザ名で抽出する)
# ps aux | sort -k 4 (メモリ使用率=4番目の値、でソートする)
# top   (リアルタイムに表示する)

top中にShift+Fを押すと、ソート項目の選択画面がでる

プロセスを終了する

# kill - シグナル プロセスID
# pkill - シグナル 条件

代表的なシグナル

略記号 番号 役割
TERM 15 終了
KILL 9 強制終了
HUP 1 再起動
STOP - 凍結
CONT - 解凍

lokkit

詳しくはわからないが、iptablesをフロントエンドっぽい?プロセスやサービス毎のポート開放とかができる。リナックスのセキュリティ系は苦手です・・。

yum

バイナリ・パッケージの取得

# ct /tmp
# yumdownloader httpd
# ls /tmp
httpd-2.2.3-1.el5_2.centos.4.i386.rpm

yumとは関係ないけど、ネット上からソース・パッケージをダウンロードするときはwget

# wget htt://--------.repo

ランレベル

ランレベル 内容
0 システム停止
1とS シングルユーザモード
2 未使用
3 マルチユーザ(Xなし)
4 未使用
5 マルチユーザ(Xあり)
6 システム再起動
# who --runlevel

runlevelを1に変更

# telinit 1

QHM (Quick Homepage Maker)

PHP設置のサンプルとして このQHMなるものが紹介されていた。文書管理システムらしいです。詳細は不明。php-mbstringをyumでいれてから、以下のように導入。

# cd /tmp
# wget http://www.open-qhm.net/pub/qhm_open366.zip
# unzip -q qhm_open366.zip -d /var/www/html
# cd /var/www/html
# mv qhm_open366 qhm
# chown -R apache:apache qhm

最後にブラウザで http://サーバ/qhm で開ければ成功

FTPの基本

アクティブモード(ポート固定、20番)とパッシブモード(変動)。パッシブモードはデータ転送する際にクライアントからサーバ指定のポートへセッションを張る方式。この場合、セッションを張るのは常にクライアントからなので、アクティブモードのポート問題は発生しない。想定するクライアントがファイアーウォール内にいる場合、ftpサーバはパッシブモードに対応する必要がある。CentOSのvsftpdはパッシブモードが規定値。

  • 一般ユーザをホームディレクトリに閉じ込める
# vi /etc/vsftpd/vsftpd.conf
(中略)
chroot_local_user=YES

# /etc/init.d/vsftpd restart
  • 匿名ftpでアップロードを許可する
# vi /etc/vsftpd/vsftpd.conf
(中略)
anon_upload_enable=YES

# /etc/init.d/vsftpd restart
  • 仮想ユーザを利用する
    • パスワードファイルの作成
    • PAMの設定
    • vsftpdの設定
# vi passwd.txt
foo
aaabbb
bar
cccddd

# yum -y install db4-utils
# db_load -T -t hash -f passwd.txt /etc/vsftpd/vsftpd_login.db
# chmod 600 /etc/vsftpd/vsftpd_login.db
#
# useradd -M -r -d /home/virtual -s /bin/false virtual
# mkdir /home/virtual
# chown virtual:virtual /home/virtual

# cd /etc/pam.d
# mv vsftpd vsftpd.org
# vim vsftpd
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login

# vim /etc/vsftpd/vsftpd.conf
(中略)
guest_enable=YES
guest_username=virtual

# /etc/init.d/vsftpd restart


# touch /home/virtual/test.txt
# lftp -u foo,aaabbb localhost

tar

# tar zcfp /tmp/backup.tar.gz /etc   //アーカイブ
# tar zxfp backup.tar.gz -C /var/tmp/foo //展開
# tar ztf /tmp/bakup.tar.gz //ファイル一覧の確認

z: tar.gzにする
c: アーカイブ
f: アーカイブ名の指定
p: パーミッション情報の保持
x: 展開
 -C : 展開先のディレクトリ指定
t : ファイル一覧の確認

Mondo Rescueでバックアップする

ファイルシステムをISOにしてバックアップできる。WindowsでいうMacriumReflectとかTrueImageみたいなもんか。

# cd /etc/yum.repos.d
# wget -q ftp://ftp.modorescue.org/rhel/5/mondorescue.repo
# yum -y install mondo

# /usr/sbin/mondoarchive -O -i -s 4g -d /backup -E /backup
 -O : バックアップを作成する
 -i : ISOイメージファイルを出力する 
 -s 4g : ISOイメージのサイズ上限を4GBにする
 -d : 出力先
 -E : バックアップの除外対象

# ls -1sh /backup  //ISOファイルの確認

・ISOをDVDに焼く
・そのDVDからブート→リストアできる