본문 바로가기

해봐야 안다.OTL/Linux

[리눅스] iptables: TCP flags // iptables rule 에 대해서 알아보자.

 

 --


구성한 네트워크 모습입니다.

위 네트워크 구축시 iptables 에 작용한 룰을 알아보겠습니다.

뒤에 계속 게시되는 iptables 관련글을 차례대로 이어 보면 되겠습니다.

각 서버 구축은 관련글을 참고하세요.




http://www.iana.org/assignments/protocol-numbers/

 

iptables –A INPUT –p tcp –s 192.168.10.100 –d 192.168.20.100

iptables 의 조건은 다 "and"이다.

 

--sport --dport

"1024:65535" = "1024:" = "! 0:1023"

 

<TCP flags>

URG : urgent pointer가 사용될 경우 1로 셋팅됨.

- 이 긴급비트가 1로 설정되면, 순서에 상관없이 먼저 송신됨.

ACK : acknowledgement number가 유효함

- 1로 셋팅되면 확인번호가 유효함을 뜻함.

- 0으로 셋팅되면 확인번호가 미포함됨(즉, 32비트 크기의 확인번호가 무시됨)

PSH : push

- 수신 측은 가능한 빨리 응용프로그램에 이 데이터를 받는 즉시 전달할 것

- 즉, 수신측은 버퍼가 찰 때까지 기다리지 않고 수신 즉시 어플리케이션에 전달

RST : reset, 연결을 리셋시켜라

SYN : synchronize, 순서번호(일련번호)를 동기화 [연결시작,회선개설]

- 연결요청 : SYN=1, ACK=0

- 연결허락 : SYN=1, ACK=1

- 연결설정 : ACK=1

- TCP가 가상회선을 개설할 떄 의미있는 확인 메시지를 전송하기 위해 일련번호를 동기화 시켜야 한다. 핸드훼이킹 과정에서 통신의 양단간에 이 동기 플래그를 설정한 세그먼트를 전송하고, 그 가상회선에서 사용할 일련번호를 제공하게 된다. à TCP 연결 설정

FIN : finish, 송신기가 데이터 보내기를 끝마침 [연결 해제, 회선 종결]

- 종결 요청 : FIN=1

- 종결 응답 : FIN=1, ACK=1 à TCP 연결 종료