
여러 대의 머신에서 수집한 netstat 파일로부터 Neo4j용 Cypher CREATE 문을 생성합니다.

그래프는 대규모 데이터셋에서 이상 징후와 패턴을 발견하는 데 도움을 줍니다.
이 스크립트는 여러 호스트의 netstat 정보를 가져와 Neo4j로 가져올 수 있는 형식으로 변환합니다.
Neo4j를 통해 특정 호스트로의 연결, 특정 호스트로부터의 연결, 사용량이나 프로토콜 등을 조회할 수 있습니다.
예제 디렉토리에는 도구를 테스트할 수 있는 파일들이 이미 있습니다.
또한 검색 가능성에 대한 기본적인 아이디어를 제공하는 예제 쿼리도 찾을 수 있습니다.
현재 이 도구는 Windows 시스템에서 'netstat -an' 명령어를 사용한 netstat 출력으로 테스트되었습니다.
https://docs.docker.com/install/linux/docker-ce/centos/
https://docs.docker.com/compose/install/
git clone https://github.com/trinitor/netstat2neo4j.git /opt/netstat2neo4j/
cd /opt/netstat2neo4j/
docker-compose up -d
https://ip:7474
사용자: neo4j
비밀번호: neo4j
모든 netstat 출력 파일(*.txt 파일)을 /opt/netstat2neo4j/script/import/에 복사하세요.
cd /opt/netstat2neo4j/script/
bash csv2neo4j.sh
필요한 Cypher 문은 create_database.txt에서 확인할 수 있습니다.
https://localhost:7474로 이동
create_database.txt의 내용 복사
Neo4j 인터페이스의 명령 입력란에 붙여넣기
MATCH (src)-[:DEPENDS_ON]->(dst)
WHERE src.ip STARTS WITH '192_168_'
RETURN src, dst
예제 폴더에도 query.txt 파일이 있습니다.
Q: 이건 중복된 작업입니다. 다른 프로젝트가 있다는 것을 모르시나요?
A: 알고 있습니다. 이것은 새롭거나 특별한 것이 아닙니다. 에이전트 기반의 맵을 그리고 규칙을 적용하는 무료 프로젝트, 튜토리얼 및 상용 제품들이 있습니다.
몇 가지 예:
이 작은 프로젝트는 결코 대체품이 아닙니다.
Q: 모든 머신에서 netstat를 생성하는 것은 어렵습니다. 해결책이 있나요?
A:
WMI/PowerShell 원격을 통해 정보를 수집할 수 있지만, 모든 시스템에 대해 완전한 관리자 권한이 있는 계정을 사용하는 것은 권장하지 않습니다.
구성 관리 도구를 사용하여 netstat 생성을 예약하거나 예약된 작업을 사용하세요. 이는 이 작은 프로젝트의 범위를 벗어납니다.
모든 열쇠를 가진 계정을 사용하려면:
https://ijustwannared.team/2019/04/22/network-connection-footprinting-with-wmi-and-neo4j/
Q: 당신이 틀렸습니다. Neo4j는 CSV 파일을 직접 읽을 수 있어야 합니다. 왜 직접 구문을 생성하는 건가요?
A: 맞습니다. CSV 파일을 직접 가져올 수 있습니다.
https://neo4j.com/developer/guide-import-csv/