기술노트

기술노트

게시물 상세
CentOS 6 IPTABLES 정리
작성자 : 관리자(jieun@ehostidc.co.kr)  작성일 : 2018-11-13   조회수 : 3962

1) 체인(chain)

체인들은 어떠한 네트워크 트래픽(IP 패킷)에 대하여 정해진 규칙들을 수행한다.

INPUT : 호스트 컴퓨터를 향한 모든 패킷

OUTPUT : 호스트 컴퓨터에서 발생하는 모든 패킷

FORWARD : 호스트 컴퓨터가 목적지가 아닌 모든 패킷, 즉 라우터로 사용되는 호스트 컴퓨터를 통과하는 패킷

 

2) 매치(match)

iptables에서 패킷을 처리할때 만족해야 하는 조건을 가리킨다. 즉, 이 조건을 만족시키는 패킷들만 규칙을 적용한다.

--source (-s) : 출발지 IP주소나 네트워크와의 매칭

--destination (-d) : 목적지 ip주소나 네트워크와의 매칭

--protocol (-p) : 특정 프로토콜과의 매칭

--jump (-j) : 규칙에 맞는 패킷을 어떻게 처리할 것인가를 명시한다.

--match (-m) : 특정 모듈과의 매치

 

3) 타겟(target)

서버 내부에 유입된 패킷이 규칙과 일치할 때 취하는 동작

ACCEPT : 패킷을 받아들인다.

REJECT : 패킷을 버리고 이와 동시에 적절한 응답 패킷을 전송한다.

LOG : 패킷을 syslog에 기록한다.

 

4) 연결 추적(Connection Tracking)

iptables는 연결 추적(connection tracking)이라는 방법을 사용하여 내부 네트워크 상 서비스 연결 상태에 따라서 그 연결을 감시하고 제한할 수 있게 해준다. 다음과 같은 연결 상태에 따라서 시스템 관리자가 연결을 허용하거나 거부할 수 있다.

NEW : 새로운 연결을 요청하는 패킷, 예, HTTP 요청

ESTABLISHED : 기존 연결의 일부인 패킷

RELATED : 기존 연결에 속하지만 새로운 연결을 요청하는 패킷, 예를 들면 접속 포트가 20인 수동 FTP의 경우 전송 포트는 사용되지 않은 1024 이상의 어느 포트라도 사용 가능하다.

INVALID : 연결 추적표에서 어디 연결에도 속하지 않은 패킷

 

5) 명령어(commond)

-A (--append) : 새로운 규칙을 추가한다.

-C (--check) : 패킷을 테스트한다.

-L (--list) : 규칙을 출력한다.

-F (--flush) : chain으로부터 규칙을 모두 삭제한다.

-P (--policy) : 기본 정책을 변경한다.

 

6) 기본 동작

iptables는 패킷에 대한 동작을 위에서부터 차례로 각 규칙에 대하여 검사하고, 특정 규칙과 일치하는 패킷에 대하여 타켓으로 지정한 동작을 수행한다

규칙이 일치하여 작업이 수행되면, 해당 패킷은 하단의 규칙에 대하여 무시 한다

패킷이 모든 규칙과 일치 하지 않을 경우 정해진 기본 정책이 수행된다.

 

7) 정책 추가 예시 및 정책 적용

7-1) 명령어 입력을 통한 Iptables 정책 적용

iptables -P INPUT ACCEPT // INPUT 체인의 기본정책을 ACCEPT으로 변경

iptables -A INPUT -i eth0 -j ACCEPT // INPUT 체인에 eth0 인터페이스에 들어오는 모든 패킷을 허용

iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT // INPUT 체인에 프로톨콜이 tcp이며 목적지포트가 22번인 패킷에 대해 허용 추가

iptables -A INPUT -p tcp --dport 68 -j ACCEPT // INPUT 체인에 특정 목적지 포트 범위허용

iptables -A INPUT -p tcp -s [Src IP/SUBNET] -d [Des IP/SUBNET] -j ACCEPT // INPUT 체인에 프로톨콜이 tcp이며 특정 출발지 IP에 대하여 특정 목적지 IP의 모든 서비스 허용

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT // INPUT 체인에 접속에 속하는 패킷(응답 패킷을 가진것)과 기존의 접속 부분은 아니지만 연관성을 가진 패킷 (ICMP 에러나 ftp데이터 접속을 형성하는 패킷)을 허용하는 규칙

iptables -D INPUT -p tcp --dport 68 -j ACCEPT // NPUT 체인에 특정 목적지 포트 범위 정책 삭제

service iptables save // 서버 재부팅 시 정책 유지를 위하여 설정 저장

7-2) iptables 설정파일을 수정하여 Iptables 정책 적용

vi /etc/sysconfig/iptables 파일의 정책 추가 또는 수정 후 /wq! 명령어로 저장

**정책 추가 또는 수정 과정에서 해당 정책이 들어가는 순서를 주의 할것!!

이전글 자주 사용하는 CMD 명령어
다음글 ​fail2ban 으로 일정횟수 이상의 접속 실패 IP 차단