iptables는
간단히 말해서 리눅스 내부에서 패킷을 제어하는 도구이다.
- 제어 규칙을 정의하는 기본 단위를 Chain
- 기본 테이블로 filter(방화벽), nat(IP주소 매스커레이드), mangle이 있으며, 필요에 따라 추가 혹은 삭제가 가능
- filter: 기본 테이블로 방화벽 관련 작업이 이루어짐
- *nat: 방화벽을 통해 내부 네트워크로 들어가거나 외부 네트워크로 나갈 때 주소를 변환하는 역할
- SNAT: Source IP 주소 변경 ex) 마스커레이딩
- DNAT: Destination IP 주소 변경 ex) Port Forwarding
- mangle: TTL, TOS(Type of Service, 패킷 우선순위) 변경 같은 특수 규칙을 적용하기 위해 사용
- raw: 연결 추적(Connection Tracking) 기능을 자세히 설정이나 연결 추적 제외 시 사용
NAT: 사설(Private) IP를 공인(Public) IP로 변경에 필요한 주소 변환 서비스
- NAT는 다수의 주소 변환 정보에 대해 IP 주소와 Port 번호로 구성된 NAT Forwarding Table을 보관하고 있고 이에 맞게 주소 변환 서비스를 제공
- NAT Table → 내부 네트워크에 위치한 호스트들의 사설 IP와 포트 번호에 대한 정보를 가지고 있음
- NAT Table → 외부로 나갈 때의 동일한 공인 IP와 각기 다른 포트 번호를 가지고 있음
- NAT Table → 목적지 주소의 공인 IP와 서비스에 사용된 동일한 서비스 포트 번호를 가지고 있음
- 공인 IP는 같으나 포트 번호를 다르게 할당하여 각각의 호스트를 구분
명령어
$ iptables [-t table] [action] [chain] [matches] [-j target] 형식으로 사용
Action 옵션
- -A: 새로운 정책 추가
- -I: 위치를 선택하여 정책을 삽입
- -D: 정책을 삭제
- -R: 정책을 교체
- -P: 기본 정책 설정
- -L: 정책 목록 확인
- -F: 체인으로부터 모든 정책 삭제
chain: iptables의 제어 규칙을 정의하는 기본 단위
- INPUT: 호스트를 향한 모든 패킷
- OUTPUT: 호스트에서 발생하는 모든 패킷
- FORWARD: 호스트가 목적지가 아닌 모든 패킷
- PREROUTING: 패킷이 리눅스 서버에 전달되기 전 규칙을 정의
- POSTROUTING: 리눅스 서버에서 나가는 규칙을 정의
matches: 출발지와 목적지를 매칭해주는 방법
- -s: 출발지 매칭, 도메인, IP 주소, 넷마스크 값을 이용하여 표기
- -d: 목적지 매칭, 도메인, 넷마스크 값을 이용하여 표기
- -p: 프로토콜과 매칭, TCP, UDP, ICMP와 같은 이름을 사용
- -i: 입력 인터페이스와 매칭
- -o: 출력 인터페이스와 매칭
- -j: 매치되는 패킷을 어떻게 처리할지 지정
- -f: 분절된 패킷
- --sport: 패킷의 발신 포트 번호를 명시
- --dport: 패킷의 도착 포트 번호를 명시
-j target
- ACCEPT: 패킷을 허용
- DROP: 패킷을 버림
- REJECT: 패킷을 버리고 이와 동시에 적절한 응답 패킷을 전송
- LOG: 패킷을 syslog에 기록
- RETURN: 호출 체인 내에서 패킷 처리를 계속합니다.
기본적인 명령어
명령어는 iptables --help로 확인 할 수 있으니 사용하면서 필요한 명령어를 찾아보자
※ 현재 iptables rule을 저장하고 vi 편집기와 같은 것으로 편집 한 후 restore 해서 수정하는 것도 방법이다.
iptables-save > iptables.todaydate
vi iptables.todaydate
iptables-restore < /etc/iptables/rules.v4
iptables 명령어는 잘 알아두면 유용하게 사용되니 숙지하는 것이 중요..
'리눅스' 카테고리의 다른 글
Ubuntu 패키지 (0) | 2023.04.29 |
---|---|
리눅스 프로세스 관리 (1) | 2023.04.29 |
리눅스 파일 관리 (0) | 2023.04.29 |
Ubuntu 사용자 관리 (0) | 2023.04.29 |
Ubuntu VM 접속 기본 설정 (0) | 2023.04.29 |
댓글