Linuxサーバー構築~その1~
<はじめに>
Linuxでサーバー構築を行う様を記録していきます。
下記の4つの役割を実装することを目標にすすめます。
・ドメインコントローラー
・ファイルサーバー
・DNSサーバー
・バージョン管理サーバー
<作業内容>
まずはOSのインストールを行います。
今回構築するのはCentOS6.4です。
最終的にはHP ProLiant MicroServerに構築しますが、
今回は検証も兼ねてWindows7上のVirtualBoxにインストールします。
インストールの時に注意するのは2点です。
□ネットワークの詳細
上の画像の「自動接続する」のチェックはデフォルトで入っていません。
このチェックが入っていないとOS起動後に手動でNICを有効にしないといけません。
□パーティションの分割
今回は上の画像のように分割しました。
ファイルサーバーの割に /home が少ないのは
ホストOSのHDDの空き容量がわずかな故です。 ^^;
実際このあたりは自由に分割しちゃっていいと思います。
注意点として、基本パーティションは最大4つまでしか分割できません。
/ や 特に /boot なんかは基本パーティションに割り当てないといけません。
/home や /var なんかは拡張パーティションに割り当ててもおkです。
引き続きMinimalでインストールを続けて、
必要なものは随時インストールすることにします。
OSのインストールが無事に済んだら作業用のユーザーを作ります。
コマンドは下記。
# adduser <ユーザー名>
# passwd <ユーザー名>
本来ならこの時点でグループも決めた方がいいかもしれません。
今のところユーザーはroot、作業用、ファイルサーバー用の3つなので、
グループはスルーして進めます。
次に作業用のユーザーにsudo権限を付与します。
# visudo
//------------------------------------------------------
/etc/sudoers
# Arrows root to run any commands anywhere
<ユーザー名> ALL=(ALL) ALL // 追加
//------------------------------------------------------
これで、先ほど作ったユーザーで sudo コマンドが利用できるようになります。
さて、インストールの際にネットワークの自動接続に
チェックをしなかった場合はNICを有効にしないといけません。
まずは設定ファイルを編集します。
//------------------------------------------------------
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=FF:FF:FF:FF:FF:FF
TYPE=Ethernet
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ONBOOT=yes // ここをyesにすることで、起動時にNICが有効になるようです。
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=xxx.xxx.xxx.xxx // IPアドレスを指定します。
NETMASK=xxx.xxx.xxx.xxx // サブネットマスクを指定します。
GATEWAY=xxx.xxx.xxx.xxx // ゲートウェイを指定します。
//------------------------------------------------------
次にNICを有効にします。
#ifdown eth0 // eth0の無効化
#ifup eth0 // eth0の有効化
ついでにDNSサーバーも指定します。
//------------------------------------------------------
/etc/resolv.conf
nameserver xxx.xxx.xxx.xxx
//------------------------------------------------------
一通り設定し終わったら確認です。
ネットワークの設定は下記のコマンドで確認します。
#ifconfig // ネットワークの情報
#nslookup // DNSサーバーの情報
#traceroute // ルーティングの情報
#tracepath // ルーティングの情報
この時点ではnslookupとtracerouteはインストールされていないので、
後ほどパッケージをインストールしたときに確認します。
<まとめ>
この回ではOSのインストールとユーザーの作成、ネットワークの設定を実施しました。
次回はyumのリポジトリと浮いてるプロセスなんかを確認します。
また、次回以降必要なパッケージやサーバーをインストールしていきます。
Linuxサーバー構築~その2~
<はじめに>
Linuxサーバー構築シリーズその2です。
前回その1ではOSのインストールやNICの有効化を実施しました。
さらに起動プロセスの確認を行います。
/etc/yum.repo.d/CentOS-Base.repoの内容を編集します。
[base],[updates],[extras],[centosplus],[contlib]の値について
初期値はbaseurlがコメントアウトされているので、
編集内容を保存してyum updateを実施します。
yumのログは/var/log/yum.log に出力されるので中身も確認すると、
先ほどアップデートしたパッケージのログが確認できます。
□ssh公開鍵の作成
CentOS 6.4をインストールするとsshが最初からインストールされていて
OS起動時にsshdも起動しています。
また、iptablesを確認すると22番ポートも開いています。
このままでもユーザーとパスワードでならばログインすることも可能ですが、
今回のサーバーはアクセスするクライアントが固定なので公開鍵を使用します。
作成した公開鍵を下記のファイル名で保存します。
~/.ssh/authorized_keys
この時.sshフォルダの属性を700に、
authorized_keysファイルの属性を600に変更しておきます。
公開鍵を利用してアクセスできることが確認できたら
パスワードによるアクセスを制限します。
/etc/ssh/sshd_configファイルのパスワード認証をnoに変更し、
その後、sshdを再起動します。
□起動プロセスの確認
起動プロセスはps axで確認します。
また、LISTEN状態のポートをnetstatで、
さらに外部からのポートの状態をnmapで確認します。
※どのプロセスがどのポートを使用しているかについては
lsofコマンドで詳細が見えるようです。
netstatで確認すると、22番ポートと25番ポートがLISTEN状態でした。
心当たりがないのでyumでインストールしたlsofコマンドで確認してみると
やはり、smtpでLISTENされているみたいです。
そこで、runlevelとchkconfigを確認してみると、
いました!postfixがrunlevel3でonになっているようです。
不要なので下記のコマンドで切っておきます。
chkconfig --level 23 postfix off
最後にnmapで確認すると、22番ポートだけが空いています。
□必要なパッケージのインストール
本題からは外れますが、下記のパッケージをインストールしておきます。
バージョンは特にこだわらないのでパッケージの管理はyumに任せます。
・nslookup
・traceroute
・gcc
・make
・cpp
・ghc(12/11削除)
・perl
・httpd(12/11追加)
・rpcbind(14/08/16追加)
・vim(14/08/16追加)
・lsof(14/08/16追加)
・ntp(14/08/16追加)
※nslookupはbind-utilsパッケージに含まれます。
<まとめ>
今回までの作業で、sshでつなげて、yumが使えるようになりました。
また、余分なプロセスを切ることができました。
次回はWebサーバーをインストールしてCGIを作成してみることにします。