일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ToDoList
- stock price
- algotithm
- 웹해킹
- SQL Injection
- todo
- hackerrank
- 모드 설정
- meterpreter
- Router
- CSRF
- 써니나타스
- leetcode
- 정보시스템
- 취약점
- StringBuilder
- 취약점진단
- Algorithm
- Suninatas
- programmers
- 라우터
- java
- todo List
- metasploit
- wpscan
- 미터프리터
- HTML Injection
- SQLMap
- 모의해킹
- study
- Today
- Total
보안 / 개발 챌린저가 목표
IPS(Suricata) 운영 실습 본문
간단한 개념을 보고 싶다면,
포워딩(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
를 실행하게 되면 핑을 주고 받는 것이 확인된다.
▷ 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을 서로 주고 받을 수 없게 된다.
'IT Security > Class_Do it' 카테고리의 다른 글
취약점(Vulnerability)과 MyDLP의 이해 및 구축 (0) | 2020.09.11 |
---|---|
캐슬(CASTLE)을 이용한 웹 방화벽 구축 (0) | 2020.09.09 |
네트워크 방화벽을 이용한 실습 (0) | 2020.09.08 |
TCP 연결 기반 DoS 공격 (2) (0) | 2020.09.07 |
TCP 연결 기반 DoS 공격 (1) (0) | 2020.09.06 |