2015-10-26

Chinachu サーバの構築 その2 「OS のインストールと簡単な初期設定」

前回の投稿では、「最終的な完成像と機材の準備」について書きましたが、今回は、
  • OS のインストール
  • インストール後の初期設定
について、簡単に説明していきます。

ひたすらコマンドの羅列になってしまうかと思うのですが、お付き合いいただければと。
自身、Linux にそれほど精通していないので、なるべくわかりやすく説明を交えながら書き上げることを目指していきます。



まずは、「OS のインストール」です。

今回採用するのは「CentOS (セントオーエス、セントス)」という、Linux ディストリビューション。
「Red Hat Enterprise Linux (レッドハット エンタープライズ リナックス)」という、商用利用がメインの Linux ディストリビューションとの完全互換を目指す Linux ディストリビューションとなっています。

特に、今回は最新バージョンの「CentOS 7」を使用しました。
理由は特にはありませんが、OS のサポート期間が長いことが一番の理由かなと。
あとは、過去に CentOS 5 系でサーバを立てたことがあり、そのような思い入れからこうなったということにしておきます。

Chinachu 公式では「Debian (デビアン)」推奨となっていますが、「CentOS」も一応サポートされているのでご安心を。
「Debian」やその派生の「Ubuntu (ウブントゥ)」と、「CentOS」では使用するコマンドが違うことも多々あるので、Debian 系で運用を考えられている方は参考程度に読んでいただければと。


と、まぁ、前ぶりが長くなりましたが、本題の方に移っていくことにします。

まず、初めにやらなければならないのが、「OS インストールイメージのダウンロード」です。

CentOS の公式ページに飛んで、Download のページに移動し、「Minimal ISO」をダウンロードしてください。

# Minimal である理由は、X Window System 含め、不要なものは入れないようにするため。必要なものだけ入れるほうが簡潔になり、システムの安定性、信頼性も向上するためです。

いろいろなダウンロード先が提示されますが、お好きなところから拾ってくればなんの問題もないです。

# 2015/10末現在、CentOS 7.1-1503 (ファイル名: CentOS-7-x86_64-Minimal-1503-01.iso) が最新のようです。


ダウンロード後は、ブランクメディア (CD-R など) に書き込むか、母艦が Windows OS であるならば、「UNetbootin」などのツールを使って、USB メモリにファイルを展開してあげれば問題なし。

あとは、適当に用意した PC にインストールしてください。

ブート直後。余裕があれば「Test this media & install CentOS 7」を選ぶべき。

最低限、「インストール先」を指定すれば、インストールを開始できます。

とりあえず、「root パスワード」は設定しておきましょう。



……おそらく、OS のインストールが済んだと思うので、「初期設定」を進めていきます。

味も素っ気もない、インストール後の姿。とりあえず、root でログイン。

やることは、こんな感じ。
  • ユーザの追加 (+ sudoers への追加)
  • ネット接続の有効化
  • ホスト名の変更
  • SSH の設定
  • NTP の設定

【 囲みや記法について 】
今後出てくるこのような青い囲みは、「ターミナル」または「ファイルの中身」を表します。

「ターミナル」の場合には、文頭に "#" か "$" をつけてあります。それぞれ、"#" は管理者ターミナル、"$" は一般ユーザターミナルを表します。
"#" 付きコマンドは、"su" コマンドで管理者権限を得るか、"sudo" コマンドを使って、管理者権限でコマンドを実行してください。しばらく、システムの設定を行うので、"su" で管理者に昇格して、作業することをオススメします。

「ファイルの中身」の場合、"#" が現れることがありますが、これはコメント文を表します。

また、両方に関係することですが、"<" と ">" で囲って書かれている部分は、環境に合わせた任意の文字列を代入することを示しています。
例えば、
# useradd <username>
と書かれているところで、ユーザ名を tag とするのであれば、実際には
# useradd tag
と打ってください。



というわけで、まず「ユーザの追加」をします。
OS インストール直後では、「root」という、絶対神のような、圧倒的な権限を持ったユーザのみです。そのようなユーザでシステムを弄るのは推奨されないので、今後作業するためのユーザを作っていきます。

まず、ユーザを作ります。

# useradd <username>

作成したユーザのパスワードを設定します。

# passwd <username>

"wheel" という、sudo を使えるユーザグループに追加します。 (CentOS だと "wheel" ですが、Debian だと "sudo" というグループだそう。)

# usermod -G wheel <username>

はい、以上です。

# exit

と打って、root からログアウトして、作成したユーザでログインし直してください。



続いて、「ネット接続の有効化」ですね。

# nmtui

で、NetworkManager TUI を起動し、「Edit a connection」を選び、「Ethernet」にぶら下がっている接続プロファイルを設定してきます。
「IPv4 CONFIGURATION」を開いて、自身の環境に合わせてお好きなローカルな固定IPを与えておくことをオススメします。

設定後、再度 NetworkManager TUI を起動し、

# nmtui

「Activate a connection」から、先ほどのプロファイルを有効化してあげてください。

設定が済んだら、NetworkManager を再起動して、設定を反映させます。

# systemctl restart NetworkManager



今度は、「ホスト名の変更」です。

またまた、NetworkManager TUI を起動し、

# nmtui

「Set system hostname」を選び、適当なホスト名を設定してください。

やっぱり再び、設定が済んだら、NetworkManager を再起動して、設定を反映させます。

