久しぶりにCentOSを使おうとしたところ、忘れていたので備忘として紹介します。
SELinuxの設定変更
SELinuxの状態確認をします。
$sudo getenforce Enforcing
まずはSemanageコマンドをインストールします。
$sudo yum install policycoreutils-python
SELinuxのsshポートの設定状況を確認します。
$ sudo semanage port --list | grep ssh ssh_port_t tcp 22
SELinuxの設定にポートを追加します。今回は2222に設定することとします。
$ sudo semanage port --add --type ssh_port_t --proto tcp 2222
結果を確認します。
$ sudo semanage port --list | grep ssh ssh_port_t tcp 2222, 22
sshdサービスのポート変更
まずはsshdサービスのコンフィグファイルをバックアップ。
$sudo cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.orignal
次にsshd_configファイルの以下の行を修正します。
変更前:#Port 22
変更後:Port 変更したい任意のポート番号(今回は2222)
その後、sshdのサービスを再起動します。
$sudo systemctl restart sshd
上記のコマンドを実行した際に以下のエラーが発生する場合があります。これはSELinuxの設定によるものなので上述のSELinuxの設定ができていないことによるものですので、再度設定を見直してください。
Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.servic e" and "journalctl -xe" for details.
OSのファイアウォール(firewalld)設定を変更する。
まずは設定ファイルをコピーします。今回はssh.xmlをssh-2222.xmlというファイル名で保存します。firewalldのデフォルト設定のファイル位置と変更する場合のファイル位置が異なるので注意です。
・ /usr/lib/firewalld/ はシステムデフォルト設定の保存場所
・ /etc/firewalld/ はユーザーが設定変更した場合の設定ファイルの保存場所
$ sudo cp -p /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-22 22.xml
コピーしたssh-2222.xmlの以下の箇所を変更します。
変更前:<port protocol=”tcp” port=”22″/>
変更後:<port protocol=”tcp” port=”2222″/>
次に既存のsshのサービスを削除します。今回はもともとEnableになっていなかったのでWarningが出力されました。
$ sudo firewall-cmd --permanent --remove-service=ssh Warning: NOT_ENABLED: ssh success
新しくssh-2222をサービスとして追加します。
$ sudo firewall-cmd --permanent --add-service=ssh-2222 success
最後にfirewalldを再起動します。
$sudo firewall-cmd --reload
設定については以上です。
GCEでのセットアップはGCPのファイアウォール設定等も必要ですが今回はCentOSのポート変更設定手順の備忘が趣旨なので割愛します。こちらの記事でGCEのsshポート番号変更について記載しています。
コメント