サーバーを再起動した後、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]は追加する必要があるポートです。
将来の再起動後にこの状況を回避するには、ルールを自動的に保存して復元するパッケージをインストールするだけです。apt-get install iptables-persistent
ルールはiptables-save > /etc/iptables/rules.v4
IPv6を使用して保存できます。ip6tables-save > /etc/iptables/rules.v6