iptables 명령어 요약

2011. 3. 18. 21:28카테고리 없음


#>iptables [-t table명] 명령어 [매칭옵션] [target]  // []는 빼줌

                             chain들어감
 

- 테이블 명 다음에는 매칭 옵션 지정

- -t 를 주면 nat나 mangle중 선택

- -A, --append : 지정한 chain의 제일 마지막에 추가됨

- -I : 룰의 제일 앞에 위치하게됨 (insert)

- -D, -delete : 룰, 필터링 정책을 테이블에서 삭제하는 명령어

- iptables -D INPUT 1 : ACL의 첫번째 룰이 삭제됨

- -L, --list : 리스트 보여줌 (ex) iptables -L INPUT

- -F, --flush : 전체 삭제

- -P로 지정한 기본 정책은 변경되지 않는다

- -N, --new-chain : 새로운 chain을 생성하는 명령어, 새로운 table은 생성할수 없음, 기본 chain변경불가

    (ex) iptables -N TEST

- -X, --delete-chain : 지정한 chain을 삭제하는 명령어

- -P, --policy : ex) iptables -P INPUT DROP, chain에 대한 기본정책을 의미함

- DROP : 일반적으로 기본 정책에서는 DROP을 설정 (드랍됨 로그만 쌓는다, ACCEPT는 안쌓음)

- reject, drop : 전자는 관리자가 볼수 있게 화면에 뿌려주고, 후자는 뿌려주지 않는다, 둘다 로그는 쌓음

- ACCEPT : 세부 룰에서 특정한 패킷을 허용하는 정책을 설정

- 기본정책을 설정할때는 -j를 사용하지 않는다

 

- -p, --protocol : tcp나 icmp처럼 매칭되는 프로토콜을 지정, not의 의미인 느낌표(!)를 함께 사용가능

  ex) iptables -A INPUT -p tcp ~~~ ex) -p! tcp는 tcp가 아닌 즉 udp와 icmp를 의미함

- -s, --source : 패킷의 소스 ip 주소를 뜻함(출발지ip), 192.168.1.x는 그 대역의 모든 패킷

- -d, --destination : 목적지 주소를 뜻함, 이것을 지정하지 않으면 모든 목적지에 대한 매칭이 됨

- -s가 없이 -d만 지정되어 있으면 목적지로 향하는 모든 패킷을 뜻함

- -i, -o : eth0이나 eth1등과 같이 어떤 인터페이스에서 들어오거나 나가는 패킷인지 지정

  전자는 in으로서 들어오는, 후자는 out으로서 나가는 인터페이스(랜카드)

  인터페이스가 여러개일때 사용

  ex) iptables -A INPUT -i eth0

- --sport : 패킷의 소스포트 1024:65535 (1024부터 65535까지의 포트) , 1024: (1024이상 모든포트, 즉 65535까지의 모든 포트), :1024 (1024포트 이하 전부)

- --dport : 패킷의 목적지 포트

- --tcp-flags : tcp 플래그 설정, INPUT chain을 통하여 들어오는 tcp 패킷에서 6개의 tcp-flags중 모두 살펴볼 필요 없음 ex) iptables -A INPUT -p TCP --tcp-flags ACK,FIN all 옵션을 주면 모두 체크함

- -- syn : tcp에서 syn 비트가 설정된 패킷의 의미에 대하여 syn 비트가 설정된 패킷

ex) ~~--syn -j DROP, 예와 같이 들어오는 tcp 패킷중 syn 비트가 설정된 패킷을 거부

input와 output 검사할 때 output는 신뢰된 연결로 보고 input보다 검사 강도가 낮다

- --icmp-type : icmp는 tcp나 udp와 달리 포트의 개념이 없으며 대신 icmp-type과 code라는 것을 사용하여 구별함(tcp나 udp는 포트번호로 상호 어떤 서비스인지 구별)

http://www.iana.org/assignments/icmp-parameters // icmp-type와 code 참고


- -m state : 상태 추적(connection state)에서 사용, NEW, ESTABLISHED, RELATED, INVALID 이렇게 4가지의 상태를 제공

 

- -j : 타겟(target), 지금까지의 룰에 매칭되는 패킷이 있을경우 어떻게 처리할 것인지를 지정함

ACCEPT, DROP,LOG,S(source)NAT,D(destination)NAT등이 올수 있음

(SNAT,DNAT는 주소 변환을 한다는 것을 의미)

 

- --log-level : LOG에서 주로 사용하는 옵션, 어떠한 로깅 레벨을 사용할 것인지를 정할수 있음

- --log-prefix "정보" : LOG에서 주로 사용하는 옵션, 매칭되는 패킷에 대해 로그정보를 남길때 사용

                     (로그 분석의 효율성) /var/log/messages에 로그 저장된다.