
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 22223. 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
