nomurabbitのブログ

nomurabbitのブログはITを中心にした技術ブログです。

nomurabbitのブログ

Linuxサーバー構築~その1~

<はじめに>
Linuxでサーバー構築を行う様を記録していきます。

下記の4つの役割を実装することを目標にすすめます。
・ドメインコントローラー
・ファイルサーバー
DNSサーバー
・バージョン管理サーバー


<作業内容>
まずはOSのインストールを行います。

今回構築するのはCentOS6.4です。

最終的にはHP ProLiant MicroServerに構築しますが、

今回は検証も兼ねてWindows7上のVirtualBoxにインストールします。

インストールの時に注意するのは2点です。


□ネットワークの詳細

f:id:nomurabbit:20131207010749p:plain

上の画像の「自動接続する」のチェックはデフォルトで入っていません。

このチェックが入っていないとOS起動後に手動でNICを有効にしないといけません。


□パーティションの分割

f:id:nomurabbit:20131207012044p:plain

今回は上の画像のように分割しました。

ファイルサーバーの割に /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の有効化を実施しました。

今回はyumリポジトリの確認とSSH公開鍵の作成、

さらに起動プロセスの確認を行います。


<実施内容>
yumリポジトリの確認

/etc/yum.repo.d/CentOS-Base.repoの内容を編集します。

[base],[updates],[extras],[centosplus],[contlib]の値について

初期値はbaseurlがコメントアウトされているので、

理研のurlに変更してコメントアウトを解除します。

編集内容を保存して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に変更し、

f:id:nomurabbit:20131208204300p:plain

その後、sshdを再起動します。


□起動プロセスの確認

起動プロセスはps axで確認します。

また、LISTEN状態のポートをnetstatで、

さらに外部からのポートの状態をnmapで確認します。

※どのプロセスがどのポートを使用しているかについては

lsofコマンドで詳細が見えるようです。

netstatで確認すると、22番ポートと25番ポートがLISTEN状態でした。

f:id:nomurabbit:20131208205233p:plain

22番ポートはsshにしても、25番ポートははSMTP

心当たりがないのでyumでインストールしたlsofコマンドで確認してみると

f:id:nomurabbit:20131208210525p:plain

やはり、smtpでLISTENされているみたいです。

そこで、runlevelとchkconfigを確認してみると、

f:id:nomurabbit:20131208210926p:plain

f:id:nomurabbit:20131208210934p:plain

いました!postfixがrunlevel3でonになっているようです。

不要なので下記のコマンドで切っておきます。

chkconfig --level 23 postfix off

最後にnmapで確認すると、22番ポートだけが空いています。

f:id:nomurabbit:20131208212722p:plain


□必要なパッケージのインストール

本題からは外れますが、下記のパッケージをインストールしておきます。

バージョンは特にこだわらないのでパッケージの管理は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を作成してみることにします。