iptables
iptables는 커널 기반의 방화벽 시스템으로서, 패킷을 분석하고 해당 패킷에 대해 정책을 적용한다. 이를 통해 네트워크 상에서 데이터 흐름을 제어하고 보안을 강화할 수 있다. iptables는 네트워크 인터페이스에 들어오고 나가는 패킷에 대해 다양한 규칙을 설정하여 패킷의 동작을 결정한다.
일반적으로 iptables는 명령행 인터페이스를 통해 사용되며, 관리자가 직접 규칙을 추가, 수정, 삭제하여 네트워크 트래픽을 제어한다. iptables 규칙은 패킷의 소스 IP 주소, 목적지 IP 주소, 포트 번호 등에 따라 작동한다. 이러한 규칙을 조합하여 특정 트래픽을 허용하거나 차단할 수 있다.
주요 기능
- 패킷 필터링 : 특정 IP 주소, 포트, 프로토콜 등에 따라 패킷을 거부 또는 허용하는 데 사용한다.
- 포트 포워딩 : 특정 포트로 들어오는 패킷을 다른 포트 또는 다른 IP 주소로 전달하는 데 사용한다.
- 패킷 로깅 : iptables는 로깅을 통해 패킷을 기록하고 추적할 수 있다
명령어
iptables [-t table] [action] [chain] [match] [-j target]
| target | filter | 기본 테이블로 방화벽 관련 작업을 수행한다 |
| nat | 새로운 연결을 생성하는 패킷때 참조한다. (포트포워딩) | |
| mangle | TT | |
| raw | 연결추적기능을 자세히 설정, 제외하기 위해 사용 | |
| action | -N | 새로운 사용자 정의 chain생성 |
| -X | 비어있는 chain 제거 | |
| -P | chain 기본 정책 설정 | |
| -L | 현재 chain 규칙 나열 | |
| -F | chain으로부터 규칙 제거 | |
| -A | chain에 새로운 규칙 추가 | |
| -I -R -D -Z | (맨 첫줄 삽입), (규칙교환), (규칙제거), (카운트 초기화) | |
| chain | INPUT | 호스트 컴퓨터로 향하는 모든 패킷(inbound) |
| FORWARD | 라우팅되는 로컬 전달이 아닌 모든 패킷 (all packet) | |
| OUTPUT | 호스트 컴퓨터에서 상대측에 보내는 패킷(outbound) | |
| PREROUTING | 라우팅 전 | |
| POSTROUTING | 라우팅 후 | |
| match | -s -d | 출발지/목적지 ip주소나 네트워크와 매칭한다. |
| -p | 특정 프로토콜과 매칭한다. <tcp|udp|icmp> --sport, --dport | |
| -i -o | -i(입력인터페이스) o(출력인터페이스) | |
| ! | not 의미로 사용, 특정 매칭 제외 시 사용한다 | |
| -j target | ACCEPT | 패킷 허가 |
| DROP | 거부 | |
| LOG | syslog 전달 (var/log/message에 저장) | |
| JECT | 패킷 버리고 적절한 응답 패킷 전달 |
사용
































