[CentOS 7] これだけやっとけば後が楽。インストール後に行う最低限の設定(サーバーで運用する場合)
設定開始前のインターフェイスの状態を表示したところ。TYPE のところに wifi とあるので無線 LAN の設定も可能だが今回は有線 LAN の設定だけ行う。
サーバー用途で使う予定の CentOS のインストールが終わったら、最初に最低限何を設定するべきか?
考え方はいろいろありますが大きく言うと、
- IP 周りの設定
- SSH サーバーの設定
- ユーザーの追加
- ノートパソコンを閉じてもサスペンドさせない設定
の4つだと思います。デスクトップパソコンを使う場合、4つ目は不要です。
なぜこの4つ(もしくは3つ)を設定するかといえば、これだけやっておけばそれ以降は ssh でログインしてリモートで操作できるようになるからです。
電源をつけっぱなして LAN に接続してどこか部屋の隅っこにでも置いておいてリモートでメインのパソコンから設定ができる環境が整います。
GUI を使わないサーバー用途ですからまずはここまでを初期設定として済ませます。すべて root ユーザーで設定を行います。
[1] IP 周りの設定
固定 IP を割り当てることにしました。だから
- IP アドレス
- サブネットマスク
- デフォルトゲートウェイ
- DNS サーバ
の4つをあらかじめ決めておきます。Wi-Fi は使用せず有線 LAN にします。今回は以下のようにパラメータを決めました。ここから設定に入っていきます。
- IP address 172.16.1.2/24
- Default gateway 172.16.1.1
- DNS servers 8.8.8.8, 8.8.4.4
まず設定するインターフェイス名を確認します。
nmcli コマンドに d (device でも良い) を付けて実行すると一番左に DEVICE の列があるのでそこに表示されているインターフェイスから確認します。
一般的なノートパソコンの場合、物理 NIC は1個だけでしょうから 左から2列目のところが ethernet になっている行を見れば良いことになります。
当方の Let’s note CF-N9 では enp0s25 となっていましたのでこれをインターフェイス名として使用します。
# nmcli connection modify enp0s25 ipv4.gateway 172.16.1.1
# nmcli connection modify enp0s25 ipv4.method manual
# nmcli connection modify enp0s25 ipv4.dns 8.8.8.8,8.8.4.4
# nmcli connection modify enp0s25 connection.autoconnect yes
# nmcli connection up ifname enp0s25
たった6行で完了です。最初の4行はほとんど同じだとわかりますよね。nmcli コマンドを使えばこのようにシンプルです。
設定ファイルを vi エディターで編集してプロセスを再起動するといった従来型の方法でなくても設定できちゃいます。
投入した設定を有効化するために shutdown -r now コマンドを実行しサーバー再起動を行いましたが、systemctl restart NetworkManager コマンドでも良いみたいです。
各行の設定内容は以下のとおりです。
- 1行目: IP アドレスとサブネットマスク
- 2行目:デフォルトゲートウェイ
- 3行目:IP アドレスを固定設定扱いにする。これを入れないとパソコン起動時に毎回 DHCP でアドレスを取得しようとする動作が走るようです。
- 4行目:DNS サーバ
- 5行目:OS 起動時にインターフェイスを自動で有効化する。これがないと OS を起動するたびにいちいち手動で下記6行目のコマンドを叩かにゃならんです。
- 6行目:インターフェイスを即座に有効化する
ここで NIC に LAN ケーブルを接続して nmcli d コマンドを実行すると、
STATE の行が connected となり、IP 通信が可能になります。
ip a と叩けば IP アドレスがせっていされていることが確認できますし ping 8.8.8.8 などでインターネット側との疎通を確認しても良いでしょう。
あと、nmcli connection show enp0s25 と叩けば現在の詳細な設定がバラバラと表示されますので一度見ておきましょう。
[2] SSH サーバの設定
yum を使えばコマンド一発ですが、まず uname -a でインストールした CentOS が 32 bit なのか 64 bit なのかくらいは見てもいいでしょう。
Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
# yum list | grep openssh
openssh.x86_64 6.6.1p1-23.el7_2 @updates
openssh-clients.x86_64 6.6.1p1-23.el7_2 @updates
openssh-server.x86_64 6.6.1p1-23.el7_2 @updates
openssh-askpass.x86_64 6.6.1p1-23.el7_2 updates
openssh-keycat.x86_64 6.6.1p1-23.el7_2 updates
openssh-ldap.x86_64 6.6.1p1-23.el7_2 updates
openssh-server-sysvinit.x86_64 6.6.1p1-23.el7_2 updates
# yum install openssh.x86_64
uname -a で 64 bit の CentOS をインストールしていることを確認しています。
yum list | grep openssh でパッケージ名を調べています。今回は openssh.x86_64 をインストールすることになるので、
yum install openssh.x86_64 を実行すればインストールできます。途中 y で返事を返してインストールをすすめてください。
49c49
< #PermitRootLogin yes
—
> PermitRootLogin no
#
あroot で SSH ログインできないように /etc/ssh/sshd_config ファイルを vi で編集しておきました。
#PermitRootLogin yes の行を
PermitRootLogin no
に変更して保存し、systemctl restart sshd で SSH のプロセスを再起動します。
[3] ユーザーの追加
ここでユーザー作成がまだの場合は追加しておきます。root で SSH ログインできないようにしたのでユーザーアカウントを作っておきます。
# useradd oredayo
# passwd oredayo
Changing password for user oredayo.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
#
BAD PASSWORD って怒られていますがここは問題ないと割り切っていますので BAD PASSWORD のままにしておきました。
他のパソコンなどから SSH でログインできること、でも root ではログインできないことを確認しておきましょう。
ついでに追加したユーザーアカウントで sudo を実行できるように設定しておきます。まず sudo が実行できないことを確認するには何か当り障りのないコマンドを sudo に続いて実行します。
[sudo] password for oredayo:
oredayo は sudoers ファイル内にありません。この事象は記録・報告されます。
$
sudo を実行する権限がないことが確認できました。それでは su – で root になって visudo を実行して下記のような行を追加します。
# added 2016/03/22
oredayo ALL=(ALL) ALL
そして再度さっき失敗したコマンドを叩いてみます。
[sudo] password for oredayo:
2016年 3月 23日 水曜日 06:32:15 JST
$
sudo 付きでちゃんと実行できました。
[4] ノートパソコンを閉じてもサスペンドしない設定
最後がコレです。
vi で /etc/systemd/logind.conf を編集します。
#HandleLidSwitch=suspend からコメントを取って suspend を ignore に変更して HandleLidSwitch=ignore にします。
その後、systemctl restart systemd-logind で systemd を再起動します。
24c24
< #HandleLidSwitch=suspend
—
> HandleLidSwitch=ignore
# systemctl restart systemd-logind
#
ノートパソコンを閉じても ssh でログインできることを確認できれば OK です。
以上で CentOS をサーバーで動かす場合の初期設定が完了!お疲れ様でした。