
Raspberry Pi 또는 Ubuntu에 DShield 허니팟 센서를 설치 및 구성하며, Cowrie SSH 및 HTTP 허니팟을 실행하고 방화벽 로그를 DShield 포털로 전달합니다.
이것은 DShield 센서를 설정하기 위한 스크립트 모음입니다.
자동 설치 절차를 사용하기 위한 현재 설계 목표 및 전제 조건:
현재 버전은 Raspberry Pi OS(64비트)와 Ubuntu 24.04 LTS Server에서만 테스트되었으며, 다른 배포판에서는 테스트되지 않았습니다. 죄송합니다. 다른 배포판이 필요하다면 "누군가"가 설치 스크립트를 확인하고 유지 관리해야 합니다.
OS별 설치 지침은 다음 파일을 참조하십시오: Raspberry Pi OS (권장), Ubuntu, openSUSE 및 AWS
install.sh이 스크립트는 다음을 수행합니다:
로그는 cron 작업 /etc/cron.d/dshield에 의해 한 시간에 두 번 dshield 포털로 전송되며, 이는 'My Account' -> 'My Reports'에서 확인할 수 있습니다
상태 스크립트의 출력을 확인하십시오: /srv/dshield/status.sh
설치 중 또는 업데이트 중에 이상한 Python 또는 pip 관련 오류가 발생하면 root로 다음 명령을 시도하십시오:
pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
문제 식별에 도움이 필요하면 문제 해결 가이드를 확인하십시오.
"dshield" 디렉터리(git clone을 실행할 때 위에서 생성된 디렉터리) 안에서 다음을 실행하십시오
cd install/dshield
sudo git pull
sudo bin/install.sh --update
--update 매개변수는 기존 구성을 자동으로 사용하며 사용자에게 어떤 구성 옵션도 묻지 않습니다.
API Key와 같은 구성 매개변수는 유지됩니다. 구성을 편집하려면 /etc/dshield.ini를 편집하고, 방화벽을 구성하려면 /etc/network/iptables를 편집하십시오(참고: nat 테이블도 사용됩니다).
특히 자동 업데이트를 위한 새로운 기능이 도입되었습니다. 설치가 끝나면 install.sh 스크립트가 /root/bin/postinstall.sh 파일을 검색하여 존재할 경우 그 내용을 실행합니다. 새로 설치된 파일에 추가 변경이 필요한 경우 이 위치에 넣으면 됩니다. 이 파일에는 실행 권한이 필요합니다.
특수 포트 및 네트워크 구성(예: 방화벽 구성에서 최근에 추가된 telnet/web 포트를 수동으로 구성, 예: no-log 구성, no-honey 구성 등)을 최신 상태로 유지하십시오. 안타깝게도 현재로서는 이를 자동으로 수행할 수 없습니다. 확실하지 않은 경우 /etc/dshield.ini에서 해당 줄을 삭제하고 설치 스크립트를 다시 실행하십시오.
이 DShield 센서 및 허니팟은 인터넷 관련 트래픽, 즉 공인 IP 주소에서 발생한 트래픽만 분석하도록 설계되었습니다:
따라서 Pi는 인터넷에 노출될 수 있는 네트워크에 배치해야 합니다(관리 작업을 제외하고는 내부 네트워크에서 연결되지 않아야 함). 최대의 센서 이점을 위해서는 Pi가 선택된 포트만이 아니라 인터넷이 공인 IP로 라우팅하는 전체 트래픽에 노출되는 것이 바람직합니다.
SoHo 사용자의 경우 일반적으로 DSL 또는 케이블 라우터에 라우터가 사용하는(즉, ISP가 할당한) 공인 IP의 모든 트래픽을 내부 IP로 전달하는 옵션이 있습니다. 이 내부 IP는 Pi여야 합니다. 이 기능은 예를 들어 "exposed host", "DMZ"라고 불립니다(여기서는 예를 들어 포트 80만이 아니라 모든 트래픽이 Pi의 내부 IP 주소로 라우팅되도록 추가 구성을 활성화해야 할 수 있습니다).
기업의 경우 보호된 DMZ가 적합한 장소입니다(보호됨: 센서/허니팟이 해킹당하더라도 이 사고는 격리되어 DMZ의 다른 호스트에 영향을 미치지 않음). 정적 IP를 사용하는 경우 귀하의 IP에 대한 공격/스캔을 DShield 프로젝트와 커뮤니티에 노출하게 되며, 이는 whois를 통해 귀하의 회사로 추적될 수 있음을 유의하십시오.
설정을 테스트하려면 공개 포트 스캐너를 사용하여 라우터의 공인 IP(내부적으로 Pi로 전달됨)를 가리키면 됩니다. 이 포트 스캔은 /var/log/dshield.log에서 직접 확인할 수 있으며, 나중에는 DShield 계정을 통해 액세스할 수 있는 온라인 보고서에서 확인할 수 있습니다. DShield 데이터가 왜곡되지 않도록 빠르고 제한적인 테스트 목적으로만 사용하십시오.
install.sh의 주석 참조status.sh)를 /srv 디렉터리 구조로 이동sitecopy.py는 web.py 스크립트를 사용하여 제공되는 모든 사이트를 복사합니다. 다음을 사용하십시오:
python sitecopy.py http://www.yoursite.com
web.py - sitecopy를 실행할 필요는 없지만, 입력과 파일을 받을 수 있는 매우 기본적인 페이지를 제공합니다. 할 일:
어떤 의견이든 환영합니다 - github를 통해 버그 리포트 / 이슈를 제출해 주세요 - 감사합니다!
Slack 그룹 초대 링크: https://www.dshield.org/slack/