Debian Jessie를 실행하는 Raspberry Pi가 있습니다. 광고 게재 도메인을 차단하기 위해 파이홀을 설치했습니다(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
루트 사용자를 사용하여 SSH를 통해 로그인하는 사람을 방지합니다.- SSHD 서비스를 다시 시작하기 전에 사용하십시오.시험 모드,
sudo sshd -T
. fail2ban
y와 같은 도구를 사용해 보세요psad
- 방화벽을 사용하세요(예: )
ufw
. - 귀하의 정보를 최신 상태로 유지하십시오.
- 관련 기사
답변3
라즈베리파이의 보안을 유지하려면 SSH 서버에서 비밀번호 로그인을 비활성화해야 합니다. 공개 키 인증만 사용하십시오(무차별 대입은 불가능함).
먼저 SSH 공개 키를 파이에 복사하세요.
그런 다음 /etc/ssh/sshd_config.d
아래에 securepi.conf
다음 줄이 있어야 합니다.
PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
UsePAM no
SSH 서버를 다시 시작하십시오.
변경 사항을 추적하고 실행 취소하기 어렵기 때문에 직접 편집하는 것을 좋아하지 않지만 /etc/ssh/sshd_config
, 파일이 아래에 있으면 sshd_config.d
간단히 파일을 삭제하여 변경 사항을 실행 취소할 수 있습니다.
다른 두 가지 제안:
- 포트를 여는 대신 cloudflare 터널을 사용하면 DDOS 및 유사한 공격을 방지할 수 있습니다.
- 특정 IP의 연결만 허용하려면 방화벽 규칙을 사용하세요.