さくらVPN(CENTOS7)を使っていて急に外部ネットワークネットからsshでサーバーにアクセスできなくなったときの対処メモ。
1. suコマンドでrootになって/var/log/messagesの中身を確認したところ、前日に行ったyum updateした後から、dockerがiptablesやfirewalldがらみでfailedをはいているのを確認。
#yum update
2. ネットで調べてファイヤーウォールに問題があるとにらみ、firewalldサービスの状態確認。
#systemctl status firewalld.service
Active: active (running)になっているが、WARNING: COMMAND_FAILED: ‘/usr/sbin/iptables ….. docker0 ……
というWARNINGが表示される。
3. 試しにfirewalldサービスをストップしてみる。すると、外部からのssh接続成功。
#systemctl stop firewalld.service
4. firewalldサービスを起動し有効な設定を確認。sshは有効になっている。
#firewall-cmd --list-services --zone=public --permanent hcpv6-client ssh http
5. iptablesが悪いのかと状態を確認すると入っていない。firewalldがやはりおかしい。
#systemctl status iptables.service Unit iptables.service could not be found.
6. 念のため、sshを許可しreloadで設定を反映させてもssh接続できない。
#firewall-cmd --add-service=ssh --permanent #firewall-cmd --reload
7. firewalldのsshの設定を確認したらPortがデフォルトの「22」になっていた。/etc/ssh/sshd_configに設定しているPort番号と違っている!
念のため、デフォルトのssh.xmlをコピーしてから/etc/ssh/sshd_configの設定に合わせてPort番号を変更。
すると無事にssh接続成功!
#cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ #vi /etc/firewalld/services/ssh.xml <port protocol="tcp" port="22"/> #ここを変更 #firewall-cmd --reload