728x90
반응형
iptables
- 명령어 : iptables [Table] [Command] [Chain] [Rule] [Target]
Chain
- INPUT : 커널 내부에서 라우팅 계산을 마친 후 로컬 소켓이 목적지인 패킷
- OUTPUT : 리눅스 시스템 자체가 생성하는 패킷
- FORWARD : 리눅스 시스템을 통과하는 패킷
Match -> 정책 설정 조건
- --source (-s) : 출발지 IP
- --destination (-d) : 목적지 IP
- --protocol (-p) : 특정 프로토콜
- --sport : 출발지 포트
- --dport : 목적지 포트
- --in-interface (-i) : 입력 인터페이스명
- --out-interface (-o) : 출력 인터페이스명
- --state : 연결 상태
- --string : 어플리케이션 계층 데이터 바이트 순서
Target -> 동작 상태
- ACCEPT : 허용
- DROP : 패킷 폐기(수신 스택에서는 모름)
- LOG : syslog에 관련 내용 기록
- REJECT : 패킷 폐기 후 적절한 응답 패킷 전송
- RETURN : 호출한 체인 내에서 패킷 처리 계속 진행
명령어 옵션
- A : 명시 체인에 규칙 추가
- I : 명시 체인 특정 위치에 규칙 추가
- D : 명시 체인의 특정 규칙 삭제
- N : 사용자정의 체인 생성
- F : 명시 체인 내 규칙 전체 삭제
- X : 명시 체인 삭제
- P : 기본 정책 설정
- L : 명시 체인 내 규칙 출력
- E : 체인이름 변경
기타 옵션
-j (--jump) target
-g (--goto) chain
-m (--match) match
--tcp-flags
--syn
--limit
--icmp-type
-f
-m : 모듈 사용
- conntrack : 세션 감시 모듈
- --ctstate (NEW, ESTABLISHED, RELATED, INVALID, UNTRACKED)
- NEW : 이전에 없던 패킷의 새로운 첫 연결 요청이 들어오는 패킷
- ESTABLISHED : NEW상태를 거친 이후의 패킷 / 새로운 연결 요청에 관한 그 후의 패킷들이 오고가는 상태
- RELATED : 새로운 연결 요청이지만, 기존의 연결과 관련된 패킷
- INVALID : 이전 상태 중 어떤 것도 적용되지 않는 패킷
- limit : 시간당 패킷의 흐름(갯수) 제한
- string : 문자열 필터링
Table
- 각종 기능들을 수행하기 위한 규칙 테이블의 구분
- filter
- 패킷 필터링 시 적용되는 필터링 규칙
- nat
- NAT 규칙
- mangle
- 패킷 데이터를 변경하는 특수 규칙
- raw
- 넷필터의 연결추적 기능과 독립적으로 작동시키는 기능에 사용되는 테이블
- 즉, 넷필터 ip_conntrack 모듈보다 더 높은 우선순위를 가짐
- 2개 이상 나오면 or가 아닌 and 조건으로 처리함
- iptables -L, -N, -X, -P, -E
Chain
- 공통적인 특징을 공유하는 패킷들을 구분하기 위한 모음
- 미리 정의된 고유 체인을 가짐
- 사용자 정의 체인도 정의 가능
- iptables 문법 : iptables 명령어 체인 규칙 -j 타겟
- 규칙 수식
- -p 프로토콜
- --dport(or --sport) 포트
- -i 인터페이스
- -s(or -d) IP주소
- ! : 부정연산, 부정연산자 옵션명 값
- 규칙 수식
728x90
반응형