○ 最初の設定 4 Router

*CentOS 5.5 の初期設定をCUI環境で行います
*opensshを使い、2ndマシンのgnome-terminalから作業をします
*コピー&ペースト (ショートカットキー) で作業を短縮します
*firefox、gedit コピー ([Ctrl]+c) ペースト ([Ctrl]+v)
*gnome-terminal コピー ([Shift]+[Ctrl]+c) ペースト ([Shift]+[Ctrl]+v)
*文字間のスペースは、半角スペースまたはTabキーで入力します

**以降はコメントです
*前もって必要なファイルをダウンロードしてください
*使用するエディタは個人の使い慣れたものを使用してください
*エディタのコマンドは略します
*Enterキーを省略します
*2ndマシンの操作は略します

*ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
*設定ファイルで "#" で始まる行はコメントとして解釈されます

○インストール環境

:OS CentOS 5.5
:selinux disabled or permissive
:作業 /etc及び/home/sola/work
:言語 LANG=en_US.UTF-8
:ユーザー  rootで実行

○仮設定

:ドメイン 528p.com
:サーバ 名 venus
:ユーザ 名 sola
:クイアント01  mars



○rootでログインし、ユーザを作成します

login: root
password:← パスワードを入力
# useradd sola
# passwd sola
New UNIX password:← パスワードを入力
Retype new UNIX password:← 再入力

○serviceの自動起動のチェック

# ntsysv --level 3

*下記のデーモンをoffにします (自分の計画に合せて)
*HDDでない場合はsmartdも止めておく

apmd atd auditd autofs avahi-daemon bluetooth cpuspeed cups
firstboot gpm hidd ip6tables iptables irqbalance kudzu
lvm2-monitor mdmonitor microcode_ctl netfs nfslock pcscd
portmap readahead_early rpcgssd rpcidmapd smartd yum-updatesd

○/etc/selinux/configの修正

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#    enforcing - SELinux security policy is enforced.
#    permissive - SELinux prints warnings instead of enforcing.
#    disabled - SELinux is fully disabled.
SELINUX=permissive
# SELINUXTYPE= type of policy in use. Possible values are:
#    targeted - Only targeted network daemons are protected.
#    strict - Full SELinux protection.
SELINUXTYPE=targeted

○/boot/grub/grub.confの修正

*ide=nodmaを削除(dma転送を有効にする)

*省略

title CentOS (2.6.18-194.el5)
    root (hd0,0)
    kernel /vmlinuz-2.6.18-194.el5 ro root=LABEL=/ hda=974,255,63
    initrd /initrd-2.6.18-194.el5.img

*省略


○再起動します

# shutdown -r now

○アップデート用ファイルのアップロード

*scp(openssh)コマンドでファイルをアップロードします
*2ndマシンのworkディレクトリに必要なファイルをまとめておきます
*/home/sola/work (一般ファイル用)
*/home/sola/work/c55add (CentOS追加ファイル用)
*/home/sola/work/c55up (CentOSアップデートファイル用)
*/home/sola/work/c55up/kernel (kernelアップデートファイル用)

*2ndマシンから接続

$ scp -r work sola@192.168.0.1:.
sola@192.168.0.1's password:← パスワードを入力

○ssh (openssh) でログイン

*rootパスワードログインをします
*外部に公開する場合は、公開鍵認証に切り替えます

*2ndマシンから接続

$ ssh -2 root@192.168.0.1
root@192.168.0.1's password:← パスワードを入力

○RPM-GPG-KEYのインストール

# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

*インポートの確認

# rpm -qa | grep gpg-pubkey

○使用しないパッケージの削除 (自分の計画に合せて)

# rpm -e NetworkManager NetworkManager-glib apmd avahi \
avahi-compat-libdns_sd bluez-gnome bluez-libs bluez-utils \
ccid coolkey cups dhclient dhcpv6-client dnsmasq eject \
fbset finger firstboot-tui ftp htmlview ibmasm ifd-egate \
iptstate irda-utils irqbalance krb5-workstation ksh lftp \
mdadm microcode_ctl mkbootdisk nfs-utils nfs-utils-lib \
pam_pkcs11 pcmciautils pcsc-lite pcsc-lite-libs pinfo \
pkinit-nss rdate rdist readahead redhat-lsb redhat-menus \
rsh specspo system-config-securitylevel-tui talk telnet \
vconfig wpa_supplicant yp-tools ypbind

