Rocky LinuxのAzure VM作成手順やOS初期設定手順
Rocky Linuxの仮想マシン(Azure VM)の作成から、日本語化、swap有効化などのOS初期設定手順について紹介しています。
-
- 主な内容
- 仮想マシンリソース作成
- ネットワークセキュリティグループ(NSG)設定確認
- パッケージアップデート
- Rocky Linuxの日本語化
- swap設定
- Rocky Linuxのアカウントロック設定(ログイン試行上限設定)
- Selinux無効化
- 主な内容
※Rocky Linux release 8.8 (Green Obsidian)を利用しています。2023年7月現在の情報です。
※Selinux無効化についてはセキュリティ的に推奨されるものではありません。
※本記事内ではAzure Virtual Machines(Azure VM)を仮想マシンと記載しています。
※本記事内ではAzure Network Security Group(NSG)をネットワークセキュリティグループと記載しています。
※初期設定はOSの設定を中心に纏めています。
Rocky Linuxの仮想マシン作成手順
仮想マシンの作成手順
Rocky Linux 8の仮想マシンを作成します。
今回は”sv-cacti-01”という名前で”East US2”リージョンに作成しています。
カスタムデータについてはこちらで紹介してます。
TimeZoneやLocaleの設定変更を例に手順を紹介しています。
仮想マシンへのログイン
Tera Termを使って仮想マシンへログインします。
ログイン | |
ホストに接続先のIPアドレス(もしくはホスト名)を指定します。 | |
認証画面が表示されます。 ユーザー名とダウンロードした秘密キー(秘密鍵)を指定します。 |
|
サーバへログインする事が出来ました。 sudo su -でrootユーザーになる事も出来ます。 |
初期状態ではSSHがインターネットへ全開放されてしまう
Rocky Linuxを作成する場合、ネットワークセキュリティグループ指定する必要があります。
このネットワークセキュリティグループはネットワークインターフェースへ関連付けされます。
新規作成か既存のネットワークセキュリティグループから選択します。
新規作成した場合のネットワークセキュリティグループを確認するとSSH(22番ポート)がインターネットへ公開されています。
セキュリティ的に非常に危険な状態なので、すぐにIPアドレスなどのアクセス制限をします。
ネットワークセキュリティグループ確認 | |
受信セキュリティ規則にSSHのルールがあります。 ソース、宛先共に任意となっています。 どこからでもSSH(22番ポート)へアクセスできるようになっています。 |
仮想マシンのネットワークセキュリティグループ設定についてはこちらで紹介しています。
生成されたSSHキー
仮想マシン作成時にSSHキーを生成した場合はSSHキーのリソースが生成されます。
SSHキーのリソースに公開鍵が保管されます。
別の仮想マシン作成時にSSHキーに保管した公開鍵を利用できます。
SSHキー確認 | |
SSHキーのリソースが生成されています。 ※秘密キー(秘密鍵)はダウンロードできません。 |
仮想マシンの管理者アカウントの認証にSSHキーを使う場合の手順についてはこちらでも紹介しています。
SSHキーでの鍵生成やパスフレーズ付きの鍵ペアを利用する方法について紹介しています。
—広告—
仮想マシン作成後の初期設定
rootユーザー周りの設定
Marketplaceから作成したRocky Linuxですがrootユーザーのパスワードが公開されていません。
仮想マシン作成時に設定した初期ユーザーにはsudo権限が付与されています。
-
- rootユーザーに関する設定
- rootユーザーのパスワード設定
- 初期ユーザーのsudo権限
- rootユーザーのsshログイン拒否
- rootユーザーに関する設定
rootユーザーの設定についてはこちらに纏めています。
パッケージのアップデート
パッケージをアップデートします。
#アップデート |
※アップデートは利用環境に合わせて実施下さい。
TimeZoneを日本時間に設定
TimeZoneを日本時間に設定します。
Rocky Linux 8の時刻設定にはtimedatectlコマンドを利用します。
#設定前の確認 #設定後の確認 |
システムロケールとキーボードマップを日本語に設定
システムのロケールを日本に設定します。
日本語キーボードマップの設定をしています。
ロケールの設定にはlocalectlコマンドを利用します。
#設定前の確認 #日本語化設定 |
※初期状態でglibc-all-langpacks-2.28-211.el8.x86_64がインストールされています。Rocky Linux 9ではglibc-all-langpacksがインストールされていません。日本語化実施時はglibc-all-langpacksかglibc-langpack-jaを個別にインストールする必要があります。
ログイン失敗回数上限設定する
Rocky Linuxのローカル認証にはSSSD(System Security Services Daemon)が利用されています。
authselectコマンドを使って設定します。
アカウントロックに対応するfeatureはwith-faillockです。
-
- アカウントロック設定内容
- ユーザー名が存在しない場合:ログ取得する
- ログイン試行回数:3回
- ログイン失敗の間隔:300秒(5分)
- ローカルユーザーのみを対象とする
- rootユーザーも対象とする
- アカウントロック設定内容
※コメントアウトを外すと設定が有効になります。
※ログイン失敗の間隔は最初の失敗からの間隔になります。
#現在の設定を確認 #アカウントロック機能有効化 #設定後の確認(有効な機能が追加になっています。) #アカウントロック設定(設定ファイルバックアップしてから設定) # Will log the user name into the system log if the user is not found. audit # Only track failed user authentications attempts for local users local_users_only # Deny access if the number of consecutive authentication failures deny = 3 # The length of the interval during which the consecutive fail_interval = 300 # The access will be reenabled after n seconds after the lock out. unlock_time = 300 # Root account can become locked as well as regular accounts. even_deny_root # This option implies the `even_deny_root` option. |
swapを設定
デフォルトではswapが設定されていません。
仮想マシンのswap設定は/etc/waagent.confで行います。
swapを有効化はResourceDisk.EnableSwapで設定します。
swap領域のサイズはResourceDisk.SwapSizeMBで設定します。
waagent.confの詳細については公式サイトを参照願います。
構成(Azure Linux VM エージェントの概要)
ResourceDisk.EnableSwap
ResourceDisk.SwapSizeMB
#設定ファイルのバックアップ #設定前の確認 #Swap領域設定 # Create and use swapfile on resource disk. # Size of the swapfile. #設定後の確認(OS再起動後に反映されます。) |
SELinuxを無効化
動作確認や切り分けを行う場合にSELinuxを無効化したい場合があります。
SELinuxの無効化は一時的な設定と恒久的な設定が出来ます。
SELinuxの設定ファイルは/etc/selinux/configになります。
SELINUX=の行が設定値になります。
disabledを設定すると完全に無効化されます。
※SELinuxの無効化を推奨するものではございません。SELinuxの無効化はセキュリティレベルを下げるものとなります。SElinuxを無効化する場合はご注意下さい。
※Rocky Linux9の場合の手順はこちらに纏めています。
#初期状態の設定(有効かつアクセスを拒否するEnforcingが設定されています。) #一時的な無効化 #コマンド実行後の設定(有効だがアクセスは許可されるPermissiveが設定されています。) #永続的に無効化する場合 #設定変更後 |
最後に
Rocky Linux8の仮想マシン作成から利用開始までのOS初期設定などを纏めてみました。
パブリッククラウドの場合は外部からの攻撃を受けやすいので注意が必要かと思います。
ネットワークセキュリティグループは必要最低限の許可しかしない、アカウントロック設定等を行っておくなどの軽減策は必要かと思います。
今後も色々試してみたいと思います。
仮想マシン作成時のカスタムデータ(cloud-init)設定についてはこちらで紹介しています。
作成時にOSの設定を一緒に実行する手順を紹介しています。
作成時に推奨されるアラートルールやバックアップ設定を作成時に有効化した場合についてはこちらに纏めています。
PowerShellを利用した仮想マシン(Rocky Linux)の作成手順についてはこちらで紹介しています。