요즘 날씨가 많이 따뜻(?) 뜨거워져서
바람이 기분이 좋더라구용
다들 좋은 하루 보내시구리

1. 우분투
1) 복붙
① Vmware
i. sudo apt-get update
ii. sudo apt-get install open-vm-tools-desktop
iii. sudo reboot
2) ifconfig
① sudo apt-get install net-tools
2. Soar - n8n (노드에잇엔)\
1) 출처
① https://codingd0.tistory.com/160
② https://cyan91.tistory.com/entry/%EC%B4%88%EB%B3%B4%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-n8n-%EC%84%A4%EC%B9%98-%EC%99%84%EB%B2%BD-%EA%B0%80%EC%9D%B4%EB%93%9C-AI-%EC%9E%90%EB%8F%99%ED%99%94-%EC%9B%8C%ED%81%AC%ED%94%8C%EB%A1%9C%EC%9A%B0-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B02025%EB%85%84
2) 주요 특징
① 다양한 애플리케이션 및 서비스와의 통합
② 유연한(조건 분기, 반복, 오류 처리 등 복잡한) 워크플로우 구축
③ 노드 기반의 시각적 인터페이스
④ 단점 : 서버 성능에 따라 성능이 결정됨
3) 작업 디렉토리 생성
① mkdir my_n8n
② cd my_n8n
③ nano docker-compose.yml
i. 요렇게 내용 넣어주고 ctrl+O, enter, ctrl+x 누르고 나오면 됨
④ mkdir n8n_data
⑤ sudo chmod -R 777 n8n_data
⑥ 버전 확인
i. docker –version
- 도커
ii. sudo docker exec -it my_n8n_n8n_1 n8n –version
- n8n
4) Docker로 n8n 실행하기
① sudo apt install docker-compose
② sudo docker-compose up -d
5) n8n 관리를 위한 기본 명령어
① n8n 중지하기
i. docker-compose down
② n8n 재시작하기
i. docker-compose restart
③ n8n 로그 확인하기
i. docker-compose logs
④ n8n 업데이트하기
i. docker-compose pull docker-compose up -d
6) n8n 인터페이스 둘러보기
① n8n에 처음 접속하면 다음과 같은 주요 영역을 볼 수 있음
② 메인 메뉴
i. 좌측에 있는 메뉴로, 워크플로우, 실행, 설정 등을 관리할 수 있음
③ 워크플로우 영역
i. 중앙의 넓은 공간으로, 여기서 노드를 배치하고 연결하여 워크플로우를 만듦
④ 노드 팔레트
i. 워크플로우에 추가할 수 있는 다양한 노드(앱과 서비스)의 목록
⑤ 속성 패널
i. 선택한 노드의 설정 및 속성을 관리할 수 있는 영역
7) 워크플로우 만들기
① 생성
② 이름 설정 및 트리거 노드 선택
8) 추가설명
3. N8n 로컬 설치
1) 로컬 설치 시 주의사항
① 데이터 위치
i. n8n의 모든 워크플로우와 설정은 ~/.n8n 폴더에 저장됨
ii. 정기적으로 백업해줘야함
② 업데이트
i. 새로운 버전이 나오면 npm install n8n@latest -g 명령 후 pm2 restart n8n을 해주면 됨
2) nvm(Node Version Manager) 설치
① sudo apt update
② curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
i. nvm 설치 스크립트
③ source ~/.bashrc
i. 설정 반영
ii. 터미널 재시작 효과
3) Node.js 20 버전 설치
① nvm install 20
② nvm use 20
③ node -v

4) n8n 설치, 실행 및 백그라운드 유지
① npm install n8n -g
② PM2 설치
i. SOAR 서버처럼 계속 켜두려면 PM2라는 도구를 사용해야함
ii. npm install pm2 -g
③ n8n을 PM2로 실행
i. export N8N_SECURE_COOKIE=false
ii. pm2 start n8n
④ 서버 재부팅 시에도 자동으로 켜지게 설정
i. pm2 startup
ii. pm2 save
5) SIEM 연동을 위한 네트워크 설정
① sudo ufw enable
② sudo ufw allow 5678/tcp
③ sudo ufw reload
4. wazuh와 n8n 연결하기
1) API 포트인 55000/TCP번을 n8n 서버의 IP에 대해 허용해주기
① sudo ufw allow from 192.168.0.100 to any port 55000 proto tcp
2) n8n 서버에서 '수신 대기소' 만들기
① Webhook 노드 추가
i. HTTP Method: POST
ii. Path: wazuh-alerts
② Webhook URL 복사해두기
③ Listen for Test Event 누르기

3) Wazuh 서버에서 '전달자' 스크립트 작성
① sudo nano /var/ossec/integrations/custom-n8n.py
| #!/usr/bin/env python3 import sys import json import requests # 1단계에서 복사한 n8n Webhook URL을 여기에 넣으세요 webhook_url = "http://<서버2_IP>:5678/rest/webhooks/..." # Wazuh로부터 데이터 읽기 alert_file = open(sys.argv[1]) alert_json = json.load(alert_file) alert_file.close() # n8n으로 전송 requests.post(webhook_url, json=alert_json) |
② sudo chown root:wazuh /var/ossec/integrations/custom-n8n.py
③ sudo chmod 750 /var/ossec/integrations/custom-n8n.py
4) Wazuh 설정 파일에 '연결 규칙' 등록
① sudo nano /var/ossec/etc/ossec.conf
i. 파일 맨 아래쪽 </ossec_config> 바로 위에 아래 내용 추가
<integration>
<name>custom-n8n.py</name>
<level>7</level> <alert_format>json</alert_format>
</integration>
② sudo systemctl restart wazuh-manager
5) 와쥬에서 신호 보내기
| curl -X POST ‘아까 n8n에서 복사해놓은 Webhook URL’ \ -H "Content-Type: application/json" \ -d '{"status": "connection_test", "from": "wazuh_manager"}' |
① 종종 저 url이 안먹으면 localhost 대신 n8n의 ip를 넣어주면 됨
6) 결과

① 저기에 output이 잘 들어온 것을 확인할 수 있다~
'시큐리티아카데미 7기 - sk쉴더스트랙 > 프로젝트' 카테고리의 다른 글
| [시큐리티 아카데미 7기 - sk쉴더스 트랙] 프로젝트 7일차 - 2026.04.17 (0) | 2026.04.17 |
|---|---|
| [시큐리티 아카데미 7기 - sk쉴더스 트랙] 프로젝트 6일차 - 2026.04.16 (0) | 2026.04.16 |
| [시큐리티 아카데미 7기 - sk쉴더스 트랙] 프로젝트 4일차 - 2026.04.14 (0) | 2026.04.14 |
| [시큐리티 아카데미 7기 - sk쉴더스 트랙] 프로젝트 3일차 - 2026.04.13 (0) | 2026.04.14 |
| [시큐리티 아카데미 7기 - sk쉴더스 트랙] 프로젝트 2일차 - 2026.04.10 (1) | 2026.04.13 |