Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- k8s
- SMS-P 인증 기준 안내서 요약
- 보안
- CFReDS
- 정보보안기사 실기
- AWS EKS
- 포렌식
- The Sleuth Kit
- hacking case
- iam
- 정보보안기사
- AWS 쿠버네티스
- 모의해킹
- TSK
- 쿠버네티스
- AWS Opensearch
- isms-p
- ISMS-P 인증심사원
- 정보보안
- Autopsy
- forensic
- ISMS
- 해킹
- AWS
- kubernetes
- 실습
- AWS Elasticsearch
- AWS EKS Udemy
- 보안기사
- artifacts
Archives
- Today
- Total
Always-Try(정보보안 및 일상)
[정보보안기사][실기] iptables 침입차단 시스템 본문
iptables 사용 문법
더보기
1. 형식
- iptabels [테이블] -[A | -I | -D] [체인] [룰] [타겟]
- [테이블] 미설정 시 디폴트로 filter 테이블 적용 (대부분 여기 해당)
- '-[A | I | D] [체인]'
- -A: append 모드, 해당 체인의 제일 마지막 줄에 추가 (대부분 여기에 해당)
- -I: insert 모드, 해당 체인의 첫 행에 룰을 추가
- -D: 특정 행의 체인을 삭제하거나 체인 전체를 삭제할 때 사용
- 체인 종류: INPUT, OUTPUT, FORWARD
2. 테이블
- 미설정 시 디폴트로 filter 테이블 적용 (대부분 여기 해당)
3. -[A | -I | -D] [체인]
- -A: append 모드, 해당 체인의 제일 마지막 줄에 추가 (대부분 여기에 해당)
- -I: insert 모드, 해당 체인의 첫 행에 룰을 추가
- -D: 특정 행의 체인을 삭제하거나 체인 전체를 삭제할 때 사용
- 체인 종류: INPUT, OUTPUT, FORWARD
4. [룰]
- -s: 출발지 IP
- -d: 목적지 IP
- --sport: 출발지 포트 ( ':' 위치에 따라 이상, 이하로 표현 가능)
- 23 or 1024: or :65535 or 1:1023
- --dport: 목적지 포트
- --icmp-type [메시지타입]
- echo-request
- -p tcp [패킷 유형]
- --tcp-flags [검사할 플래그 리스트] [설정되어야 할 플래그 리스트]
- SYN,FIN SYN,FIN (-> SYN,FIN를 검사해서 SYN,FIN 플래그가 있으면 탐지)
- -m state --state [탐지할 상태]
- NEW, ESTABLISHED, RELATED, INVALID
- --tcp-flags [검사할 플래그 리스트] [설정되어야 할 플래그 리스트]
5. [타켓]
- -j [정책]
- -j ACCEPT
- -j DROP (차단 후 아무런 응답 메시지 보내지 않음)
- -j REJECT (차단 후 ICMP 에러 메시지 전송)
- -j LOG (탐지 로그를 /var/log/messages 에 남긴다)
기타 옵션
더보기
1. iptables -L [체인] -n
- -L (리스트 확인)
- -n 숫자 형식으로 출
-
2. iptables -F [체인]
- 해당 체인에 등록된 모든 룰 정보 삭제
3. iptables -P [체인] [ ACCEPT | DROP | REJECT ]
- default policy를 지정한다. 즉, 아무런 룰에 걸리지 않을 경우 적용되는 정책을 지정한다.
- DROP/REJECT로 설정할 경우, Negative 정책(대부분 여기에 해당)
- Positive로 설정할 경우, ACCEPT 정책(대부분 여기에 해당)
4. -m connlimit
- 동일한 IP 또는 IP 대역의 동시 연결 개수에 대한 제한을 할 수 있는 모듈로 디도스 공격에 효과적으로 대응
- --connlimit-above n: n을 초과하는 동시 연결을 제한
- --connlimit-mask mask: subnet 마스크에 대한 동시 연결을 제한
5. -m limit
- 룰에 매치되는 비율을 제한할 수 있는 기능으로 불필요한 로그를 남기지 않도록 할 때 유용
- --limit [n/second | n/minutes | n/hour | n/day ]
6. -m recent
- 동적으로 Source IP 목록을 생성하여 이를 기반으로 패킷을 제어하는 기능 제공
- --seconds
- --hitcount
실습1) 상태추적 테이블에는 NEW이지만, SYN 플래그를 설정하지 않은 비정상패킷을 DROP Rule
더보기
- iptable -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
실습2) FTP Active Mode 상태 추적 허용 Rule
더보기
- iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
- iptables -A OUTPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
실습3) 웹서버에 대한 TCP SYN Flooding 공격을 대응하기 위한 Rule 설정 (동일 IP에서 오는 공격 제한)
더보기
- iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 5 -j DROP
실습4) 웹서버에 대한 TCP SYN Flooding 공격을 대응하기 위한 Rule 설정 (같은 /24 대역에서 오는 공격 제한)
더보기
- iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 5 --connlimit-mask 24 -j DROP
실습5) 비정상적인 TCP 플래그 조합(SYN_FIN 플래그 조합) 차단 Rule
더보기
- iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
실습6) 비정상적인 TCP 플래그 조합(FIN 플래그만 설정) 차단 Rule
더보기
- iptables -A INPUT -p tcp --tcp-flags ALL FIN -j DROP
실습7) 비정상적인 TCP 플래그 조합(플래그가 설정되지 않음) 차단 Rule
더보기
- iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
실습8) 비정상적인 TCP 플래그 조합(모든 플래그가 설정) 차단 Rule
더보기
-
- iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
실습9) SSH Brute Force / Dictionary Attack 차단 Rule 설정
더보기
- iptables -A INPUT -m state --state NEW -p tcp --dport 22 -m recent --name SSH_DROP --update --seconds 60 --hitcount 5 -j DROP
'정보보안 자격증 + ISMS-P' 카테고리의 다른 글
[정보보안기사][실기] Snort (0) | 2021.10.19 |
---|---|
[정보보안기사][실기] 웹 어플리케이션 취약점(SQL Infection, XSS, CSRF, 개발 보안 안내서 등등) (0) | 2021.10.06 |
[정보보안기사][실기] 웹 로그 분석 (0) | 2021.09.30 |
[정보보안기사][실기] 웹 서버 취약점 및 대응 방법 (디렉터리 리스팅, 웹 서비스 메소드 설정, 관리자 페이지 노출, 위치공개 취약점) (0) | 2021.09.30 |
[정보보안기사][실기] 아파치 웹 서버 보안 대책 (0) | 2021.09.29 |
Comments