[OS][LINUX][iptables]iptables의 사용법 [작성중]
1. iptables
- 윈도우에도 방화벽에 있듯이 Linux에도 방화벽이 있다.
- iptables는 table > chain > 룰로 구성된다.
2. table의 기본 개념.
- table의 종류 filter[기본], nat, mangle
- 추가, 삭제 할수 없음
- table하위에 chain이 존제함.
- iptables -t [table명] 으로 사용 또는, iptables --table
- -t옵션을 지정하지 않을때는 기본 table인 filter를 사용.
3. filter table
- 방화벽의 주된 테이블로서 특정 룰에 따라서 패킷을 걸러내거나 통과시키는 역할을 한다.
- 하위 기본 chain[삭제/추가 가능] : INPUT, FORWARD, OUTPUT
- INPUT : 외부에서 방화벽 자체로 향하는 패킷에 대한 필터링.
- FORWARD : 방화벽 자체가 아닌 방화벽을 통과하여 방화벽이 보호하는 다른 서버 등으로 향하는 패킷.
- OUTPUT : 방화벽에서 나가는 패킷에 대한 필터링.
4. net table
- nat테이블은 패킷을 필터링하거나 패킷의 ttl등 특성을 변환하는 기능은 없음.
- 방화벽으로 향하는 패킷을 방화벽이 보호하는 내부 네트워크의 다른 주소로 포워딩 하거나 방화벽 내부 네트워크에서 방화벽을 통해 외부 네트워크로 나갈 때 다른 ip주소로 변환시켜 주는 역할을 한다.
- 하위 기본 chain : POSTROUTING, PREROUTING
- POSTROUTING : Source NAT(SNAT)타겟과 매칭되어 내부 네트워크에서 방화벽을 통해 외부로 나갈 때 사용
- 사용예 : 사무실 등에서 사설ip를 사용하면서 하나의 공인 ip로 인터넷을 공유하고자 할 때 즉 공유기의 용도로 사용
- PREROUTING : Destination NAT(DNAT)타겟과 매칭되어 주로 외부에서 방화벽 내부 서버로 향하는 패킷을 방화벽이 보호하는 내부서버로 포워딩 할 때 사용된다.
- 사용예 : 사설 ip로 서버를 운영하면서 외부로 서비스를 하고자 할 때 사용된다.
5. mangle table
- 사용 빈도는 낮지만 패킷의 TTL이나 TOS 값을 변경할때 사용된다.
- 하위 기본 chain : PREROUTING, OUTPUT
- PREROUTING : 라우팅 경로가 결정되기 전에 방화벽으로 들어오는 패킷에 대해 변경한다.
- OUTPUT : 내부에서 생성된 패킷이 방화벽을 통해 나갈 때 변경한다.
참조 : http://jikime.tistory.com/338
1. iptables 버전 확인
shell> iptables --version
2. Commands
-A : 새로운 규칙을 추가한다. (--append)
-D : 규칙을 삭제한다.(--