내 웹 서버는 다양한 IP 주소에 의해 끊임없이 공격을받습니다. 5 개의 비밀번호를 시도한 다음 IP 주소를 변경합니다.
ssh-keys 사용 및 암호 허용 및 원격 루트 로그인 허용과 같은 다양한 잠금을 수행했습니다.
이러한 공격 시도를 제거하기 위해 내가 할 수있는 일이 있습니까? 실패하면, 내가 방어해야 할 특정한 방어책이 있습니까?
내 웹 서버는 다양한 IP 주소에 의해 끊임없이 공격을받습니다. 5 개의 비밀번호를 시도한 다음 IP 주소를 변경합니다.
ssh-keys 사용 및 암호 허용 및 원격 루트 로그인 허용과 같은 다양한 잠금을 수행했습니다.
이러한 공격 시도를 제거하기 위해 내가 할 수있는 일이 있습니까? 실패하면, 내가 방어해야 할 특정한 방어책이 있습니까?
답변:
그것은 실제로 삶의 사실입니다. 몇 번의 시도 실패 후 공격하는 호스트를 필터링하는 도구를 설치할 수 있습니다.
DenyHosts 는 로그 파일을 분석하고 파일에 공격자를 자동으로 추가 /etc/hosts.deny
합니다.
필요에 맞게 구성하는 방법에 대한 설명서를 확인하십시오.
업데이트 : 의견에서 제안 된 몇 가지 중요한 사항
자신을 잠글 수 있으므로 도구를 DenyHosts로 올바르게 구성하십시오 (예 : 필터링되지 않은 시스템 또는 네트워크를 구성 할 수 있음)
DenyHosts는 시스템 보안을 향상시키지 않습니다. IP 수준의 공격 만 필터링합니다 (작은 컴퓨터의로드를 줄이고 로그 파일의 크기를 줄일 수 있지만 그 밖의 것은 없습니다)
refs Q1.3
denyhosts.sourceforge.net/faq.html#1_0
apt-get install denyhosts
해서 기계에 갇히게되었습니다.
이 지침 에 따라 각 잘못된 비밀번호 SSH 로그인 시도에 7 초 지연을 추가했습니다. 나는 sshd를 무차별 스캐너 용 "타르 핏"으로 만들었다.
또한 수정 된 tarpit sshd 로그에 실패한 비밀번호를 기록했음을 추가해야합니다. 루트 사용자에게 일반 사용자가 자신의 암호로 잘못 입력 한 내용을 볼 수 있기 때문에 이것은 완전히 윤리적이지 않을 수 있지만, 유일한 "실제"사용자이므로 괜찮습니다.
"타르타르"측면이 다른 사람의 시간을 낭비하지 않기 때문에 비표준 포트에서 실행하지 않습니다.
소수의 사람들 만 시스템에 SSH를 연결해야하는 경우 SSH를 비표준 포트 (예 : 6422, 8080 등)로 이동하는 것을 고려하면 로그인 시도 횟수가 크게 줄어들고 패치되지 않은 일부 사용자로부터 보호 할 수 있습니다. 예를 들어 SSH 익스플로잇 기반 웜).
@Matteo의 대답과 일치하십시오. 당신이보고있는 것은 본질적으로 수천 개의 좀비 시스템이 서버에서 실행되는 웹 사이트가 있기 때문에 서버에서 분산 무차별 공격을 실행하는 것입니다. 스크립트 아동에 대한 최소한의 노력-그는 수천 명의 좀비에게 한 번에 수백 개의 웹 사이트 호스트에서 무차별 시도를하고 성공적인 수익 목록을 컴파일하도록 프로그램을 가지고 있습니다.
마찬가지로, 때때로 "http://your.web.host/phpmyadmin/"에 많은 순열이 표시 될 수 있습니다. /var/log/apache2/access.log
파일 있습니다. 이것들은 PHPMyAdmin을 설정하는 가장 일반적인 방법에 대한 자동 스캔이며, 여러 가지 알려진 익스플로잇이 발견되면 시도 할 것입니다. 자체 버전을 설치하고 업데이트하는 것을 잊어 버리지 않고 최신 상태로 유지하십시오.하지만 이제는 접선에 빠져 있습니다.
원래 명령을 보내는 것 외에도 시간이나 대역폭이 들지 않습니다. 화재와 잊어 버려.
이와 같은 상황에 유용한 또 다른 유용한 소프트웨어는 fail2ban 이며, iptables를 사용하여 명백히 잘못된 로그온 또는 기타 악용 시도가 여러 번 발생한 후 연결 시도를 차단합니다.
Fail2Ban 또는 DenyHosts와 같은 데몬을 실행하지 않고도 IPTABLES를 사용 하여 트래픽을 중지 할 수 있습니다 .
# Allows SSH connections (only 4 attempts by an IP every 3 minutes, drop the rest to prevent SSH attacks)
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 4 --name DEFAULT --rsource -j DROP
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
당신이 그것을 관리 할 수 있다면, 나는 이것을 사용하는 가장 좋은 방법은 VPN을 사용하는 것입니다. 그렇게하면 그들이 타겟팅 할 수있는 유일한 것은 VPN입니다. 웹 서버와 같이 "모두"액세스하는 데 필요한 서비스를 제외하고는 전 세계에 공개 된 서비스가 없어야합니다. 다른 모든 것은 방화벽에 의해 차단되어야합니다. 이제 보안에 대해 정말로 걱정해야 할 것은 VPN뿐입니다. 가능하면 서버를 관리하는 컴퓨터의 고정 IP를 확보하고 VPN을 해당 특정 IP 주소로 잠그십시오. 이것은 실제로 사람들이 암호를 무차별하게하는 것을 막을 수있는 유일한 방법입니다.