「Rocky Linux 8」はRHEL(RedHat Enterprise Linux)後継OSSであるCentOS8のクローンOSです。前回はESXi VMに新たに固定IP(192.168.1.190)とホスト(dev.stuffy.site)で「Rocky Linux8.7」をインストールしました。今回はインストール初期設定をめも。
本番用現行WebサーバーにリプレイスするためあとでプライベートIPアドレスとホスト名を変更していきます。
リプレイス直後の様子を見て問題があれば旧サーバーへの巻き戻しもありかなと思っています。
概要
VMにSSH接続する
1.VMにターミナルソフト(今回はTeraTermを使用)でSSH(SecureShell)接続します。
ホスト | dev.stuffy.site |
IPアドレス | 192.168.1.190 |
ポート | 22 |
認証方式 | プレインパスワード |
ユーザー | gusachan |
パスワード | ●●●●●●●●● |
.
[ホスト] はWindows10からの接続なのでC:\Windows\System32\Drivers\Etc\hosts ファイルを編集して名前解決するか、直接IPアドレスを決め打ちしてもどちらでも良いです。
.
2.認証方式はプレインパスワード方式とあとで設定する公開鍵暗号方式があります。初回なのでプレインパスワードを使います。
.
3.ログインに成功するとユーザープロンプト($)のターミナル画面になります。(画面はホストwww変更後)
.
visudoの編集
1.初期設定をroot権限で行うため、「 su – 」コマンド (Super Userの略) で root ユーザーになります。(必要に応じてrootパスワードを入力します。)
$ su -
.
2.毎回、パスワードを入力するのは面倒くさいので「visudo」を編集して一般ユーザーにroot権限を与えます。
.
# visudo
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
gusachan ALL=(ALL) ALL ← (追記
## Same thing without a password
%wheel ALL=(ALL) NOPASSWD: ALL ← (行頭コメント#を外す
3.ユーザーを「wheel」グループに加えます。
# usermod -aG wheel gusachan
.
4.いったん(Ctrl+D)でrootからログアウトしてセッションを終了。新しいセッションから「 sudo su -」コマンドを打つと次回からパスワード無しで再ログインできます。
これで一般ユーザーから「sudo」コマンドで root 権限を実行できるようになりました。
.
$ sudo su -
$ sudo [任意のコマンド]
.
Development toolsのアップデート
それでは管理者権限で「 dnf 」コマンドを使ってソフトウェアを最新版にアップデートしてみましょう。
# dnf -y update
# dnf -y groupinstall "Development tools"
.
ここからOSの初期設定を駆け足でを行っていきます。
ロケールを日本語に変更
ここでは、localctl set-locale コマンドで日本語に設定していきます。また、timedatectl set-timezoneコマンドでタイムゾーン設定していきます。
# localectl set-locale LANG=ja_JP.UTF8
# localectl
System Locale: LANG=ja_JP.UTF-8 VC Keymap: jp X11 Layout: jp
# cat /etc/locale.conf LANG="ja_JP.UTF-8"
# timedatectl list-timezones Africa/Abidjan Africa/Accra Africa/Addis_Ababa Africa/Algiers Africa/Asmara Africa/Bamako ・ ・ Asia/Seoul Asia/Shanghai Asia/Singapore Asia/Srednekolymsk Asia/Taipei Asia/Tashkent Asia/Tbilisi Asia/Tehran Asia/Thimphu Asia/Tokyo ・ ・ # timedatectl set-timezone Asia/Tokyo
SSHポートの変更
1.お好みでSSHで使うポートを20000番以降に変更します。これはウェルノウンポート(22)への攻撃を軽減する意味があります。
# vi /etc/ssh/sshd_config
# If you want to change the port on a SELinux system, you have to tell # SELinux about this change. # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER # Port 22022 ← (お好みのポートに変更 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress ::
.
SELinuxコンテキストの変更
2.「SSHにはカスタムポートを使うよ!」ということでSELinuxコンテキストを設定します。これを必ずしないとSSHセッション終了したあと締め出されて詰みますが大丈夫です。ESXiホストからコンソールを開いてコマンド入力してください。
# semanage port -a -t ssh_port_t -p tcp 22022
.
SSHポート許可(ファイアウォール)設定
ポート指定
3.先ほど変更したSSHポートとついでにWebサーバーを公開できるようにhttp httpsサービスをファイアウォールで許可していきます。
ここではTCP/22022 ポートを指定していますがカスタムサービスとして登録するにはサービス指定をします。
# firewall-cmd --add-port=22022/tcp --zone=public --permanent
# firewall-cmd --add-service=http --zone=public --permanent
# firewall-cmd --add-service=https --zone=public --permanent
# firewall-cmd --reload
# firewall-cmd --list-all
.
サービス指定
3’.カスタムサービスをファイアウォールに登録するには「ssh-22022.xml」プロファイルをコピーして編集します。
# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-22022.xml
# vi /etc/firewalld/services/ssh-22022.xml
<port protocol="tcp" port="22022" /> ← (22022に変更 # firewall-cmd --add-service=ssh-22022 --zone=public --permanent ← (サービス指定 # firewall-cmd --reload ← (ファイアウォール再起動
SSH再起動
最後に現在のセッションを残して接続したまま「systemctl restart sshd」コマンドでSSHを再起動すると・・・。
# systemctl restart sshd
.
別セッションからSSH接続を確認
新しい接続で追加セッションを開始。カスタムポート(22022)で接続できることを確認して作業終了です。
.
お疲れ様でした。
おわりに
Google先生に何回も訊いていますが自分に言い聞かせる想いでメモしました。気づかない点、至らない点がありましたらご指摘くださると嬉しいです。
それでは楽しいRockyLinuxライフを!