Computer >> 컴퓨터 >  >> 체계 >> Linux

Linux 서버에서 해커를 잡기 위해 SSH 허니팟을 만드는 방법

Linux 서버에서 해커를 잡기 위해 SSH 허니팟을 만드는 방법

서버의 인증 로그를 본 적이 있다면 인터넷에 연결된 모든 서버가 해커의 끊임없는 로그인 시도를 받고 있다는 것을 알고 있습니다.

서버가 완전히 알려지지 않은 취미 서버인 경우에도 자동화된 스크립트가 해당 서버를 찾고 SSH를 사용하여 계속해서 무차별 대입을 시도합니다. 복잡한 비밀번호나 기타 보안 수단을 사용하는 한 침입할 가능성은 거의 없지만 여전히 성공할 가능성은 있습니다.

다행히도 이러한 해커를 서버에 가두어 문제를 일으키지 않도록 주의를 분산시키는 유용하고 재미있는 방법이 있습니다.

SSH 허니팟이란 무엇입니까?

간단히 말해서, SSH 허니팟은 사이버 범죄자를 유인하고 미끼로 목표로 삼기 위해 덜 매달린 과일처럼 보이기 위한 미끼입니다. 그러나 실제 표적이 아니며 해커는 너무 늦을 때까지 이를 깨닫지 못하는 경우가 많습니다.

Linux 서버에서 해커를 잡기 위해 SSH 허니팟을 만드는 방법

허니팟은 다양한 형태를 취할 수 있고 다양한 용도를 가질 수 있습니다. 때로는 주의를 산만하게 하는 것에 불과하지만 다른 때에는 공격자에 대한 정보를 수집하는 데 사용됩니다.

많은 정부 기관은 범죄자를 잡기 위해 허니팟을 사용하여 공격하도록 유인하고 나중에 그들을 잡기 위해 정보를 수집합니다. 하지만 허니팟은 회사에서 일하는 시스템 관리자나 취미로 Linux 서버를 운영하는 취미 사용자도 사용할 수 있습니다.

SSH 허니팟을 사용하는 이유

누군가가 자신의 서버에 SSH 허니팟을 구현하려는 데에는 여러 가지 이유가 있습니다. 어떤 경우에는 이를 사용하여 향후 연결을 차단할 수 있습니다. 아마도 당신은 단순히 시스템의 실제 목표에서 그들을 유인하고 싶을 것입니다. 또는 공격이 작동하는 방식을 배우는 데 도움이 되는 교육 목적일 수도 있습니다.

이 가이드의 목적을 위해 우리는 주로 허니팟을 주의를 분산시키기 위해 사용합니다. 특히, 해커가 서버의 더 취약한 부분을 공격하지 못하도록 주의를 분산시키고 다른 사람의 서버를 공격하기에 너무 바쁘게 만듭니다.

그리고 적어도 이 경우에 사용된 방법은 한두 번 웃기에도 좋을 것입니다.

SSH에 갇혀 있음

본질적으로 우리가 하고자 하는 것은 해커가 SSH 로그인을 무차별적으로 시도할 때 잡아내는 것입니다. 이를 수행하는 몇 가지 방법이 있지만 가장 간단한 방법 중 하나는 매우 긴 SSH 배너를 천천히 보내는 것입니다.

이렇게 하면 해커의 자동화된 스크립트가 배너를 기다리면서 멈춥니다. 이것은 며칠 또는 몇 주가 아니라 몇 시간 동안 지속될 수 있습니다. 스크립트가 자동화되어 있기 때문에 해커는 스크립트에 그다지 주의를 기울이지 않을 가능성이 높으며 이미 많은 시간이 지날 때까지 스크립트가 멈춘 것을 눈치채지 못할 것입니다.

해커의 스크립트가 그 안에 갇혀 스스로 빠져나올 수 없기 때문에 이를 장난스럽게 "SSH tarpit"이라고 합니다.

이를 위해서는 몇 가지 기본적인 SSH 사용법을 알아야 합니다. SSH 사용 방법을 잘 모르겠다면 이 가이드를 읽고 시작하세요.

무한

이를 달성하기 위해 우리가 사용하는 프로그램은 endlessh라고 하며 skeeto에서 만듭니다.

Linux 서버에서 해커를 잡기 위해 SSH 허니팟을 만드는 방법

서버에 로그인했으면 저장소를 복제합니다. (git가 있어야 합니다. 설치했습니다.)

git clone https://github.com/skeeto/endlessh

이제 서버에 저장소가 있으므로 해당 디렉토리로 전환하여 컴파일해야 합니다.

cd endlessh
make

프로그램을 컴파일하는 동안 일부 오류가 발생할 수 있습니다. 이것은 프로그램이 컴파일해야 하는 종속성이 누락되었음을 의미합니다. 어떤 종속성이 누락되었는지 확인한 다음 배포판의 패키지 관리자로 설치해야 합니다.

컴파일할 프로그램이 있으면 경로에 있도록 bin 디렉토리로 옮기고 싶을 것입니다.

sudo mv endlessh /usr/local/bin

경로에서 감지되었는지 다시 확인하고 싶을 것입니다.

which endless

/usr/local/bin/endlessh를 출력해야 합니다. 길. 그렇지 않은 경우 올바른 디렉토리로 이동했는지 확인하는 것이 좋습니다.

