私は実行しています:
$ ssh user@ip_address
そして長い間何の反応もなく待ちました。私のポートの状態を確認しようとしています。
$ a=`nmap ip_address -PN -p ssh | grep filtered`
$ echo $a
22/tcp filtered ssh
では、フィルタがあることを確認しますか?このフィルタをどのように削除できますか?
当時確認してみると次のようになります。
$ netstat -tln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:631 :::* LISTEN
そして:
$ ps -ef | grep 'ssh[d]'
root 1017 1 0 10:58 ? 00:00:00 /usr/sbin/sshd -D
Ubuntuのインストールは「生」なので、私のシステムにファイアウォール関連の問題があると思われます。間違っていたら訂正してください。
ポートを安全に開く方法についてのアイデアはありますか?このコンピュータの外部でSSH接続を有効にする必要があります。
答え1
ファイアウォールでポートを開きます(今はフィルタリングがあるとします)。サーバー(必要なマシンssh
)で次のことを試してください。
sudo ufw allow 22/tcp
シェルからエラーメッセージをここに投稿してください。
また、出力を投稿してください
sudo netstat -tlpn
特にファイアウォールコマンドが機能しない場合は、これを確認できますsshd
。
netstat
上記のコマンド(新しいiproute2ツール)が見つからない場合は、回避策を試してください。
sudo ss -tlpn
出力の読みやすさは低下しますが、ポート22で「LISTEN」を実行するプロセスは引き続きnetstat
表示されるはずです。sshd
答え2
あなたとip_addressの間の問題により、ip_address:22への接続がブロックされ、応答が受信されません。これは、ip_addressサーバー自体でも、ユーザーとサーバーの間のボックスでもかまいません。
どこでブロックが発生したかを追跡し、ポートを開く必要があります。