iptables
2021. 12. 22. 14:45iptables이란?
- iptables은 리눅스 상에서 방화벽을 설정하는 도구
- iptables는 커널 상에서 netfilter 패킷필터링 기능을 사용자 공간에서 제어하느 수준으로 사용가능하게 함.
패킷필터링
- 패킷의 헤더를 보고, 그 패킷의 운명을 결정
- 헤더에서 보는 것
1) 출발지IP & PORT
2) 도착치IP & PORT
3) checksum,
4) 프롵코ㅗㄹ 옵션
- 특정 조건을 가지고 있는 패킷에 대해, 허용(ACCEPT)과 차단(DROP)을 지정할 수 있음.
Chain (iptables의 정책들)
- Chain INPUT (서버로 들어오는 기본 정책)
- Chain FORWARD (서버에서 forwarding하는 기본 정책)
- Chain OUTPUT (서버에서 나가는 기본 정책)
1. iptalbes 기본 명령어
1-1. iptables 기본 명령어 목록
-L : 적용되어 있는 정책 목록을 출력
-A : 새로운 정책을 추가
-I : 위치를 선택하여 정책을 삽입
-D : 위치를 선택하여 정책을 제거
-N : 새로운 체인을 만든다.
iptables 기본 명령어 사용 예제
iptables -l : 적용 시킨 정책 목록 출력
iptables -D INPUT 1 : INPUT 체인 첫번째 줄에 있는 정책을 삭제.
제어옵션 명령어 설명
-s (--source) 출발지 주소
-d (--destination) 목적지 주소
-p (--protocol) 프로토콜(tcp, udp, icmp)
-i (--in-nterface) 패킷이 들어오는 네트워크 인터페이스 (inbound interface)
-o (--out-interface) 패킷이 나가는 네트워크 인터페이스 (outbound interface)
-j (--jump) 규칙에 맞는 패킷을 어떻게 처리할 것인가를 명시.
-w (--wait) Wait for the xtables lock. This option will make the program wait until the exclusive lock can be obtained
iptables 제어 옵션 명령어 사용 예제
iptables -A INPUT -s 192.168.0.5 -j DROP
: 192.168.0.5로 부터 오는 패킷을 모두 차단
iptables -A INPUT -d ! 192.168.0.5 -j ACCEPT
: 192.168.0.10를 향해 가는 패킷이 아니라면 허용한다.
iptables -A INPUT -p TCP -j ACCEPT
: TCP 프로토콜 패킷을 모두 허용한다.
iptables -A INPUT -p TCP --dport 80 -j DROP
: 80번 포트를 향해가는 TCP 패킷을 차단한다.
출처/인용