# systemctl restart NetworkManager



ネットに接続できるようになったので、とりあえずシステムのアップデートをしておきましょう。

# yum check-update
# yum update

実行して、放置で OK のはずです。



今度は、「SSH の設定」の設定です。
そもそも、Linux (UNIX) というシステムは、離れた場所からシステムにログインして、システムを利用するという状況を想定しています。
実際問題、サーバの近くに移動して、そこでコマンドをカタカタ打つなんて、正直やってられません。

そんなわけで、Windows、Mac、はたまた Android から、ネットワーク経由でアクセス (リモートログイン) し、弄れるようにしていきます。

まず、ssh の設定ファイルを開きます。 (vi の使い方がわからない方は、ググって学んで来てください。)

# vi /etc/ssh/sshd_config

そして、次の4行を追記 or 編集します。 (vi では "/<search-word>" で順方向探索、"?<search-word>" で逆方向探索ができます。)

ポート番号は、セキュリティレベル向上のため、デフォルトの 22 ではなく、5022 など、(忘れなさそうな番号に) 適当に変えておくことをオススメします。

Port <port-number>            # ポート番号の変更
PermitRootLogin no            # root でのログイン
PermitEmptyPasswords no            # 空パスワードの無効化
PasswordAuthentication yes            # パスワード認証 (現時点では yes。後で no に。)

最後に、構文チェックをしておくと安心です。

# sshd -t

更に、CentOS 7 では SELinux が有効化されているので、そちらの設定もしていきます。
因みに、SELinux は次のコマンドで、状態の確認、切り替えができます。

$ getenforce            # 確認
# setenforce 0            # 無効化
# setenforce 1            # 有効化

まず、ユーティリティをインストールします。

# yum install policycoreutils-python

先ほど設定したポート番号のエントリを追加します。

# semanage port -a -t ssh_port_t -p tcp <port-number>

念のため、設定できたかチェックしておきましょう。

# semanage port -l | grep ssh

sshd の再起動、sshd の起動状況、ポートの待受状態のチェックをします。

# systemctl restart sshd            # 再起動
$ ps axuww | grep sshd            # チェック
$ ss -t -l -n            # ポートの待受状態のチェック

続いて、ファイヤウォールの設定をします。

設定ファイルを作り、編集します。

# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-alt.xml
# vi /etc/firewalld/services/ssh-alt.xml            # port 番号を変える (22 から、自身で決めたものに)

新しいポートでの設定を反映します。

# firewall-cmd --reload            # 再読込
# firewall-cmd --add-service=ssh-alt
# firewall-cmd --permanent --add-service=ssh-alt
# firewall-cmd --list-all            # チェック
# firewall-cmd --reload            # 再読込
# firewall-cmd --list-all            # permanent が有効かのチェック

古い設定 (ポート番号 22) を消します。

# firewall-cmd --remove-service=ssh            # 古い設定を消す
# firewall-cmd --permanent --remove-service=ssh
# firewall-cmd --reload            # 再読込
# firewall-cmd --list-all            # チェック

firewalld を再起動します。

# systemctl restart firewalld


終わったら、別の PC から SSH でログインしてみましょう。

Windows であれば、「Tera Term」や「PuTTY」あたりを使い、


Mac や Linux であれば、「端末」を起動し、

$ ssh -p <port-number> <username>@<ip-address or hostname>

と打ち、作成した一般ユーザでログインできれば成功です。
念のため、22 番ポートでもログインを試し、ログインできない (というか、アクセスできない) ことも確認しておいてください。

今後は、SSH クライアントを使って、作業が可能です。コピペも自由自在になります(笑)
そんなわけで、サーバから電源ケーブルと LAN ケーブルだけ残して、ディスプレイ、キーボードを引っこ抜いても問題ありません。



ようやく、今回の最終地点、「NTP の設定」ですね。
録画をするためには、システムの時間設定が非常に重要になってきますので、確実に設定しておいて欲しいところです。

一般的に NTP による時間設定は ntpd で行いますが、CentOS (Minimal 以外のインストール) では chrony がデフォルトとなっているらしいので、ただの気まぐれですが、こちらを使っていきたいと思います。
いろいろ違いはあるみたいですが、ntpd に比べ、軽量らしいです。

インストールします。

# yum install chrony

設定ファイルを開きます。

# vi /etc/chrony.conf

NTP サーバを適当に追加します。

server ntp.nict.jp iburst            # NICT
server ntp.jst.mfeed.ad.jp iburst            # MFEED
server s2csntp.miz.nao.ac.jp iburst            # NAO
server ntp.ring.gr.jp iburst            # Ring Server

ファイヤウォールの設定を追加します。

# firewall-cmd --permanent --add-service=ntp
# firewall-cmd --reload

動作確認をします。

# date -s "2000/1/1 00:00:00"            # わざと適当にずらす
# systemctl enable chronyd            # chrony の有効化
# systemctl start chronyd            # chrony の起動
# systemctl status chronyd            # chrony の動作状況の確認
# date            # 時間があっているか確認



どうでしょうか、無事できたでしょうか。
ひとまず、事前準備は終了です。

次回は、Chinachu のインストールか、Samba の設定あたりをやっていく予定です。



参照ページ (再掲含む)



「Chinachu サーバの構築」シリーズ一覧


0 件のコメント :

コメントを投稿