○CentOS追加ファイルのインストール

パッケージの追加を参照
*専用ディレクトリを作り、rpmパッケージを置きます
*同名のパッケージがある場合はCPUに合わせます
*rpmパッケージ以外、ディレクトリに置かない
*例 /home/sola/work/c55add

# cd /home/sola/work/c55add
# rpm -Uvh *.rpm

○CentOSのアップデート

*専用ディレクトリを作り、rpmパッケージを置きます
*同名のパッケージがある場合はCPUに合わせます
*rpmパッケージ以外、ディレクトリに置かない
*例 /home/sola/work/c55up
*インストール済のパッケージのみアップデートします

# cd /home/sola/work/c55up
# rpm -Fvh *.rpm

*kernelは-iオプションでインストールします

# cd kernel
# rpm -ivh kernel-2.6.18-194.8.1.el5.i686.rpm
# rpm -Fvh kernel-headers-2.6.18-194.8.1.el5.i386.rpm

*旧kernelの削除は?

# rpm -e kernel-2.6.18-194.el5

○/etc/ld.so.conf.dにconfファイルを追加します

*例 /etc/ld.so.conf.d/usrlocal.conf
*/usr/local/libを追記します

# cd /etc
# echo /usr/local/lib >> /etc/ld.so.conf.d/usrlocal.conf
# ldconfig

○lvm cacheファイルの修正

*起動時にエラーがでる場合、"/dev/hdc"を削除します (そのままでも問題ない)

:/etc/lvm/cache/.cache

*省略

               "/dev/ramdisk",
               "/dev/hdc",
               "/dev/mapper/RT-Net02",

*省略


○suログインの制限

:wheelグループにユーザ (sola) を追加します

# gpasswd -a sola wheel
# cat /etc/group | grep wheel

:/etc/pam.d/suファイルの修正 (変更追加分)

#auth sufficient pam_wheel.so trust use_uid

*上記を有効にするとwheelグループは[no Password]でsuになれるので注意

auth required pam_wheel.so use_uid

○起動スクリプトの修正

*nashのraidautorunを呼び出さないようにします
*# 記号でraidautorunの部分をコメント扱いにします

:/etc/rc.d/rc.sysinit

# RAID setup
update_boot_stage RCraid
#[ -x /sbin/nash ] && echo "raidautorun /dev/md0" | nash --quiet
if [ -f /etc/mdadm.conf ]; then
 /sbin/mdadm -A -s
fi

○ネットワークの修正

:/etc/sysconfig/network

*ipv6を無効にします (modprobe.confも参照)
*routerとして使用する場合、GATEWAYを設定しないこと

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=venus.528p.com

○at、batch 実行ユーザの制限

*"root"と"sola"にat、batchの実行を許可します
*at.allowが存在する場合 at.denyは無視されます

# echo sola >> /etc/at.allow

○cron実行ユーザの制限

*"root"と"sola"にcronの実行を許可します
*cron.allowが存在する場合 cron.denyは無視されます

# echo sola >> /etc/cron.allow

○マシンの名前解決

:/etc/hostsファイルを修正します

127.0.0.1    localhost.localdomain   localhost
192.168.0.1  venus.528p.com  venus

○libwrapによるアクセス制限の設定

*tcp_wrappersで制御されるものでhosts.allowの既述以外は全て拒否します

:/etc/hosts.allowファイルを編集します

ALL: 127.0.0.1
vsftpd: 192.168.0.
sendmail: 192.168.0.
sshd: ALL

:/etc/hosts.denyファイルを編集します

ALL: ALL

○仮想コンソールを減らす

:/etc/inittabファイルを修正します

*省略

# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
#3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6

*省略


○ログインユーザ制限

:/etc/login.defsファイルを修正します

SU_WHEEL_ONLY    yes
*suの機能をWHEELグループに限定します

○モデュールの設定

:/etc/modprobe.conf ファイルを修正します

alias net-pf-10 off
*ipv6を無功にしています
alias ipv6 off

options ipv6 disable=1

