
Fresh Onions는 zlal32teyptf4tvi.onion에서 호스팅되는 오픈 소스 TOR 스파이더 / 히든 서비스 onion 크롤러입니다.
이는 http://zlal32teyptf4tvi.onion 숨겨진 서비스의 소스 복사본으로, 토르 숨겨진 서비스 크롤러/스파이더 및 웹 사이트를 구현합니다.
이 소프트웨어는 GNU Affero GPL 3 라이선스 하에 제공됩니다. 이는 이 소프트웨어를 공개적으로 사용 가능한 네트워크 소프트웨어의 일부로 배포하는 경우, 소스 코드(및 모든 수정 사항)를 공개해야 함을 의미합니다.
GNU 사이트에서:
GNU Affero 일반 공중 사용 허가서는 일반 GNU GPL 버전 3의 수정된 버전입니다. 한 가지 추가 요구 사항이 있습니다: 서버에서 수정된 프로그램을 실행하고 다른 사용자가 그곳에서 통신할 수 있도록 하는 경우, 서버는 실행 중인 수정된 버전에 해당하는 소스 코드를 다운로드할 수 있도록 해야 합니다.
pip install -r requirements.txt
schema.sql에서 MySQL 데이터베이스를 생성합니다.
데이터베이스 설정을 위해 etc/database를 편집합니다.
TOR 설정을 위해 etc/proxy를 편집합니다.
script/push.sh someoniondirectory.onion
script/push.sh anotheroniondirectory.onion
etc/uwsgi_only를 편집하고 BASEDIR을 torscraper가 설치된 위치(예: /home/user/torscraper)로 설정합니다.
실행:
init/scraper_service.sh # 크롤링 시작
init/isup_service.sh # 사이트 상태 최신 유지
torscraper는 선택적 Elasticsearch 기능(기본적으로 활성화)을 제공합니다. etc/elasticsearch를 편집하고 변수를 설정하거나 ELASTICSEARCH_ENABLED=false로 설정하여 비활성화합니다. 설정 후 scripts/elasticsearch_migrate.sh를 실행하여 초기 설정을 수행합니다.
elasticsearch가 비활성화되면 전체 텍스트 검색은 불가능하지만, 크롤링 및 새 사이트 발견은 여전히 작동합니다.
# 다양한 소스에서 양파 수집
1 18 * * * /home/scraper/torscraper/scripts/harvest.sh
# 새 사이트의 SSH 지문 가져오기
1 4,16 * * * /home/scraper/torscraper/scripts/update_fingerprints.sh
# /r/darknetmarkets 슈퍼리스트에서 사이트를 진짜/가짜로 표시
1 9 * * 1 /home/scraper/torscraper/scripts/get_valid.sh
# pastebin에서 양파 스크래핑 (유료 계정/IP 허용 목록 필요)
*/5 * * * * /home/scraper/torscraper/scripts/pastebin.sh
# 새 양파 포트 스캔
1 */6 * * * /home/scraper/torscraper/scripts/portscan_up.sh
# stronghold paste 스크래핑
32 */2 * * * /home/scraper/torscraper/scripts/stronghold_paste_rip.sh
# 클론 감지
16 3 * * * /home/scraper/torscraper/scripts/detect_clones.sh
Fresh Onions는 두 개의 서버에서 실행됩니다. 데이터베이스와 숨겨진 서비스 웹 사이트를 실행하는 프론트엔드 호스트와 크롤러를 실행하는 백엔드 호스트입니다. 아마도 독자에게 가장 흥미로운 것은 백엔드 설정일 것입니다. 클라이언트로서의 TOR는 완전히 단일 스레드입니다. 네, 2017년인데도 비행 자동차는 물론 없고 TOR는 단일 스레드로 실행됩니다. 즉, 단일 TOR 인스턴스에서 크롤러를 실행하려고 하면 CPU가 100%로 최대치에 빠르게 도달한다는 의미입니다.
이 문제에 대한 해결책은 여러 TOR 인스턴스를 실행하고 요청을 라운드 로빈 방식으로 분산할 수 있는 프론트엔드를 통해 연결하는 것입니다. Fresh Onions 크롤러는 8개의 Tor 인스턴스를 실행합니다.
데비안(및 우분투)에는 여러 TOR 인스턴스를 빠르게 생성하기 위한 유용한 프로그램 "tor-instance-create"가 포함되어 있습니다. 저는 프론트엔드 프록시로 Squid를 사용했지만, 안타깝게도 SOCKS에 직접 연결할 수 없어 중간 프록시로 "privoxy"를 사용했습니다. 각 TOR 인스턴스마다 하나의 privoxy 인스턴스가 필요합니다. 데비안 시스템에서 privoxy 인스턴스를 생성하는 데 도움이 되는 스크립트가 "scripts/create_privoxy.sh"에 있습니다. 또한 /etc/privoxy/default.filter를 빈 파일로 교체하여 불필요한 정규식을 제거함으로써 CPU 부하를 줄이는 데 도움이 됩니다.
또한, 이 리소스 https://www.howtoforge.com/ultimate-security-proxy-with-tor는 Squid 설정에 유용할 수 있습니다. 크롤링만 하고 익명성에 신경 쓰지 않는다면, 속도 향상을 위해 tor2web 모드(재컴파일 필요)로 TOR를 실행하는 것도 권장합니다.