일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Elasticsearch
- Proxy
- application security
- elastic stack
- 보안양파
- bash
- xe guest utilities
- x-pack
- 로그인불가
- Kibana server is not ready yet
- centos 8
- docker
- Kibana
- Windows
- ELASTIC
- endpoint security
- G-suite
- XCP-ng
- GitLab
- pfsense
- macos
- ssh key 배포
- 한글가이드
- PlayBook
- proxycfg
- ansible
- hardening
- miniconda
- freebsd
- Today
- Total
선 밖에 선 자유인
Snort ( Netwrok Intrusion Detection System ) 설치 본문
|
snort 설치전 libpcap 라이브러리와 pcre가 설치되어있는지 rpm -qa|grep libpcap pcre로 확인
깔려있지 않다면 yum 을 이용하여 설치
# yum install libpcap libpcap-devel # yum install pcre pcre-devel |
snort 최신 버전 다운
# wget http://www.snort.org/dl/current/snort-2.8.4.tar.gz
컴파일 환경설정 및 컴파일, 설치
# ./configure --prefix=/usr/local/snort --sysconfdir=/etc/snort --with-mysql=/usr/local/mysql –enable -dynamic # make && make install |
만일 snort IDS와 웹/DB 서버를 따로 설치하여 연동한다면 snort 가 설치될 서버에 mysql-devel을 yum으로 설치하고 –with-mysql 의 경로를 지정하지 않는다.
로그 생성 디렉토리 생성
snort 그룹과 사용자를 등록하고 룰과 로그를 남길 디렉토리 생성
#groupadd snort |
룰셋 설치
# wget http://www.snort.org/pub-bin/downloads.cgi/Download/vrt_os/snortrules-snapshot-2.8.tar.gz
압축을 /etc/snort에 해제해놓는다.
MySQL 사용자 snort와 PW지정, snortdb 생성하고 사용자(snort)가 snort DB에 권한을 가지도록 설정
mysql> GRANT ALL PRIVILEGES ON snortdb.* to snort@localhost identified by ‘1234’; mysql> flush privileges; |
snort 소스파일에 schems/create_mysql이라는 DB덤프파일이 들어있다. 테이블들을 생성.
# /usr/local/mysql/bin/mysql -u snort -p snortdb < create_mysql |
ADODB와 BASE를 다운후 /usr/local/apache2/htdocs에 압축 해제
ADODB(php로 작성된 ADO객체): http://sourceforge.net/projects/adodb/
BASE : http://sourceforge.net/projects/secureideas/
tar xvzf 소스파일명.gz
편하게 사용하기 위해 디렉토리명 변경
# mv base-1.3.6 base |
snort.conf 파일 다음과 같이 수정(패턴검색(/) 이용해서 검색)
# vi /etc/snort/snort.conf |
# dynamicpreprocessor directory 전부다 /usr/local/snort/lib로 변경
output database:log,mysql,user=snort password=PW dbname=snort host=localhost |
base_conf.php 파일 수정
# cp base/base_conf.php.dist base_conf.php 파일명 변경후 $alert_dbname="snortdb"; |
base 의 sql 스크립트를 snort DB에 넣어준다.
# cd /usr/local/apache2/htdocs/base/sql # mysql –u snort –p snortdb < acid2base_tbls_mysql.sql |
Snort IDS 가동
/usr/local/snort/bin/snort -i eth0 -c /etc/snort/snort.conf –D 로 실행 후 프로세스 확인
# ps –ef | grep snort
/var/log/snort 에 로그가 남아야 정상적인 작동
정상적인 작동을 확인하고 snort 재실행
# /usr/local/snort/bin/snort –vdbe –i eth0 –c /etc/snort/snort.conf -D –l /var/log/snort |
http:// 서버 IP/base 로 접속한 후 create 버튼 누른후 HOME 링크 누르기
oinkmaster 를 이용한 rule 자동 업데이트 하기
http://oinkmaster.sourceforge.net -> 다운로드 클릭 -> oinkmaster-2.0.tar.gz
# mv oinkmaster ids/ # cd ids # tar xvfz oinkmaster-2.0.tar.gz # cd oinkmaster-2.0 # ls -> oinkmaster.pl파일이 제일 중요 # cp oinkmaster.pl /usr/local/bin # cp oinkmaster.conf /etc/snort # cd contrib |
makesindex.pl -> 이미다운받은것을 제외하고 받을수 있게하는 스크립트 파일
# makesindex.pl /etc/snort/rules/ > autodisables.conf # cp autodisables.conf /etc/snort # cd /etc/snort |
http://snort.org ->로그인후 맨밑에 코드 복사
# vi oinkmaster.conf # Example for Snort 2.4의 url = http://www.snort.org/pub-bin/oinkmaster.cgi/<oinkcode>/snortrules-snapshot-2.4.tar.gz를 ->url = http://www.snort.org/pub-bin/oinkmaster.cgi/<코드붙여넣기>/snortrules-snapshot-2.4.tar.gz # groupadd snort # useradd -g snort -s /sbin/nologin snort # cd .. -> pwd => /etc # chown -R snort.snort snort/ -> snort디렉토리 아래의 것을 소유자snort소유권snort로 변경 # oinkmaster.pl -C /etc/snort/oinkmaster.conf -C /etc/snort/autodisables.conf -o /etc/snort/rules/ # vi /etc/snort/oinkmaster.conf 아까거 지우고 Example for Snort-current의 url = http://www.snort.org/pub-bin/oinkmaster.cgi/<oinkcode>/snortrules-snapshot-2.4.tar.gz를-> url=http://www.snort.org/pub-bin/oinkmaster.cgi/<코드붙여넣기>/snortrules-snapshot-CURRENT.tar.gz 로 수정 |
크론탭을 이용하여 주기적 자동 업데이트 하기
# vi /etc/crontab - 37 12 * * * root /usr/local/bin/oinkmaster.pl -C /etc/snort/oinkmaster.conf -C /etc/snort/autodisables.conf -o /etc/snort/rules/ # service crond restart |
* 만약 base 웹 및 DB가 다른 서버에 설치되어 있다면 /etc/snort/snort.conf 등 여러가지 설 정을 변경해 주어야 한다.