보안 / 개발 챌린저가 목표

IPS(Suricata) 운영 실습 본문

IT Security/Class_Do it

IPS(Suricata) 운영 실습

햄미은서 2020. 9. 9. 20:18

간단한 개념을 보고 싶다면,

hammieunseo.tistory.com/7

 

IPS(Suricata) 구축

IPS(Intrusion Prevention System)이란 침입 방지 시스템으로, 외부 네트워크로부터 내부 네트워크로 침입하는 네트워크 패킷을 찾아 제어하는 기능을 가진 소프트웨어 또는 하드웨어이다. IPS는 외부망��

hammieunseo.tistory.com


포워딩(Forwarding) 이란

  • 인터넷워킹 장치를 이용하여 지정된 사이트에 자동적으로 연결되도록 수신 장치로 프레임을 보내는 프로세스이다.
  • 하위 네트워크 환경에서 통신이 이루어질 수 있도록 하는 기능이다.
  • 포워딩 기능 없이는 하위 단말의 통신이 불가하므로 꼭 수행해주어야 하는 단계이다.

포워딩 설정

▶ NFQUEUE

  • 커널 패킷 필터로 패킷 큐(대기열)에 대한 접근 권한을 주는 라이브러리
  • Suricata는 NFQUEUE 기능을 이용하여 흘러오는 패킷을 확인하고 차단할지 허용할지 정보를 남길지 등의 행동을 판단
  • Suricata가 활성화되어 있지 않은 경우, NFQUEUE가 패킷 큐를 잡고 있는(홀딩) 상태이기 때문에 내부에서 인터넷 등 패킷이 전달되지 않음(인터넷 사용 불가)

▶ Masquerade

  • NAT 기반으로 외부망과 내부망을 구분한 후 패킷을 설정되어 있는 경로에 따라 전달하는 역할 수행
  • 외부를 통해 전달될 때 내부 IP는 외부 IP로 변경되어 전달

iptables 내용을 초기화하여 기타 방화벽 정책을 깨끗하게 진행하도록 한다

 

# vi /etc/sysctl.conf

In, Out 영역이 구분되어 있는 구성에서 트래픽을 포워빙 해주기 위한 작업을 수행한다.

(표시된 부분이 0이었는데 1로 바꿔주기!)

 

reboot으로 재부팅 후에 원격접속 ssh 192.168.0.11로 들어가준다.

(가독성을 위해 xShell 을 사용!)

 

-t   table, 여기서는 in-out을 위해 nat으로 셋팅
-A   체인 추가
-o [NIC카드]   외부 이더넷 카드(NIC) 명 설정
-j   타겟, 해당 옵션에서는 MASQUERADE를 선택하여 해당 룰 적용

포워딩이 적용되는 것을 확인할 수 있다.

 

 

Suricata는 NFQUEUE의 라이브러리를 이용하여 트래픽을 제어하기 위해 iptables를 이용해 설정한다.

해당 명령어는 게이트웨이 기반 설정하는 명령어이다.

# iptables -I FORWARD -j NFQUEUE

# iptables -nvL

 

인터넷이 패킷을 물고 있기 때문에 연결이 끊어진다.

Suricata가 NFQUEUE를 받아서 포워딩하든가, 다른 어떤 동작을 수행해야 다시 원활하게 연결이 된다.

 

 

NFQUEUE 설정 작업이 이루어진 후에 프로세스를 실행해본다.

Suricata가 작업을 수행하니까 그 후에 실행이 되는 것이다.

 

 

잘 연결되는 것을 확인할 수 있다.

 

 

yaml은 설정 값들이 저장되어 있는 곳이다.

 

 

 

룰 정책 경로를 명령어로 입력해 열어준 뒤,

 

 

 

설정 파일에 내 룰 파일을 등록시켜준다.

myrules.rules

 

 

Alert 룰 적용

alert icmp 192.168.10.200 any -> 8.8.8.8 ant (msg: "ICMP 8.8.8.8 Running"; sid:1000002; rev:1;)

룰 파일에 alert 룰을 입력시켜 저장해준다.

   * 빠져나올 때esc:wq 입력 엔터

 

 

# suricata -c /usr/local/etc/suricata/suricata.yaml -q 0

을 이용하여 Suricata를 실행시켜준다.

 

 

 

그리고 192.168.0.11과 연결된 새 창을 열어,

# tail -f /usr/local/var/log/suricata/fast.log

를 실행하게 되면 핑을 주고 받는 것이 확인된다.

ping이 주고 받아 진다

 

Drop 룰 적용

vi 편집기를 이용하여 다시 룰 설정 파일을 열어준다.

drop icmp 192.168.10.200 any -> 8.8.8.8 any (msg: "ICMP 8.8.8.8 Running"; sid:1000002; rev:2;)

기존에 있던 Alert 룰의 앞에 "#"을 붙여주면 주석 처리가 되어 룰이 적용되지 않는다.

   * vi 편집기를 켜고 yyp를 차례대로 누르면 vi 편집기에 있는 내용이 복사되어 밑으로 적힌다!

 

 

 

ping을 서로 주고 받을 수 없게 된다.

 

Comments