
Debian Jessieを実行するRaspberry Piがあります。広告配信ドメインをブロックするためにPyholeを設置しました(https://pi-hole.net)。ログを見て、中国のドメインから多くのクエリが来ていることがわかりました。
lsof -i
疑わしいと思われる次のリストが表示されます。
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1742 root 3u IPv4 16960 0t0 TCP raspberrypi:ssh->116.31.116.47:50600 (ESTABLISHED)
sshd 1743 sshd 3u IPv4 16960 0t0 TCP raspberrypi:ssh->116.31.116.47:50600 (ESTABLISHED)
sshd 1774 root 3u IPv4 16990 0t0 TCP raspberrypi:ssh->183.214.141.105:56265 (ESTABLISHED)
sshd 1775 sshd 3u IPv4 16990 0t0 TCP raspberrypi:ssh->183.214.141.105:56265 (ESTABLISHED)
sshd 1869 root 3u IPv4 17068 0t0 TCP raspberrypi:ssh->116.31.116.47:33525 (ESTABLISHED)
sshd 1870 sshd 3u IPv4 17068 0t0 TCP raspberrypi:ssh->116.31.116.47:33525 (ESTABLISHED)
sshd 1910 root 3u IPv4 17122 0t0 TCP raspberrypi:ssh->116.31.116.47:35816 (ESTABLISHED)
sshd 1911 sshd 3u IPv4 17122 0t0 TCP raspberrypi:ssh->116.31.116.47:35816 (ESTABLISHED)
sshd 1931 root 3u IPv4 17158 0t0 TCP raspberrypi:ssh->116.31.116.47:49492 (ESTABLISHED)
sshd 1932 sshd 3u IPv4 17158 0t0 TCP raspberrypi:ssh->116.31.116.47:49492 (ESTABLISHED)
sshd 1935 root 3u IPv4 17163 0t0 TCP raspberrypi:ssh->183.214.141.105:23828 (ESTABLISHED)
sshd 1936 sshd 3u IPv4 17163 0t0 TCP raspberrypi:ssh->183.214.141.105:23828 (ESTABLISHED)
sshd 1937 root 3u IPv4 17168 0t0 TCP raspberrypi:ssh->116.31.116.47:53628 (ESTABLISHED)
sshd 1938 sshd 3u IPv4 17168 0t0 TCP raspberrypi:ssh->116.31.116.47:53628 (ESTABLISHED)
sshd 1940 root 3u IPv4 17176 0t0 TCP raspberrypi:ssh->116.31.116.47:57858 (ESTABLISHED)
sshd 1941 sshd 3u IPv4 17176 0t0 TCP raspberrypi:ssh->116.31.116.47:57858 (ESTABLISHED)
sshd 1944 root 3u IPv4 17194 0t0 TCP raspberrypi:ssh->183.214.141.105:28355 (ESTABLISHED)
sshd 1945 sshd 3u IPv4 17194 0t0 TCP raspberrypi:ssh->183.214.141.105:28355 (ESTABLISHED)
パスワードを変更してPiを再起動した後、不明なユーザーがいることを確認しました。 Piを安全に保つにはどうすればよいですか?
答え1
セキュリティの脆弱性が存在する場合もあり、存在しない場合もあります。
これは単にパスワードを無差別に代入したいと思うかもしれません。接続すると、パスワードを試して失敗し、他のパスワードを試していないか、接続を閉じると、その接続が最終的にsshdによって閉じられることがわかります。
/var/log/auth.log
ログイン試行に関するいくつかの情報が必要です。このlast
コマンドは正常にログインしたことを示します。
答え2
icarusがすでに述べたように、サーバーにセキュリティの脆弱性があるかどうかを判断することは不可能です。設定された接続を表示または表示するlsof -i
場合ss -tulpn
~からホストが(ssh / 22ポートで)疑わしいIPに接続している場合は、最初から開始することを検討してください。
last
成功したログインを表示するのに便利ですが、次のことに興味があるかもしれません。lastb
sudo lastb # Show a list of all last logged in users
sudo lastb --since YYYY-MM-DD # Show a list of all last logged in users since a given time
他の答えでは見られなかったセキュリティアドバイス:
- sshd 受信ポートを 22 より高いランダム TCP ポートに移動しました。
Port 22
から変更されました/etc/ssh/sshd_config
。ポートノッキングも追加できます。 PermitRootLogin prohibit-password
(同じwithout-password
)/etc/ssh/sshd_config
rootユーザーを使用してSSH経由でログインしている人を防ぎます。- SSHDサービスを再起動する前に使用してください。テストモード、
sudo sshd -T
。 fail2ban
yなどのツールを試してくださいpsad
- ファイアウォールを使用してください(例:)
ufw
。 - お客様の情報を最新の状態に保ちます。
- 関連記事
答え3
ラズベリーファイのセキュリティを維持するには、SSHサーバーでパスワードログインを無効にする必要があります。公開鍵認証のみを使用してください(無差別代入はできません)。
まず、SSH公開鍵をPyにコピーします。
その後、/etc/ssh/sshd_config.d
次securepi.conf
の行が必要です。
PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
UsePAM no
SSH サーバーを再起動します。
変更を追跡して元に戻すのは難しいので、自分で編集するのは好きではありませんが、ファイルが/etc/ssh/sshd_config
下にある場合は、sshd_config.d
単にファイルを削除して変更を元に戻すことができます。
他の2つの提案:
- ポートを開く代わりにcloudflareトンネルを使用すると、DDOSや同様の攻撃を防ぐことができます。
- 特定のIPへの接続のみを許可するには、ファイアウォールルールを使用してください。