iptables로 포트와 IP를 허용/차단하려면?
💡 요약 정리
- iptables는 리눅스 방화벽 도구로, 체인과 규칙을 통해 패킷을 허용/차단합니다.
- 규칙은 위에서 아래로 평가되며, 첫 번째로 매칭된 규칙이 즉시 적용됩니다.
- 일치 규칙이 없으면 체인의 기본 정책(ACCEPT 또는 DROP)으로 처리됩니다.
- 차단 정책(DROP)을 먼저 적용하면 접속이 끊길 수 있으니, 필요한 포트/관리자 IP를 먼저 허용하세요.
- 아래 예시 명령을 그대로 복사해 포트·IP 허용/차단, 저장, 삭제, 백업/복원을 수행할 수 있습니다.
1. iptables란?
- 패킷을 제어하는 리눅스 기반의 프로그램입니다.
- 체인(Chain)과 규칙(Rule)을 사용하여 네트워크 패킷을 처리(허용/차단 등)할 수 있습니다.
2. 체인(Chain)
기본적으로 3개의 체인을 제공합니다.
1) INPUT Chain
- 서버로 들어오는 패킷을 처리하는 Chain
2) FORWARD Chain
- 서버를 통과해 다른 네트워크로 전달되는 패킷을 처리하는 Chain
3) OUTPUT Chain
- 서버에서 외부로 나가는 패킷을 처리하는 Chain
3. iptables 정책 읽는 방법
- 위에서 아래로 적용: 체인에 등록된 규칙은 맨 위에서부터 순차적 으로 평가됩니다.
- 첫 번째로 일치하는 규칙: 트래픽이 첫 번째로 일치하는 규칙에 따라 처리되며, 해당 규칙 이후의 규칙은 무시됩니다.
- 기본 정책: 규칙을 모두 통과했지만 일치하는 규칙이 없을 경우, 기본 정책에 따라 처리됩니다.
- 기본 정책이 ACCEPT이면 트래픽이 허용되고, DROP이면 차단됩니다.
4. iptables 명령어
차단 정책을 먼저 설정하면, 서버에 대한 모든 접속이 즉시 차단될 수 있으므로, 차단 정책 설정 전 필요한 포트를 반드시 허용해야 합니다.- 들어오는 모든 패킷 차단 정책
iptables -P INPUT DROP
1) 정책 확인
- 명령어
iptables -nvL
2) 정책 등록
① 특정 포트 허용
- 명령어
iptables -A INPUT -p tcp --dport (PORT) -j ACCEPT
- ex)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
② 특정 IP 허용
- 명령어
iptables -I INPUT -s 192.168.1.100 -j ACCEPT
- ex)
iptables -I INPUT -s (IP) -j ACCEPT
③ 특정 IP대역 및 포트 허용
- 명령어
iptables -I INPUT -p tcp --dport 80 -s 192.168.0.0/24 -j ACCEPT
- ex)
iptables -I INPUT -p tcp --dport (PORT) -s (IP대역) -j ACCEPT