alias block-major-2-* off
*floppyの認識を無功にしています
alias eth0 r8169
*自動認識されたLANカードの設定

○rootログインできる端末の制限

:/etc/securettyファイルを修正します

console
tty1
tty2

○/etc/sysctl.confを修正します

*exec-shieldの強化
*問題がある場合はOSのデフォルトの (1) にします

kernel.exec-shield = 2

*ICMPの嘘のエラーメッセージ応答を無視します

net.ipv4.icmp_ignore_bogus_error_responses = 1

*ICMPのブロードキャスト・メッセージに応答しないようにします

net.ipv4.icmp_echo_ignore_broadcasts = 1

*ICMPのリダイレクト要求を拒否します

net.ipv4.conf.all.accept_redirects = 0

*指定されたファイルから読み込んだ内容を sysctl 設定にロードします

# sysctl -p

*現在利用できる全ての値を表示します

# sysctl -a

○ヘッダーファイルの修正

*pppのmakeで要求されるのでシンボリックリンクを作ります

# ln -s /usr/include/pcap-bpf.h /usr/include/net/bpf.h

○ランレベル3自動起動を修正します (例)

# ntsysv --level 3

*自動起動を設定するもの (自分の計画に合わせて)
*HDDでない場合はsmartdも止めておく

acpid anacron crond haldaemon mctrans messagebus network
rawdevices restorecond sendmail smartd sshd syslog

○selinuxのリラベルを実行しておきます

*selinuxが有効な場合

# fixfiles relabel

○再起動します

# shutdown -r now



○CFの書込回数制限への対応 (参考)

○/etc/fstabの修正

*CFディスクを使用している場合、アクセスタイムの書込をしない (noatime)
*この設定によってiノードのアクセス時間が更新されなくなるので注意
*動的に変化するディレクトリをtmpfs(メモリ上に作成される)に設定します
*tmpfsはデフォルトで物理メモリの半分まで使用します

*再起動するとtmpfsのデータが失われます、再起動の前にコピーしておきます

LABEL=/         /          ext2   defaults,noatime 1 1
LABEL=/boot     /boot      ext2   defaults,noatime 1 2
tmpfs           /dev/shm   tmpfs  defaults         0 0
devpts          /dev/pts   devpts gid=5,mode=620   0 0
sysfs           /sys       sysfs  defaults         0 0
proc            /proc      proc   defaults         0 0
LABEL=SWAP-hda2 swap       swap   defaults         0 0
tmpfs           /var/log   tmpfs  defaults         0 0
tmpfs           /var/cache tmpfs  defaults         0 0
tmpfs           /var/tmp   tmpfs  defaults         0 0
tmpfs           /tmp       tmpfs  defaults         0 0 

○/etc/rc.d/rc.local

*cronの実行やlogrotateの実行に必要なファイルやディレクトリの作成
*rc.localの最後に追記します

if [ ! -d /var/cache/man ]
then
mkdir /var/cache/man
fi

if [ ! -d /var/log/conman ]
then
mkdir /var/log/conman
fi

if [ ! -d /var/log/conman.old ]
then
mkdir /var/log/conman.old
fi

if [ ! -d /var/log/prelink ]
then
mkdir /var/log/prelink
fi

if [ ! -e /var/log/lastlog ]
then
touch /var/log/lastlog
fi

○/proc/sys/vm/drop_caches

*kernel-2.6.16以降で有効な、vm.drop_cachesに書き込みを行う
*クリーンなキャッシュ、dentry、inode をメモリ上から外し、メモリを解放する
*ダーティな (dirty) オブジェクトは解放されないので、最初に sync を実行しておく
*sync は書込を伴うので、free でメモリの使用状況を確認しながら行う

*[0] 初期値
*[1] ページキャッシュ解放
*[2] dentry、inode 解放
*[3] ページキャッシュ、dentry、inode 解放

# sync
# echo 3 > /proc/sys/vm/drop_caches
# echo 0 > /proc/sys/vm/drop_caches

*または

# sync
# sysctl -w vm.drop_caches=3
# sysctl -w vm.drop_caches=0

*swapメモリのクリア

# swapoff -a
# swapon -a

○ Copyright(c) 528p.com All Rights Reserved.