CentOS 7 で sshd のポート番号を変更する

CentOS

CentOS 7 では sshd のポート番号の変更手順が以前と変わっているのでメモしておきます。

手順

今回は、sshd のポート番号を 2222 に変更します。

1. SELinuxが有効な場合は、ポリシーを変更しておく

SELinuxが有効な場合は、sshd のポートとして 2222が使えるようにしておきます。

# SELinux操作用ツールをインストールします
$ sudo yum install setroubleshoot{-server,-plugins,-doc}
# sshdのポートとして 2222を追加します (SELinuxのポリシー上、ポート番号 22の設定は残っています)
$ sudo semanage port -a -t ssh_port_t -p tcp 2222

追加できたか確認します。

$ sudo semanage port -l | grep ssh
ssh_port_t                tcp   2222, 22

2. sshd自体の設定ファイルでポート番号を変更する

$ sudo vi /etc/ssh/sshd_config

以下の行を変更します。

#Port 22
  ↓ コメントインして変更
Port 2222

3. firewalld で sshd 用に定義しているポート番号を変更する

CentOS 7 で ポートを開放する場合、直接 iptables に変更を加えるのではなく firewalld を使います(firewalldを使わないことも可能ですが)。

firewalld では sshd サービスの情報を定義したファイルがデフォルトで用意されているので、これを利用します。設定を変更するには、サービス定義ファイルを修正用のディレクトリにコピーし、そちらを修正します。

サービス定義ファイルをコピーします。

$ sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/

修正用のサービス定義ファイルを編集します。

$ sudo vi /etc/firewalld/services/ssh.xml

ポート番号のところを変更します。

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
  <port protocol="tcp" port="2222"/> 
</service>

4. 設定を反映する

firewalld の設定を再読み込みします。

$ sudo firewall-cmd --reload

sshd を再起動します

$ sudo systemctl restart sshd.service

参考

最終更新日: 2014-12-05

Pocket

コメントを残す

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


*