centosはじめました
CentOS 5.3を使うことになったので自分好みのCentOSになるように設定してみた。
sakuraもデフォルトCentOSなのでそのまま同じ設定でいけるかも。
Install
下記の記事を参考にインストール。
※ net-install版ではない。
設定した項目は以下。
- ネットワーク : DHCP IPv4 IPv6 (デフォルト変更なし)
- 用途 : Server - GUI (Server用パッケージとGNOME)
- ファイアウォール : 有効、sshを許可
# ネットワーク
起動した段階でLANケーブルに繋がっていなかったりすると、eth0が停止状態になっているので下記の方法で起動する。
- システム -> 管理 -> ネットワーク
- ネットワーク管理画面でeth0が停止中になっている
- 起動ボタンをクリック
- 再起動を要求される場合があるので、必要に応じて再起動する
Packages Setting
何はともあれ下記のコマンドを始めに実行する。CentOS始めました感が出てくる。
$ yum update
yumとrpmがあるが基本的にはyumを使用する。
# すぐさま入れたいものリスト
- vim7.3
- hg(mercurial)
- git
- screen
- zsh
- python
- gcc
- g++
- make
- automake
1. gcc
# yum install gcc
...
# rpm -qa | grep gcc
3. mercurial
Logwatch for santa » CentOS 5.4 に mercurial をインストール
# yum install python-devel
# yum install python-setuptools
# easy_install mercurial
# hg --version
... 2.6-rc ...
versionが2.6.rc。最新は2.5.4とかじゃなかったっけ?
Mercurial-2.6-rcの並列になったupdateを試す - 放牧日記
まさかの最新版である。rc版について知らなかったので↓
4. zsh
# yum install zsh
# zsh --version
zsh 4.2.6
必要に応じてバージョンアップする。
5. zlib
自前でmakeするときなどなどで時々なくて失敗ということがあるので先に入れる。
# rpm -qa | grep zlib
なかったら
# yum install zlib
# rpm -qa | grep zlib-devel
なかったら
# yum install zlib-devel
6. make
# rpm -qa | grep make
なかったら
# yum install make
6. python
CentOS 5.7 に Python 2.6 を入れて pip で MoinMoin をインストール - キュウリのように落ち着いて
# python
Python 2.4.3...
...
>>>
古すぐる。
# easy_install pip
TrackBackの文字が。。。
# pip
失敗\(^o^)/オワタ
由々しき事態である。これはなんとしても回避する。(pipが使えない環境では呼吸ができないのと同然、生きていけない。。。)
そう、そして外部リポジトリに手を出すのである。EPELはfedoraのリポジトリ。
# wget http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/5/x86_64/epel-release-5-4.noarch.rpm
# rpm -ivh epel-release-5-4.noarch.rpm
# yum --enablerepos=epel search python26
# yum --enablerepos=epel install python26
# python26
Python 2.6.8...
...
>>>
次は2.6のeasy_installを使えるようにする。
# yum --enablerepos=epel install python26-distribute
# which easy_install-2.6
/usr/bin/easy_install-2.6
# easy_install-2.6 pip
# pip-2.6 --version
pip 1.3.1 .......
# pip --version
pip 1.3.1 .......(同じバージョンなのでpipのみでも2.6のpipコマンドが実行可能)
ok!
7. git
CentOS5.5にgitをインストールする(yumを使用) - hogehoge foobar Blog Style5
# yum install gitができない。easy_install mercurialでインストールできるhgは素晴らしい。
上記記事にはyum.repos.dにgit.reposを追加してhogehogeと書いてあるが、先ほどpythonでepelリポジトリを追加してしまったのでそこにgitがある。
# yum list | grep git
gitがあるのを確認
# yum install git
今はデフォルトで–enablerepo=epelになっているが、この状態はあまり良くないかもしれないのでデフォルトでは見つからないように設定する。
8. automake
RVMをさくらVPS(CentOS-5.6)にインストール - CMS専門 Web開発者ブログ
yumで入れられるautomakeはバージョンが古いらしくruby環境を構築する際にえらい面倒なことになるようなので自前makeした方がいい。
9. vim7.3
CentOS 5.5 にVim7.3をソースからインストール - ITコンサルタント成長録
2013/04現在の最新版は7.3.3。以下のコマンドを実行していけばインストール完了。
# yum install ncurses-devel -y
# wget http://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2
# tar jxfv vim-7.3.tar.bz2
# mkdir vim73/patches
# cd vim73/patches
# seq -f http://ftp.vim.org/pub/vim/patches/7.3/7.3.%03g 3 | xargs wget
# cd ..
# cat patches/7.3.* | patch -p0
# ./configure --prefix=/usr --enable-multibyte --with-features=huge --disable-selinux
# make
# make install
# vim
vim 7.3.3
ok!
Security
wheelユーザー
CentOSではwheelユーザーはデフォルトでonになっていないので下記の設定を行う。
/etc/login.defsの末尾に以下の行を追加
# Login is whell only
#
SU_WHEEL_ONLY yes
/etc/pam.d/suを編集
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required /lib/security/$ISA/pam_wheel.so use_uid
2行目のauth...のコメントアウトを外す。
/etc/groupでsuが使えるユーザーを設定。
# vim /etc/group
下記の行に
old : wheel:x:10:root
ユーザーhogeを追加
new : wheel:x:10:root,hoge
rootへのログイン
CentOSに限らずかもしれないが、/etc/ssh/sshd_configで
PermitRootLogin yes
となっているのはセキュリティ上問題がある。(Linuxに**必ず**存在するrootユーザーは格好の的になってしまう)
なので、rootはパスワード認証でログイン出来ないようにする。公開鍵認証はログイン可。
rootへの公開鍵認証を行いたいホスト(localhost)で鍵生成、鍵コピー。
(localhost)$ ssh-keygen
(localhost)$ ssh-copy-id root@XXX.XXX.XXX.XXX
パスワードを要求される(まだパスワード認証は出来る状態)
(localhost)$ ssh root@XXX.XXX.XXX.XXX
[root@xxxxx ~]#
ssh公開鍵認証でrootにログイン出来るのを確認
rootでログインして/etc/ssh/sshd_configを書き換える。
# PermitRootLoginを以下に書き換える
PermitRootLogin without-password
もはやsshではログインできなくするという少しワイルドな方法もある。
設定は簡単で、/etc/ssh/sshd_configのPermitRootLoginをnoにする
PermitRootLogin no
Tips
覚えておきたいシステムコマンド
- uname -a
- df -h
- who (“w” でも可)
- last
- free -tm
- ps aux | grep sshd
- pstree
- lsof -i:ssh (-i:hoge hogeはポート番号又はプロセス名)
/usrと/usr/local
CentOS –version
yumのオプション
-yオプションは(y/N)を聞かないですぐにインストールしちゃうようになるオプション。
困ったときはman先輩に聞こう。
# man yum