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

CentOS 7 で公開鍵認証で ssh を使う設定を行ったのですが、一応破られる心配はないとはいえ、ログを見るといろいろなアドレスから接続が試みられています。そこで、安心のため、ポート番号も変えてしまいました。以下では、2222としていますが、実際は内緒!

SELinux

SELinux の確認をすると、

# getenforce
Enforcing
#

有効になっていますので、

# semanage port -a -t ssh_port_t -p tcp 2222
bash: semanage: コマンドが見つかりません
#

最小インストールにしたので、semanage が入っていません。

# yum -y install policycoreutils-python
    :
# semanage port -a -t ssh_port_t -p tcp 2222
# semanage port -l | grep ssh
ssh_port_t                     tcp      2222, 22
#

これでポートを登録できました。

sshd のポート変更

まずは、22 に加え、2222 を登録し、sshd を再起動。

# vi /etc/ssh/sshd_config
    :
Port 22
Port 2222
    :
# systemctl restart sshd.service
# systemctl status sshd.service
sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
   Active: active (running) since 火 2015-03-31 21:54:43 JST; 8s ago
  Process: 6634 ExecStartPre=/usr/sbin/sshd-keygen (code=exited, status=0/SUCCESS)
 Main PID: 6636 (sshd)
   CGroup: /system.slice/sshd.service
           └─6636 /usr/sbin/sshd -D
    :
# ss -l -n | grep 'LISTEN.*22'
tcp    LISTEN     0      128                    *:2222                  *:*     
tcp    LISTEN     0      128                    *:22                    *:*     
tcp    LISTEN     0      128                   :::2222                 :::*     
tcp    LISTEN     0      128                   :::22                   :::*     
#

ファイヤウォールの設定

# firewall-cmd --permanent --add-port 2222/tcp
success
# firewall-cmd --list-all
public (default, active)
  interfaces: eth0
  sources: 
  services: dhcpv6-client ssh
  ports: 2222/tcp
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 
	
#

新しいポートでの確認

間違えていると再接続できなくなるので、設定したセッションは残したまま、新しいポートで接続できることを確認。

$ ssh user@host.domain -p 2222
Last login: ... from ...
$ exit
ログアウト
Connection to host.domain closed.
$

標準ポート 22 を外す

まずは、22 登録から削除し、sshd を再起動。

# vi /etc/ssh/sshd_config
    :
#Port 22
Port 2222
    :
# systemctl restart sshd.service
# systemctl status sshd.service
    :
# ss -l -n | grep 'LISTEN.*22'
tcp    LISTEN     0      128                    *:2222                  *:*     
tcp    LISTEN     0      128                   :::2222                 :::*     
#

標準ポートでの確認

標準ポートで接続できないことを確認。

$ ssh user@host.domain -p 22
ssh: connect to host host.domain port 22: Connection refused
$

確認バージョン

# cat /etc/redhat-release 
CentOS Linux release 7.0.1406 (Core) 
# uname -srvo
Linux 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 GNU/Linux
カテゴリー: CentOS 7 タグ: パーマリンク

コメントは停止中です。