ConoHa VPS の CentOS7 における22番以外のポートからのSSH接続

投稿者: Anonymous

ConoHaVPSを契約し, 初期設定を行っていたのですが, SSH接続ポートを22から変更することができません.
変更直前に接続を確認する段階で, 22番ポートからは接続できるのですが, なぜか変更先ポートへの接続の場合

ssh -p 10222 [email protected]

とすると

ssh: connect to host xxx.xxx.xxx.xxx port 10222: Connection refused

と出て拒否されてしまいます.
22番ポートの認証にはパスワードを使っています.

契約から今までに行った設定は

ssh [email protected]
- # yum update
- # adduser -m ssh-user-name
- # passwd ssh-user-name
- # vim /etc/pam.d/su

    auth required pam_wheel.so use_uid   ← コメントアウト解除

- # vim /etc/login.defs

    SU_WHEEL_ONLY yes  ← 追加

- # visudo

    %wheel ALL=(ALL) ALL  ←コメントアウト済を確認

- # usermod -G wheel ssh-user-name

     ユーザーを変更して再接続

- $ sudo vim /etc/ssh/sshd_config

    Port 22 <- 追加
    Port 10222 <- 追加

- $ sudo systemctl restart sshd

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

    <port protocol="tcp" port="22"/> を <port protocol="tcp" port="10222"/> に変更

- $ sudo firewall-cmd --reload
- $ sudo firewall-cmd --add-service=ssh-alt
- $ sudo firewall-cmd --permanent --add-service=ssh-alt

- $ sudo firewall-cmd --list-all
    〜
    services: dhcpv6-client ssh ssh-alt を確認
    〜

です.
1回再起動もかけました.

また,

netstat -tanp

では

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name  
〜  
tcp        0      0 0.0.0.0:10222           0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -   
tcp6       0      0 :::10222                :::*                    LISTEN      -                   
tcp6       0      0 :::22                   :::*                    LISTEN      -
〜

となっているのですが, 手元のPCから

nmap -p ssh xxx.xxx.xxx.xxx

とすると

PORT   STATE SERVICE
22/tcp open  ssh

となってしまいます.

どのようにすれば, 10222番ポートからSSH接続できるのでしょうか.
よろしくお願いします.

追記

$ iptables -L

とすると

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             ctstate      RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            
INPUT_direct  all  --  anywhere             anywhere            
INPUT_ZONES_SOURCE  all  --  anywhere             anywhere            
INPUT_ZONES  all  --  anywhere             anywhere            
ACCEPT     icmp --  anywhere             anywhere            
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             ctstate   RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            
FORWARD_direct  all  --  anywhere             anywhere            
FORWARD_IN_ZONES_SOURCE  all  --  anywhere             anywhere            
FORWARD_IN_ZONES  all  --  anywhere             anywhere            
FORWARD_OUT_ZONES_SOURCE  all  --  anywhere             anywhere            
FORWARD_OUT_ZONES  all  --  anywhere             anywhere            
ACCEPT     icmp --  anywhere             anywhere            
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
OUTPUT_direct  all  --  anywhere             anywhere   

と表示されました.

解決

すみません、タイトルをちゃんと見ていませんでした。CentOS7なのですね。
だとするとiptablesではなくてfirewalldを使います。

firewalldでも10022番ポートがフィルタリングされている状況は同じです。/usr/lib/firewalld/services/ssh.xmlに以下のようにポート10022の設定を追加して、firewalldをリロードしてみてください。

<port protocol="tcp" port="22"/>
<port protocol="tcp" port="10022"/>         <== 追加

以下のコマンドでリロード

# firewall-cmd --reload
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *