안녕하세요. 달소입니다.
앞서 소개해드린 네트워크 스캐너를 직접 Linux 서버에 구축해보겠습니다.
이런 스캐너를 구축했을때의 이점은
홈 네트워크 환경에서 어떤 기기들이 있는지 식별할 수 있고 ip 사용에 대해서 확인할 수 있으며
포트스캔을 통해서 인지하지못한 서비스가 오픈되었을때 즉각적으로 확인이 가능합니다.
설치환경
OS : Ubuntu 24.04 LTS
Docker 설치
Net Alert X 컨테이너 생성하기
mkdir -p /opt/stacks/NetAlertX
cd /opt/stacks/NetAlertX
vi compose.yml
services:
netalertx:
container_name: NetAlertX
hostname: NetAlertX
privileged: true
# use the below line if you want to test the latest dev image
# image: "jokobsk/netalertx-dev:latest"
image: jokobsk/netalertx:latest
environment:
- TZ=Asia/Seoul
restart: always
volumes:
- ./netalertx/db:/app/db
- ./netalertx/config:/app/config
network_mode: host
그리고 docker compose up -d 로 실행시켜주면 됩니다.
네트워크모드가 host이기때문에 별도로 포트매핑을 진행하지않았고 기본포트는 20221입니다.
ip:20211로 접근해주세요.
이전에 소개해드렸던 pi alert과 거의 비슷한 UI 입니다.
기본 로그인은 비활성화 되어있는데 Settings -> System -> Set Password 에서 설정가능합니다.
보안을 위해서는 설정을 추천드립니다.
Net Alert X는 주기적으로 스캔을 돌아서 내부 네트워크를 스캔합니다.
기본 스캐너 설정
설정에서 인터페이스도 미리 확인해주세요.
기본이 eth0으로 되어있는데 ubuntu 24 기준으로는 ens18이 기본입니다.
기본적으로 플러그인으로 동작하는 기능들이 많은데요.
사용 가능한 플러그인
아래 항목들에 대해서 편하게 설치가 가능합니다.
장치 감지 플러그인은 CurrentScan
데이터베이스 테이블에 값을 삽입합니다. 필요하지 않은 플러그인은 무시해도 되지만, ARPSCAN
또는 와 같은 일부 장치 감지 플러그인을 활성화하는 것이 합리적입니다 NMAPDEV
.
ID | 유형 | 설명 | 특징 | 필수의 | 데이터 소스 | 자세한 문서 |
---|---|---|---|---|---|---|
APPRISE | ▶️ | Apprise 알림 프록시 | 스크립트 | _출판사_광고 | ||
ARPSCAN | 🔍 | 현재 네트워크의 ARP 스캔 | 스크립트 | arp_스캔 | ||
CSVBCKP | ⚙ | CSV 장치 백업 | 스크립트 | csv_백업 | ||
DBCLNP | ⚙ | 데이터베이스 정리 | 예* | 스크립트 | db 정리 | |
DDNS | ⚙ | DDNS 업데이트 | 스크립트 | ddns_업데이트 | ||
DHCPLSS | 🔍/📥 | DHCP 임대에서 장치 가져오기 | 스크립트 | dhcp_리스 | ||
DHCPSRVS | ♻ | DHCP 서버 | 스크립트 | dhcp_서버 | ||
INTRNT | 🔍 | 인터넷 IP 스캐너 | 스크립트 | 인터넷_아이피 | ||
INTRSPD | ♻ | 인터넷 속도 테스트 | 스크립트 | 인터넷 속도 테스트 | ||
MAINT | ⚙ | 원목 등의 유지관리 | 스크립트 | 유지 | ||
MQTT | ▶️ | Home Assistant와 동기화하기 위한 MQTT | 스크립트 | _게시자_mqtt | ||
NBTSCAN | ♻ | Nbtscan(NetBIOS 기반) 이름 확인 | 스크립트 | nbtscan_스캔 | ||
NEWDEV | ⚙ | 새로운 장치 템플릿 | 예 | 주형 | newdev_template | |
NMAP | ♻ | Nmap 포트 스캐닝 및 검색 | 스크립트 | nmap_스캔 | ||
NMAPDEV | 🔍 | 현재 네트워크의 Nmap dev 스캔 | 스크립트 | nmap_dev_scan | ||
NSLOOKUP | ♻ | NSLookup(DNS 기반) 이름 확인 | 스크립트 | nslookup_스캔 | ||
NTFPRCS | ⚙ | 알림 처리 | 예 | 주형 | 알림 처리 | |
NTFY | ▶️ | NTFY 알림 | 스크립트 | _출판사_ntfy | ||
OMDSDN | 📥 | OMADA TP-Link 가져오기 | 🖧 🔄 | 스크립트 | 오마다_SDN_임프 | |
PHOLUS | ♻ | Pholus 이름 해결 | 스크립트 | 포루스_스캔 | ||
PIHOLE | 🔍/📥 | Pi-hole 장치 가져오기 및 동기화 | SQLite DB | 파이홀스캔 | ||
PUSHSAFER | ▶️ | Pushsafer 알림 | 스크립트 | _게시자_푸시세이퍼 | ||
PUSHOVER | ▶️ | 푸시오버 알림 | 스크립트 | _게시자_푸시오버 | ||
SETPWD | ⚙ | 비밀번호 설정 | 예 | 주형 | 비밀번호 설정 | |
SMTP | ▶️ | 이메일 알림 | 스크립트 | _게시자_이메일 | ||
SNMPDSC | 🔍/📥 | SNMP 장치 가져오기 및 동기화 | 스크립트 | SNMP_발견 | ||
SYNC | 🔍/⚙/📥 | NetAlertX 인스턴스에서 동기화 및 가져오기 | 🖧 🔄 | 스크립트 | 동조 | |
UNDIS | 🔍/📥 | 더미 장치 생성 | 스크립트 | 발견할 수 없는 것들 | ||
UNFIMP | 🔍/📥 | UniFi 장치 가져오기 및 동기화 | 🖧 | 스크립트 | 유니파이_임포트 | |
VNDRPDT | ⚙ | 공급업체 데이터베이스 업데이트 | 스크립트 | 공급업체 업데이트 | ||
WEBHOOK | ▶️ | 웹훅 알림 | 스크립트 | _게시자_웹훅 | ||
WEBMON | ♻ | 웹사이트 다운 모니터링 | 스크립트 | 웹사이트 모니터 |
설정 -> core 부분에서 플러그인을 가져올수 있는데 Ctrl을 누르고 선택해주시면됩니다.
저는 nmap, webhook정도를 추가로 로드했습니다.
디스코드 알람추가하기
위에서 추가한 웹훅 플러그인을 사용해서 디스코드 웹훅알람을 구성할 수 있습니다.
먼저 디스코드에서 웹훅 url을 복사해주시고
다시 Net Alert X의 설정 -> Publishers 항목에 가서 webhook을 추가해줍니다.
비슷하게 nmap도 설정에서 스캔해주시면 기기에서 열려있는 포트를 식별가능합니다.
저는 일단 30개정도 스캔해주네요 ㅎㅎ
기기가 추가되면 리포트도 보내줍니다.
이름을 못가져와서 수동등록 해야할것같기도..