2016年6月10日金曜日

centos7のsshポートを変更する方法


22番以外のポートでssh接続できるまでにまあまあ時間をとられたので、メモを残します。

全体像


  • sshの設定
  • firewalledの設定
  • SELinuxの設定
  • sshで接続

centos6で使われていたiptableがcentos7では使われなくなり、代わりにfirewalledとSELinuxのポート設定を変更する必要があります。

この記事では2345番ポートにssh接続することを目的として、設定方法を説明します。

sshの設定

sshのconfigファイルを開きます。
sudo vi /etc/ssh/sshd_config

下記の行を追加します。
/etc/ssh/sshd_config
Port 2345

sshを再起動します。
sudo service sshd restart

firewalledの設定

iptableの代わりに使われるようになったfirewalledというファイヤーウォールプログラムの設定を変更します。

2345番ポートtcpとして追加します。
sudo firewall-cmd --add-port 2345/tcp --permanent

firewalledを再起動します。
sudo firewall-cmd --reload

「2345/tcp」が有効になっていることを確認します。
sudo firewall-cmd --list-all

SELinuxの設定

SELinuxのポート設定を変更します。
設定変更には「semanage」というプログラムを使うのですが、デフォルトではインストールされていません。
インストールされていない理由を探してみたのですが、よく分かりませんでした。
理由を把握されている方が居らっしゃれば、教えて頂けると嬉しいです。

下記のコマンドで「semanage」をインストールします。
sudo yum install policycoreutils-python

2345番のtcpポート設定をsshのために追加します。
sudo semanage port -a -t ssh_port_t -p tcp 2345

使わなくなった22番ポートを削除しようとしたのですが、システムに標準で定義されているためか、削除できませんでした。
sudo semanage port -d -t ssh_port_t -p tcp 22

sshポートを確認します。
sudo semanage port -l | grep ssh

sshで接続

ssh、firewalled、SELinuxの設定がうまくいけば、2345ポートに対してssh接続出来るようになると思います。
ローカルのPCで接続を試みてください。
ssh [username]@[server host] -p 2345

以上です。
参考になれば嬉しいです。

参考

sshd_conf設定変更の参考にしました。
さくらVPS/Cent OS 6.4 初期状態から鍵認証SSHでの接続まで[Railsサーバへの道]

centos公式のwikiです。
firewall-cmdの使い方の参考にしました。
Securing OpenSSH

firewall-cmdの使い方の参考にしました。

sesmanageインストール方法の参考にしました。

centos公式のwikiです。
sesmanageのコマンドの使い方の参考にしました。

全体の流れの参考にしました。

0 件のコメント :