
🌐 IDS와 IPS - 개념과 차이점
💡 IDS (Intrusion Detection System)
- 기능: 네트워크 트래픽을 모니터링하여 악의적 활동이나 정책 위반을 탐지
- 특징:
- 탐지된 위협에 대해 경고를 발생시킴
- 네트워크 이벤트를 기록하여 로그로 저장
- 활용: 네트워크 공격 탐지, 로그 분석, 보안 경고
💡 IPS (Intrusion Prevention System)
- 기능: IDS의 탐지 기능에 더해 실시간으로 위협을 차단하거나 수정
- 특징:
- 악의적 트래픽을 탐지하면 차단하거나 수정하여 시스템 보호
- 실시간 대응이 가능함
- 활용: 네트워크 보안 강화, 위협 실시간 차단
🛠️ Snort - 오픈 소스 IDS/IPS
- 설명: Snort는 오픈 소스 기반의 침입 탐지 및 방지 시스템으로, 실시간 트래픽 모니터링과 로그 생성 기능을 제공
- 주요 구성 요소:
- 패킷 캡처: 네트워크 트래픽 수집
- 디코더: 패킷 구조 분석
- 전처리기: 탐지 엔진이 쉽게 검사할 수 있도록 정리
- 탐지 엔진: 규칙에 따라 위협 탐지
- 출력: 콘솔, 로그 파일 등으로 경고 출력
💻 Snort 설치 및 설정
📥 Snort 설치
bash
복사편집
sudo apt update sudo apt install snort -y
🔧 설정 파일 수정
설정 파일 경로: /etc/snort/snort.conf
bash
복사편집
sudo nano /etc/snort/snort.conf
- IP 주소 설정:
-
bash복사편집ipvar HOME_NET 192.168.111.0/24
- 규칙 경로 설정:
-
bash복사편집include $RULE_PATH/local.rules
🚀 Snort 기본 실행 명령어
bash
복사편집
snort -A console -q -u snort -g snort -c /etc/snort/snort.conf
- -A console: 콘솔에 경고를 출력
- -q: 불필요한 정보를 표시하지 않음
- -u snort: Snort 사용자로 실행
- -g snort: Snort 그룹으로 실행
- -c: 설정 파일 경로 지정
📂 Snort 규칙 설정
1. 규칙 디렉토리 확인
bash
복사편집
ls /etc/snort/rules
- 규칙 파일들은 확장자가 .rules로 끝남
- local.rules 파일을 사용하여 커스텀 규칙 설정
2. 규칙 파일 편집
bash
복사편집
sudo nano /etc/snort/rules/local.rules
기본 규칙 작성 예시
bash
복사편집
alert tcp any any -> $HOME_NET 80 (msg:"HTTP traffic detected"; sid:1000001;) alert tcp any any -> $HOME_NET 443 (msg:"HTTPS traffic detected"; sid:1000002;)
- alert tcp any any -> $HOME_NET 80: TCP 프로토콜로 포트 80(HTTP)으로 들어오는 모든 트래픽 감지
- msg: 경고 메시지
- sid: 규칙 ID

📝 탐지 테스트
규칙 파일 확인 및 Snort 실행
bash
복사편집
snort -T -c /etc/snort/snort.conf
- -T: 테스트 모드
- 설정이 정상적이라면 아래와 같이 출력됨:
-
nginx복사편집Snort successfully validated the configuration! Snort exiting
규칙 테스트
bash
복사편집
curl http://192.168.111.164
- HTTP 요청 발생 시 Snort 콘솔에 경고 메시지가 출력됨
📊 로그 관리
로그 파일 확인
bash
복사편집
cat /var/log/snort/snort.log
- 경고 발생 시 로그 파일에 기록됨
- 로그 파일을 텍스트로 변환하여 확인
-
bash복사편집snort -r /var/log/snort/snort.log -X > snortlog.txt
- -X: 로그 내용을 ASCII와 Hex로 출력
💡 Snort 규칙 우선순위 설정
규칙 우선순위 지정
bash
복사편집
alert tcp any any -> $HOME_NET 80 (msg:"High priority alert"; content:"cmd.exe"; sid:1000003; priority:1;) alert tcp any any -> $HOME_NET 80 (msg:"Low priority alert"; content:"/login.php"; sid:1000004; priority:10;)
- priority: 값이 낮을수록 우선순위가 높음
🔍 Snort와 TCPDump의 차이
특징SnortTCPDump
| 목적 | 침입 탐지 및 방지 | 네트워크 트래픽 모니터링 |
| 주요 기능 | 경고 발생, 로그 생성 | 트래픽 캡처 및 기본 분석 |
| 실시간 처리 여부 | 가능 | 불가능 |

✅ 실습 결과
- Snort 설치와 설정 완료
- 기본 탐지 규칙 설정 및 테스트 수행
- HTTP/HTTPS 트래픽 탐지 성공
- 로그 파일을 통해 탐지 결과 확인
📝 결론
Snort는 네트워크 보안 모니터링과 실시간 침입 탐지에 매우 유용한 도구입니다. 기본 설정과 규칙 작성 방법을 익히면 다양한 네트워크 환경에서 보안 정책을 수립할 수 있습니다. 특히 Snort와 TCPDump를 함께 사용하면 네트워크 트래픽 분석과 보안 모니터링을 효과적으로 수행할 수 있습니다.
'02. 클라우드 보안 공부 > 실습로그' 카테고리의 다른 글
| ✅ [실습로그] Snort 기반 IDS/IPS 설정 - 침입 탐지와 방지 시스템 구축 (0) | 2025.05.15 |
|---|---|
| ✅ [실습로그] Ansible 설치와 설정 - 자동화 플랫폼 구축 (0) | 2025.05.15 |
| ✅ [실습로그] MariaDB 서버 설정과 트랜잭션 관리 - ACID 속성 구현 (0) | 2025.05.12 |
| ✅ [실습로그] RIP, RIPv2, RIPng 설정 - 내부 라우팅 프로토콜 비교 (0) | 2025.05.09 |
| ✅ [실습로그] MariaDB 설치 및 트랜잭션 설정 - ACID 속성 구현 (0) | 2025.05.08 |