Azure VMデプロイ直後のOS初期設定(CentOS 7.5編)
CentOS 7のAzure Virtual Machine(Azure VM) をデプロイ後に最初に実施しそうな事を整理してみました。
OSの日本語化、rootアカウント周りの設定、セキュリティ系設定等をしています。
作業を簡易化する為に、viコマンドではなくsedコマンドを利用するようにしています。環境に合わせて設定する内容を適時選択して実施して下さい。
rootのパスワードを設定し、デフォルトユーザーのsudo権限を剥奪する
AzureでMarketplaceからデプロイされたCent OSはrootのパスワードが非公開です。その為、一番最初に、rootのパスワード設定を実施します。rootのパスワード設定についてはこちらに纏め直したのでこちらを参照願います。
OSを日本語化し、TimeZoneを日本に合わせる
OSはデフォルトでは日本語化されていませんので日本語化します。併せてTimeZoneを日本にします。
[root@test-vm ~]# localectl set-keymap –no-convert jp106 |
SELinuxを無効化する
SELinuxを使わない場合は無効化します。setenforce 0でまず無効化します。永続的な設定は/etc/selinux/configを変更します。SELINUX=enforcingの行をsedコマンドでSELINUX=disabledに変更しています。
[root@test-vm ~]#setenforce 0 [root@test-vm ~]#cp -p /etc/selinux/config /etc/selinux/config.`date “+%Y%m%d"` |
firewalld 無効化する
firewalldを使わない場合は無効化します。systemctlコマンドで停止(stop)、無効化(disable)しています。
[root@test-vm ~]# systemctl stop firewalld #fail2banやその他、firewalldでアクセス制御する場合は有効化のまま設定しましょう。 |
※セキュリティ面を十分に考慮した上で実施可否の判断をして下さい。
rootユーザーのSSHログイン拒否する
rootユーザーのSSHログインを明示的に拒否します。設定は/etc/ssh/sshd_configで行います。明示的にPermitRootLogin noを記載しています。
[root@test-vm ~]#cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.`date “+%Y%m%d"` |
ログイン失敗回数上限を設定する
一定回数以上ログイン失敗があった場合は、一定時間ログインできないようにします。pam.dの設定で行っています。sedコマンドで各ファイルに行を追加しています。
[root@test-vm ~]#sed -i -e “3i auth required pam_tally2.so deny=5 unlock_time=3600" /etc/pam.d/system-auth #今回の場合は、5回失敗したら、1時間ログインできないように設定しています。 |
SWAP領域を設定する
デプロイ直後ではOSのSWAP領域が設定されていません。設定は/etc/waagent.confで行います。
ResourceDisk.EnableSwap=nをResourceDisk.EnableSwap=yとする事でswapを有効化します。
ResourceDisk.SwapSizeMBの行で容量指定を行います。今回はResourceDisk.SwapSizeMB=1024としswap領域を1024MBとしています。
[root@test-vm ~]#cp -p /etc/waagent.conf /etc/waagent.conf.`date “+%Y%m%d"` [root@test-vm ~]#sed -i -e “s/ResourceDisk.EnableSwap=n/ResourceDisk.EnableSwap=y/g" /etc/waagent.conf #今回の場合は、B1S(メモリ1GB)を利用している為、1024MBで設定します。Virtual Machineのメモリ容量に応じて適時変更してください。 |
anacronからnoanacronに置き換える
CentOS7からはデフォルトでanacronがインストールされています。ログローテーションのタイミング等を固定したかったので、今回はnoanacronに変更しています。yumコマンドでパッケージのアンインストール、インストールを実施しています。併せて、Cronのrootへのメール設定削除も行ってます。
[root@test-vm ~]#yum -y install cronie-noanacron [root@test-vm ~]#sed -i -e “s/MAILTO=root/MAILT0=/g" /etc/cron.d/dailyjobs [root@test-vm ~]#sed -i -e “s/MAILTO=root/MAILT0=/g" /etc/crontab #Cronのメールも削除してます。 #必要に応じて、/etc/cron.d/dailyjobsを編集し実行時間を変えます。 |
NTPを設定する
NTPにはchronyが利用されています。デフォルトのままでは海外のNTP Serverを検索してしまいます。日本国内のNTPサーバを参照するように変更します。
[root@test-vm ~]#cp -p /etc/chrony.conf /etc/chrony.conf.`date “+%Y%m%d"` [root@test-vm ~]#vi /etc/chrony.conf #以下の行をコメントアウトする server 0.centos.pool.ntp.org iburst #以下の行を追加する。leapsecmode以下の行はうるう秒対策。 server ntp.nict.jp iburst leapsecmode slew #内部NTPがある場合は、必要に応じてホストの指定先を変更します。 |
rebootコマンドでOSの再起動を実施する事で、各サービスの再起動、SWAP領域の有効化が行われます。