周りでVPSを借り始める人がでてきて、最初の頃どんな設定したっけと思って振り返ってみることにした
環境
- CentOS5.5 32bit
- インストールはほぼ最小構成
特定ユーザーしかrootになれないように設定する
# arcrightを一般ユーザーとして作成 useradd arcright # パスワード設定 passwd arcright # wheelグループに追加 usermod -G wheel arcright # vi /etc/pam.d/su(下記行のコメントアウトはずす) auth required pam_wheel.so use_uid
sudo
# install yum -y install sudo # vi /usr/sbin/visudo ++arcright ALL=(ALL) ALL
yum
# パッケージダウンロードの際最適なミラーサイトを自動選択するようにする yum -y install yum-fastestmirror # インストール済みパッケージのアップデート yum -y update # インストールして個別に項目を作るまでもないものたち yum -y install wget yum -y install zsh yum -y install screen yum -y install git (rpmforge) yum -y install nmap yum -y install yum-cron yum -y install bind-utils yum -y install w3m yum -y install tmux yum -y install telnet yum -y install postfix yum -y install man
rpmforge
yum -y install yum-priorities vi /etc/yum.repos.d/CentOS-Base.repo # 各セクションに下記追加 priority=1 rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt rpm -ivh http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
SELinux
# 現在の状態を確認 getenforce => Enforcing # 無効化 setenforce 0 # 状態確認 getenforce => Permissive # 起動時常に無効化 # vi /etc/sysconfig/selinux ---SELINUX=enforcing +++SELINUX=disabled
NTP
# install
yum -y install ntp
設定ファイル
# vi /etc/ntp.conf # ローカルネットワークでの時刻の同期を許可 ---#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap +++restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap # 同期先サーバの設定変更 ---server 0.rhel.pool.ntp.org ---server 1.rhel.pool.ntp.org ---server 2.rhel.pool.ntp.org +++server -4 ntp.nict.jp +++server -4 ntp.jst.mfeed.ad.jp +++server -4 ntp-tk01.ocn.ad.jp
手動時刻同期/起動
# 同期先と時刻がずれすぎているとデーモンの起動ができないので手動で合わせる ntpdate ntp.nict.jp # デーモン起動 /etc/rc.d/init.d/ntpd start # 自動起動するようにする chkconfig ntpd on
ホスト名変更
# vi /etc/sysconfig/networkを編集して終わったらネットワーク再起動
/etc/init.d/network restart
SSH
OpenSSHを新しくしてみる(CentOSデフォルトのバージョンだとchroot標準でなかったりするので)
インストールされてるもの
# yum list installed | grep ssh openssh.i386 4.3p2-41.el5 installed openssh-clients.i386 4.3p2-41.el5 installed openssh-server.i386 4.3p2-41.el5 installed
rpm生成
wget http://ftp.kddlabs.co.jp/OpenBSD/OpenSSH/portable/openssh-5.5p1.tar.gz tar zvxf openssh-5.5p1.tar.gz cd openssh-5.5p1 cd contrib rm redhat以外のディレクトリ tar cvzf openssh-5.5p1.tar.gz rpmbuild -tb --clean openssh-5.5p1.tar.gz # 参考:http://centossrv.com/patio/patio.cgi?mode=view&no=1659 # 参考のとおりコメンアウトしといた(今みると回答更新されてた。rpmbuildこけるのは変数名のミスらしい)
rpmで生成したものをインストールする
# /usr/src/redhat/RPMS/i386とかにあるので適当に
rpm -Uvh /usr/src/redhat/RPMS/i386/openssh-*
sshd設定
# vi /etc/ssh/sshd_config # プロトコルSSH2でしか接続できないようにする ---#Protocol 2,1 +++Protocol 2 # ログを/var/log/secureに記録する ---#SyslogFacility AUTH +++SyslogFacility AUTHPRIV # ssh接続の際rootではログインできないようにする ---#PermitRootLogin yes +++PermitRootLogin no # パスワードでのログインを禁止(鍵認証のみ有効) ---#PasswordAuthentication yes +++PasswordAuthentication no # パスワードなしでのログインを禁止 ---#PermitEmptyPasswords no +++PermitEmptyPasswords no ← パスワードなしでのログインを禁止
Paco
ソースでインストールしたものを管理する。以後ソースインストールはすべてPacoを通す
導入は過去の記事のまんまだったのでそちら参照
Ruby
wget ftp://core.ring.gr.jp/pub/lang/ruby/ruby-1.8.7-p249.tar.gz tar xvzf ruby-1.8.7-p249.tar.gz cd ruby-1.8.7-p249 ./configure make paco -D make install
RubyGems
wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz tar zxvf rubygems-1.3.5.tgz cd rubygems-1.3.5 paco -D ruby setup.rb
PostgreSQL
インストール
wget ftp://ftp2.jp.postgresql.org/pub/postgresql/source/v8.4.2/postgresql-8.4.2.tar.gz cd postgresql-8.4.2 ./configure make su paco -D make install adduser postgres mkdir /usr/local/pgsql/data chown postgres /usr/local/pgsql/data su - postgres /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
自動起動設定
cp /usr/local/src/postgresql-8.4.2/contrib/start-scripts/linux /etc/init.d/postgresql chmod 755 /etc/init.d/postgresql chkconfig --add postgresql chkconfig postgresql on
Apache
インストール
yum install -y httpd
設定ファイル
# vi /etc/httpd/conf/httpd.conf #エラーページでOS名を表示しない --ServerTokens OS ++ServerTokens Prod #サーバー名 --ServerName www.example.com:80 ++ServerName hogehoge.jp:80 #エラーページでApacheのバージョンを表示しない --ServerSignature On ++ServerSignature Off
MySQL
インストール
yum install -y mysql-server mysql mysql-devel
設定ファイル
# vi /etc/my.cnf
++default-character-set=utf8
Vim
- 過去の記事:Vimをソースからインストール - WapBox
Passenger
- 過去の記事:Passengerインストール - WapBox
Subversion
ImageMagick
現在の状態
- Svnサーバ
- Gitリモートサーバ
- Web公開用サーバ
- 作業用サーバ
構築は絶賛放置中でApacheも今はとめてあるけど用途はこんな感じ。
chroot導入途中で止まっている。これをすると他のユーザーにサーバを使ってもらったりしやすくなる(と思ってる
自宅サーバあるとあるで便利だけどVPSのほうが電気代とか心配しなくていいのでいいのかもしれない