가짜 스푸핑 IP로 인한 다수의 로그인 시도 실패를 방지하려면?

가짜 스푸핑 IP로 인한 다수의 로그인 시도 실패를 방지하려면?

내 시스템 로그 파일(/var/log/auth.log)에는 내 시스템에 로그인하려는 수백 개의 서로 다른 IP가 표시됩니다. 이러한 공격을 모두 방지하려면 어떻게 해야 합니까? 모든 IP 주소가 가짜인 것 같습니다("pin" 또는 "traceroute"). auth.log 파일에는 항상 수백 개의 다른 IP 주소가 표시됩니다.

정말 도움이 필요해요! 감사해요!

다른 사람들이 제안한 것을 읽고 있어요

  • StrictModes 예(무엇을 합니까?)
  • 호스트.허용 ALL : (IP 주소가 카페의 것이고 "나 나"인 경우 연결할 수 있습니까?)

내 방화벽 "iptables"의 모습은 다음과 같습니다.

asher@starparty:~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination    

다른 분들이 추천해주셔서 읽고 있는데..

  • iptables -I 입력 -s -p tcp -m tcp --dport 22 -j 수락

SSH 원격 로그인 출력 예: "tail /var/log/auth.log"

Dec  3 21:24:31 StarParty sshd[66702]: Failed password for root from 51.210.122.207 port 45722 ssh2
Dec  3 21:24:32 StarParty sshd[66702]: Received disconnect from 51.210.122.207 port 45722:11: Bye Bye [preauth]
Dec  3 21:24:32 StarParty sshd[66702]: Disconnected from authenticating user root 51.210.122.207 port 45722 [preauth]
Dec  3 21:24:38 StarParty sshd[66712]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=150.158.171.64  user=root
Dec  3 21:24:40 StarParty sshd[66712]: Failed password for root from 150.158.171.64 port 55444 ssh2
Dec  3 21:24:41 StarParty sshd[66721]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=142.93.34.237  user=root
Dec  3 21:24:41 StarParty sshd[66712]: Received disconnect from 150.158.171.64 port 55444:11: Bye Bye [preauth]
Dec  3 21:24:41 StarParty sshd[66712]: Disconnected from authenticating user root 150.158.171.64 port 55444 [preauth]
Dec  3 21:24:44 StarParty sshd[66721]: Failed password for root from 142.93.34.237 port 58226 ssh2
Dec  3 21:24:44 StarParty sshd[66721]: Received disconnect from 142.93.34.237 port 58226:11: Bye Bye [preauth]
Dec  3 21:24:44 StarParty sshd[66721]: Disconnected from authenticating user root 142.93.34.237 port 58226 [preauth]
Dec  3 21:25:00 StarParty sshd[66728]: Unable to negotiate with 218.92.0.212 port 45440: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1 [preauth]
Dec  3 21:25:01 StarParty CRON[66730]: pam_unix(cron:session): session opened for user root by (uid=0)
Dec  3 21:25:01 StarParty CRON[66730]: pam_unix(cron:session): session closed for user root
Dec  3 21:25:26 StarParty sshd[66776]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=150.158.171.64  user=root
Dec  3 21:25:27 StarParty sshd[66776]: Failed password for root from 150.158.171.64 port 33534 ssh2
Dec  3 21:25:30 StarParty sshd[66776]: Received disconnect from 150.158.171.64 port 33534:11: Bye Bye [preauth]
Dec  3 21:25:30 StarParty sshd[66776]: Disconnected from authenticating user root 150.158.171.64 port 33534 [preauth]

"tcpdump -A"

curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256...Arsa-sha2-512,rsa-sha2-256,ssh-rsa,ecdsa-sha2-nistp256,[email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]@openssh.com,[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1....none,[email protected],[email protected].......................
21:27:59.780431 IP 46.101.194.220.40238 > starparty.ssh: Flags [.], ack 1098, win 501, options [nop,nop,TS val 431378467 ecr 1031716663], length 0
21:27:59.781114 IP 46.101.194.220.40238 > starparty.ssh: Flags [P.], seq 22:462, ack 1098, win 501, options [nop,nop,TS val 431378471 ecr 1031716663], length 440
[email protected],ecdh-sha2-nistp256,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1...#ecdsa-sha2-nistp256,ssh-rsa,ssh-dss...daes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,blowfish-cbc,3des-cbc,des-cbc-ssh1...daes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,blowfish-cbc,3des-cbc,des-cbc-ssh1...   hmac-sha1...    hmac-sha1....none....none......
21:27:59.781131 IP starparty.ssh > 46.101.194.220.40238: Flags [.], ack 462, win 507, options [nop,nop,TS val 1031716853 ecr 431378471], length 0
21:27:59.983564 STP 802.1d, Config, Flags [none], bridge-id 8000.14:cc:20:b5:54:68.8003, length 35

내가 찾은 다른 도움은 다음과 같습니다. https://help.ubuntu.com/community/IptablesHowTo

답변1

Fail2Ban 프로그램을 사용해 볼 수 있습니다.https://www.fail2ban.org/wiki/index.php/Main_Page

그러면 실패한 로그인 시도로부터 소스 IP가 자동으로 차단됩니다.

꽤 잘 작동하고 있으며 구성할 수 있는 옵션도 많이 있습니다. 차단되기 전에 시도한 횟수나 차단되는 기간 등이 있습니다.

하지만 정말로 전 세계에 SSH를 개방하고 싶다면 고려해야 합니다. 따라서 귀하의 컴퓨터가 인터넷에 직접 연결되어 있다면 기본적으로 모든 것이 차단된 방화벽을 사용하는 것이 좋습니다. 그리고 해당 IP에서 SSH 전용으로 열어야 합니다.

답변2

SSH를 전 세계에 공개하는 데 따른 보안 위험을 제거할 수 있는 몇 가지 사항이 있습니다.

  • Fail2ban(이미 언급함)이 좋습니다. 방화벽에서 영구적으로 차단하거나 일정 기간 동안 차단하는 기능을 지원합니다.

  • 8000보다 높은 이상한 높은 수준의 포트에서 SSH를 실행합니다. 이렇게 해도 아무 것도 멈추지 않지만 대부분의 스크립트 키디가 포트 22를 탐색하므로 트래픽이 크게 감소합니다.

  • sshd_config의 PermitRootLogin이 Yes 값으로 실행되고 있지 않은지 확인하세요. SSH를 통해 루트 로그인이 필요하지 않습니다. 일반 사용자로 ssh로 접속한 다음 su할 수 있습니다. 이렇게 하면 관리자 액세스 권한을 얻으려면 두 개의 비밀번호가 필요합니다(일반 사용자가 sudo 권한을 갖는 Ubuntu 또는 이와 유사한 경우는 제외).

  • 이중 요소 인증을 고려하세요. 이는 Duo와 같은 상용 제품이나 Google 인증기와 같은 것을 사용하여 수행할 수 있습니다. 해당 설정 단계는 공급업체에서 제공합니다.

  • 로그인에 성공하면 이메일이 전송됩니다. 이를 통해 해커가 귀하가 설치한 안전 장치를 파괴하기 전에 액세스 권한이 있는지 즉시 알 수 있습니다. 이렇게 하려면 /etc/pam.d/sshd에 다음과 같은 세션 라인을 추가해야 합니다.

    세션 필요 pam_exec.so /root/scripts/send-ssh-notice.sh

    변수의 세부 정보를 제공할 수 있는 스크립트 샘플이 있으며 github에서 사용할 수 있습니다.Github에서 호스팅되는 sshlogin_alert.sh

    (예, 답변에 링크를 제공했는데 왜 안 됩니까? Github 코드는 유지 관리되고 포크를 지원하며 좋은 피드백을 제공합니다. 게시된 답변은 앞으로 몇 달 또는 몇 년 후에 다시 방문하지 않을 것입니다. 또한 크레딧은 예정된 위치와 이 Github 사용자가 훌륭한 일을 해냈습니다.)

답변3

슬프다..너무 슬프다?

그냥 "sshd 서버를 중지"해야 할 수도 있나요?

:(

아마도 추가 소프트웨어를 설치하지 않고 "간단한" 방법이 있을까요?

아직 문제가 해결되지 않았습니다. 하지만 올바른 경로에 있는 것 같나요?

sudo gedit /etc/ssh/ssh_config 
sudo systemctl restart ssh.service

"ssh_config"의 모습은 다음과 같습니다.

Include /etc/ssh/ssh_config.d/*.conf

Host *
# PermitRootLogin no
#   ForwardAgent no
#   ForwardX11 no
#   ForwardX11Trusted yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   GSSAPIKeyExchange no
#   GSSAPITrustDNS no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa
#   IdentityFile ~/.ssh/id_ed25519
Port 22
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,[email protected]
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#   RekeyLimit 1G 1h
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes

가능한 "iptable"에 대한 일부 수정도 있습니까?

관련 정보