SSHポート変更SELinuxでつまづく

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂3版 でCentOS7.8 をAWS に実際にインスタンスとして起動、設定をしたのでメモ。

タイムゾーン設定
AWS EC2 Amazon Linuxインスタンス起動後、最初にやることまとめ

# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# vi /etc/sysconfig/clock
ZONE="Asia/Tokyo" UTC= true
# shutdown -r now

yum ファステストミラー設定、グループインストール、アップデート
CentOS7 で yum groupinstall が出来ないんですけど。。。

# vi /etc/yum/pluginconf.d/fastestmirror.conf

include_only=.jp

# yum -y install bash-completion
# yum -y groupinstall base "Development tools" --setopt=group_package_types=mandatory,default,optional
# yum -y update

SSHポート変更
(AWSコンソールのEC2→セキュリティグループ→インバウンドルールの編集からカスタムTCPポート20022を許可)

# vi /etc/ssh/sshd_config
Port 20022
# setenforce 0 # vi /etc/selinux/config
SELINUX=permissive # semanage port -a -t ssh_port_t -p tcp 20022 # systemctl restart sshd # systemctl enable sshd

ここでSELinuxのコンテキスト変更せずにインスタンス再起動するとsshd 起動エラーを起こして通信できなくなる罠。AWSで再起動後、SSHが繋がらなくなった場合の対処法。SELinuxが原因でした。

semanage port -a -t ssh_port_t -p tcp 20022

ふしあなさん、/etc/ssh/sshd_config に英文の注意書きがありましたね・・・これに気付くまでインスタンス削除、起動を10回繰り返しましたよorz

設定の途中で一時的にPermissive にしてもセキュリティ上は最終的にSELinux は有効にすることが望ましいと思います。Amazon LinuxでSELinuxを有効にする。

AWS ではセキュリティグループでポート管理を行うのでインスタンス内でfirewalld をアクティブにしないのがベストプラクティスのようですね。

AWSコンソールからVPC→アクション→DNS解決の編集を有効化

AWSコンソールからVPC→アクション→DNSホスト名の編集を有効化

AWSコンソールからRoute53→ホストゾーン作成

AWSコンソールからRoute53→EC2のElastic IP からAレコード転記

あらかじめGodaddyで取得した独自ドメインのネームサーバーにホストゾーンで生成されたアドレスを転記

GoDaddyからRoute53によるDNS管理に変える方法

nslookup ブラウザで名前解決できることを確認して作業終了しました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です