Linux 서버에서 해커를 잡기 위해 SSH 허니팟을 만드는 방법

그런 다음 프로그램을 서비스 데몬으로 전환하여 systemd로 작동할 수 있도록 합니다. 서비스.

sudo cp util/endlessh.service /etc/systemd/system/

완료되면 백그라운드에서 실행되도록 서비스를 활성화합니다.

sudo systemctl enable endlessh
Linux 서버에서 해커를 잡기 위해 SSH 허니팟을 만드는 방법

기본적으로 endlessh는 1024 이상의 포트에서만 작동하지만 우리는 해커가 공격을 시도하도록 속일 수 있도록 기본 SSH 포트를 사용하기를 원합니다. 그러려면 서비스 파일을 수정해야 합니다.

이 예에서는 nano를 사용하여 구성 파일을 편집하지만 원하는 텍스트 편집기를 자유롭게 사용해도 됩니다.

sudo nano /etc/systemd/system/endlessh.service

파일이 열리면 # 문자를 제거하여 다음 줄의 주석 처리를 제거합니다.

#AmbientCapabilities=CAP_NET_BIND_SERVICE

그런 다음 이 줄의 시작 부분에 #을 추가합니다.

PrivateUsers=true
Linux 서버에서 해커를 잡기 위해 SSH 허니팟을 만드는 방법

파일을 저장하고 다음 명령을 실행하십시오:

sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh

endlessh가 실행되어야 하는 포트를 알 수 있도록 구성 파일을 만들고 설정해야 합니다. 먼저 새 디렉터리를 만든 다음 구성 파일을 만들어야 합니다.

sudo mkdir -p /etc/endlessh
sudo vim /etc/endlessh/config

구성 파일에는 한 줄만 있으면 됩니다. 이것은 SSH의 기본 포트인 포트 22에서 실행되도록 끝없는 h를 알려줍니다. 우리는 해커에게 더 매력적인 표적이 되도록 이 작업을 수행합니다. 기본 SSH 포트가 열려 있는 것을 확인한 다음 침입을 시도합니다.

구성 파일에 다음을 입력하십시오.

Port 22
Linux 서버에서 해커를 잡기 위해 SSH 허니팟을 만드는 방법

무한 서비스를 시작해야 합니다.

sudo systemctl start endlessh

그게 다야! 이제 기본 SSH 포트에서 끝없이 실행되고 이미 해커를 포착하고 있습니다.

테스트하기

허니팟이 의도한 대로 작동하는지 확인하기 위해 잠시 해커인 척하고 서버의 SSH에 액세스해 보겠습니다.

ssh root@<server-ip-address>

모든 것이 올바르게 설정되었으면 ssh 명령이 멈추고 아무 것도 하지 않습니다. 여러분(또는 실제 해커)이 이 명령을 실행할 때 실제로 어떤 일이 일어나는지 살펴보겠습니다.

동일한 명령을 반복하되 -vvv를 추가합니다. 자세한 옵션을 사용하려면 플래그를 지정하십시오.

ssh -vvv root@<server-ip-address>
Linux 서버에서 해커를 잡기 위해 SSH 허니팟을 만드는 방법

이제 이 작은 도구가 사용자를 가두고 서버의 SSH에 액세스하지 못하도록 막는 방법이 분명해야 합니다. 한 줄씩 천천히 클라이언트에 매우 큰 SSH 배너를 보냅니다.

물론 해킹은 봇을 통해 이를 자동화하기 때문에 며칠은 아니더라도 몇 시간을 낭비한 후에야 이러한 일이 일어나고 있다는 사실을 깨닫지 못할 것입니다.

자주 묻는 질문

1. 이렇게 하면 해커가 SSH에 액세스하는 것을 방지할 수 있습니까?

꽤 좋은 억제 수단이지만 해커를 완전히 막는 것은 아닙니다. 주의 깊은 해커는 결국 귀하가 서버에 허니팟을 생성했음을 알아차리고 서버의 SSH에 액세스하기 위해 다른 포트를 시도할 수 있습니다.

그러나 이것은 덜 매달린 과일만 찾는 해커를 방지하기에 충분합니다.

2. 이 프로그램이 기본 포트에서 실행 중인 경우 SSH를 어떻게 사용합니까?

SSH가 실행되는 포트를 변경해야 합니다. 서버에 허니팟이 없는 경우에도 해커가 다른 포트를 검색하기 전에 항상 기본 포트를 먼저 시도하기 때문에 이는 좋은 방법입니다.

3. 구성 파일에 추가할 수 있는 다른 옵션이 있습니까?

예, 지연 속도 변경을 포함하여 변경할 수 있는 몇 가지 다른 설정이 있습니다.

Github 저장소의 샘플 구성 파일에서 옵션 목록을 볼 수 있습니다.

마지막 단어

이제 서버에 허니팟을 설정하여 해커를 함정에 빠뜨리고 다른 것을 공격하지 못하도록 주의를 분산시키는 방법을 배웠으므로 서버에 대한 SSH 액세스를 보호하는 유일한 방법은 아닙니다.

암호화 키를 사용하여 SSH에 로그인하여 서버를 더욱 안전하게 보호하는 방법을 보여주는 이 문서를 확인하십시오.