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
- 정보보안기사 실기
- 정보보안기사
- 정보보호 취업
- k-shield 주니어 14기
- 정보보안전문가
- csts 일반등급
- csts출제기준
- 모의해킹
- 정보보안기사 후기
- csts기출문제
- csts범위
- CSTS
- csts 후기
- csts일반등급
- csts요약
- 케이쉴드주니어
- csts요약본
- k-shield
- 케이쉴드주니어 14기
- csts기출
- 파일 시스템
- 정보보안 컨설팅
- CPU 스케줄링
- ISMS-P
- 정보보안 취업
- csts 일반등급 후기
- 케이쉴드주니어 13기
- 솔루션 개발
- 디스크 스케줄링
- 보안솔루션 운영
Archives
- Today
- Total
CyberRanger
[Linux 보안] iptables - 리눅스 방화벽 본문
iptables: 리눅스에서 방화벽 정책을 수립할 수 있는 도구.
화이트 리스트 / 블랙 리스트 필터링 정책 설정 가능.
1. iptables 기본 동작
· 패킷에 대한 동작은 체인의 위 -> 아래로 각 규칙에 대해 검사.
· 패킷이 규칙과 일치하면 ACCEPT, DROP 등 수행.
· 일치하는 규칙이 없으면 기본정책(Policy)대로 수행.
* 명령어 기본 형식은 다음과 같음.
iptables -A INPUT -s 0.0.0.0/0 j DROP (시스템 내부로 들어오는 패킷 전체 차단)
(1) 먼저 기본 정책을 만든다. (화이트 리스트 필터링 - 전체 차단 후 선택적 허용)
iptables -P INPUT -j DROP
(2) 이후 규칙을 추가하며 사용한다.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
· 정책/규칙 옵션
옵션 | 설명 |
-P (policy) | 기본 정책 설정 |
-I (insert) | 규칙을 맨 위에 추가 |
-A (append) | 규칙을 맨 아래에 추가 |
-D (delete) | 규칙 삭제 |
-X (delete chain) | 체인 삭제 |
· 체인(Chain)의 종류
체인 | 설명 |
INPUT | 시스템으로 들어오는 패킷 |
OUTPUT | 시스템에서 외부로 나가는 패킷 |
FORWARD | 자신을 통과하는 모든 패킷 |
· match 옵션
옵션 | 설명 | 사용 예시 |
-s | 출발지 | -s 192.168.0.2 |
-d | 도착지 | -d 192.168.0.3 |
-p | 프로토콜 | -p tcp --dport 80 --syn |
-i | input 인터페이스 | -i eth0 |
-o | output 인터페이스 | -o eth0 |
-j | 패킷을 어떻게 처리할 것인지 | -j DROP |
-m | 특정 모듈과 매치(state, connlimit) | -m connlimit --connlimit -above 10 -m state --state ESTABLISHED |
· state 모듈
옵션 | 설명 |
NEW | 새로운 연결 요청 |
ESTABLISHED | NEW 상태 이후에 연결된 패킷 |
RELATED | 기존 연결과 관련된 패킷 |
INVALID | 비정상적인 접근 |
-m state --state ESTABLISHED,RELATED -j ACCEPT
· connlimit 모듈
-m connlimit --connlimit -above 10 -j DROP
(10개 이상의 연결은 DROP)
· iptables 패킷 처리 방법
옵션 | 설명 |
ACCEPT | 받아들임 |
DROP | 패킷을 버리고 응답하지 않음. |
REJECT | 패킷을 버리고 거부로 응답 (ICMP Unreachable) |
LOG | 로그에 기록 |
* LOG 옵션
-j LOG --log -prefix"접두사"
2. iptables 사용 예제
구분 | 예제 |
전체 접근차단 | · iptables -A INPUT -s 0.0.0.0/0 -j DROP |
특정 IP 접근 허용 | · iptables -A INPUT -s 10.0.0.1 -j ACCEPT |
HTTP, HTTPS 접근 허용 및 tcp 프로토콜 접근 허용 |
· iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 80 -j ACCEPT · iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 443 -j ACCEPT |
state 옵션 | · iptables -I INPUT -d 10.0.0.1 -m state --state ESTABLISHED,RELATED -j ACCEPT · iptables -I INPUT -d 10.0.0.1 -m state --state RELATED -j ACCEPT · iptables -I INPUT -d 10.0.0.1 -m state --state INVALID -j DROP |
연결 개수 제한 | · iptables -I INPUT -d 10.0.0.1 -p tcp --dport 80 -m connlimit --connlimit -above 10 -j DROP · iptables -I INPUT -d 10.0.0.1 -p tcp --dport 443 -m connlimit --connlimit -above 10 -j DROP |
로그 기록 예제 (비정상적인 패킷) |
· iptables -A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log -prefix "[Forged SYN Packet]" · 상태가 NEW이면서(--state NEW), SYN 플래그가 아닌(! --syn) 비정상적인 패킷 차단(-j DROP) · 새로운 tcp 연결을 위해서는 3-way handshaking이 필수적임. · 위 규칙은 새로운 tcp 연결에 SYN 플래그가 아닌(3-way handshaking을 하지 않는) 패킷을 탐지함(비정상적 패킷) |
'정보보안기사 > 시스템 보안' 카테고리의 다른 글
[Windows] 윈도우 계정, 그룹, 인증 시스템, UAC (0) | 2024.08.06 |
---|---|
[Linux 보안] TCP Wrapper - 리눅스 방화벽 (0) | 2024.08.05 |
보안 도구, 공격 도구, 악성코드, 바이러스 (0) | 2024.08.05 |
[Linux 보안] 리눅스 계정 관리 (0) | 2024.08.05 |
[Linux 보안] 리눅스 PAM 모듈(리눅스 인증 모듈) (0) | 2024.08.05 |