
サーバーを再起動した後、SSH でサーバーに接続できなくなりました。私はヘッドレス Ubuntu 20.04.5 を実行しています。問題を調査した後、サーバーのすべてのポートが閉じているように見えることに気付きました (yougetsignal などのオープン ポート チェッカーを使用)。以前はすべてのポートが開いていた状態でテストしました。
ただし、sudo netstat -tulpn | grep LISTEN
ポートが開いていることが返されます。ポート 22 の例:
tcp6 0 0 :::22 :::* LISTEN 362/sshd: /usr/sbin
telnet localhost 22
タイムアウトも発生します。
次に私が想定したのは、何らかの理由で iptables ルールが上書きされたということだったので、iptables -S | grep '22'
引き続きポート 22 を例として を実行しました。結果は次のようになりました。
-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
また、ufw もインストールされておらず、私が知る限り他のファイアウォール サービスもインストールされていません。
問題がどこにあるのかもわからず、解決もできないため、今は途方に暮れています。
どなたか助けていただければ幸いです。
アップデート:
nnmap localhost
出力は次のようになります。
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000012s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 985 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
110/tcp open pop3
143/tcp open imap
443/tcp open https
465/tcp open smtps
587/tcp open submission
993/tcp open imaps
995/tcp open pop3s
3000/tcp open ppp
3306/tcp open mysql
8090/tcp open opsmessaging
ただし、別のシステムから nmap を使用してスキャンすると、次の結果が返されます。
Host is up (0.0011s latency).
Not shown: 995 filtered ports
PORT STATE SERVICE
53/tcp open domain
143/tcp open imap
993/tcp open imaps
995/tcp open pop3s
40193/tcp closed unknown
したがって、ポートは開いているように見えますが、外部からはアクセスできません。
答え1
私はこれを解決できました。同じ問題でこのスレッドに遭遇した人のために手順を残しておきます。
問題は、再起動後に iptables ルールが保存されないことです。具体的には、IN_public_allow の部分です。サーバーで開いているポートがすべてリストされるはずです。リストされない場合は、上記のルールを手動で追加する必要がありますiptables -A IN_public_allow -p tcp --dport [PORT]-j ACCEPT
。ここで、[Port] は追加するポートです。
今後の再起動後にこれを回避するには、ルールを自動的に保存および復元するパッケージをインストールするだけです。ルールは、およびIPv6 でapt-get install iptables-persistent
保存できます。iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6