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에 로그 저장된다.