개발 창고/Server
[Linux] How to use iptables
로이제로
2023. 11. 12. 22:00
반응형
How to use iptables
리눅스 운영 체제에서 사용되는 방화벽 관리 도구입니다. 이 도구를 사용하여 네트워크 트래픽을 제어하고 보안 정책을 설정할 수 있습니다. iptables는 패킷 필터링, 패킷 수정, 패킷 로깅 등 다양한 기능을 제공합니다. 이를 통해 시스템의 보안을 강화하고 네트워크 통신을 제어할 수 있습니다. iptables는 명령줄 인터페이스(CLI, Command-Line Interface)를 통해 구성되며, 사용자가 정의한 규칙에 따라 패킷을 처리합니다. 시스템 관리자는 iptables를 사용하여 원하는 대상과 포트에 대한 액세스 규칙을 설정하고, 불필요한 트래픽을 차단하여 시스템의 안전성을 높일 수 있습니다.
NAT (Network Address Translation)
네트워크 주소 변환 서비스
- SNAT(Source NAT) : 내부 사설IP에서 외부로 나갈 때 공인IP로 변환
- DNAT(Destination NAT) : 외부에서 방화벽(외부IP)으로 요청되는 주소로 내부 사설 IP로 변환
iptables
기본 명령어 | 내용 | |
-A | --append | 새로운 정책을 마지막에 추가합니다. |
-C | --check | 패킷을 테스트합니다. |
-D | --delete | 기존 정책을 삭제합니다. |
-I | --insert | 새로운 정책을 특정 번호로 지정합니다. (지정되지 않은 경우 맨 처음에 추가됩니다.) |
-R | --replace | 새로운 규칙을 교체합니다. |
-L | --list | 적용되어 있는 정책 목록을 출력합니다. |
-F | --flush | 적용된 모든 정책을 삭제합니다. |
-N | --new | 새로운 사용자 정의 체인을 생성합니다. |
-X | --delete-chain | 사용자 정의 체인을 삭제합니다. |
-P | --policy | 대상 체인의 기본 정책을 설정합니다. ACCEPT, DROP, REJECT 등의 정책을 설정 할 수 있습니다. |
제어 옵션 명령어 | 내용 | |
-p | --protocol | 프로토콜을 지정합니다. tcp, udp, icmp 등의 프로토콜을 지정할 수 있습니다. |
-s | --source | 특정 IP 주소 또는 네트워크 범위의 소스를 지정합니다. |
-d | --destination | 특정 IP 주소 또는 네트워크 범위의 목적지를 지정합니다. |
-i | --in-interface | 패킷이 들어오는 네트워크 인터페이스 (inbound interface) |
-j | --jump | 방화벽을 지난 후 패킷의 상태 제어 |
-o | --out-interface | 패킷이 나가는 네트워크 인터페이스 (outbound interface) |
사용 예시
▶︎ 적용 시킨 정책 목록을 출력합니다.
$> iptables -L
▶︎ 현재 iptables 규칙을 초기화합니다.
$> iptables -F
▶︎ 192.168.100.150에서 모든 패킷을 차단합니다.
$> iptables -A INPUT -s 192.168.100.150 -j DROP
▶︎ TCP 프로토콜 패킷을 모두 허용합니다.
$> iptables -A INPUT -p TCP -j ACCEPT
▶︎ 20~30번 포트로 가는 모든 패킷을 허용합니다.
$> iptables -A INPUT -p TCP --dport 22:30 -j ACCEPT
▶︎ 80번 포트로 1초에 10번 이상 SYN이 들어오면 응답하지 않도록 합니다.
$> iptables -A INPUT -p TCP --dport 80 -m recent --update --seconds 1 --hitcount 10 --name HTTP -j DROP
▶︎ 수신지 포트 번호가 1000보다 작은 모든 포트 번호의 TCP 프로토콜의 경우 차단합니다.
$> iptables -A INPUT -p TCP --dport :1000 -j DROP
반응형