질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

Iptables에 대해서

작성자 정보

  • 홍석범 작성
  • 작성일

컨텐츠 정보

본문

안녕하십니까? 오늘과내일의 홍석범입니다.

결론적으로 말씀드리면, 오레일리 책이 잘못 된 것입니다.
NAT 테이블에서는 패킷포워딩의 역할만 하여야 하며 패킷에 대한 필터나 허용은 반드시 filter 테이블에서 하여야 합니다. 왜냐하면 테이블의 개념자체가 바로 iptables의 역할에따른 분류이기 때문입니다. 그런데, 많은 문서들이 이 부분에 대해 잘못 설명되어 있는 경우가 더러 있습니다...  

감사합니다.

조광민 님의 글



제가 질문을 좀 잘못 올렸습니다. 죄송합니다..ㅠ.ㅠ

다시 질문 드립니다.

PREROUTING과 POSTROUTING은 홍보성 선생님의 말씀하신것같이

트래픽의 변환 및 다른 네트웍(or ip)로 의 변환 전달을 담당하는 룰입니다.

제가 궁금한 것은 이 NAT관련 Chain에서 ACCEP와 DROP을 사용해도 되느냐

입니다. 홍석범 선생님 책에는 에러가 발생하지는 않지만 iptables의 오작동을

일으킬 수 있다고 말씀하셨습니다. 그런데 아래서 제가 말한 책에서 보면

NAT 테이블 안에서도 ACCEPT와 DROP을 설정해 놓았습니다.

오레일리 책이 잘못된 것인가요?

어느것이 옳은 것일까요?

그리고 또 한가지...

방화벽에 패킷 이동 경로 중에 INPUT Chain은 PREROUTING chain 뒤에 있다고

알고 있습니다. PREROUTING 테이블을 거친후 INPUT 테이블로 패킷이

이동한다고 알고 있습니다.

제가 틀린 걸까요?

선생님 도와 주세요!!^.^

 


 

홍보성 님의 글



정확한 룰의 기능과 사용 목적에 대해 좀더 공부 하셔야 됩니다.

INPUT, OUTPUT, FORWARD는 트래픽의 허가, 차단, 로그 등의 기본 체인 룰 입니다.

PREROUTING, POSTROUTING은 트래픽의 변환 및 다른 네트웍(or ip)로 의 변환 전달을 담당하는 룰이죠.

또 여기서 구분 한다면 INPUT과 OUTPUT은 IPTABLES가 도는 서버를 기준으로 적용되는 서비스로 서버로 신호가 들어오고 서버에서 외부로 내보내는 신호의 제어를 담당하는 룰이고

FORWARD는 서버를 거쳐 전달되는 신호를 제어하는 룰로 인터넷 방화벽, 라우터 등의 기능에 적용되는 룰입니다.

PREROUTING은 쉽게 말하면 DNAT라고도 하고 포트포워딩 이라고도 흔히 말하는데 외부에서 서버로 특정 포트로 접속하면 내부 지정한 IP의 지정한 PORT로 전달, 매칭 해 주는 기능을 합니다. 당연 INPUT 룰을 먼저 거친 후 적용됩니다.

POSTROUTING은 내부의 사설 ip의 신호를 대표 IP로 변환하여 외부로 여러 내부 ip들이 인터넷이 가능하게끔 하는 기능을 합니다. SNAT라는 기능입니다. 이는 FORWARD 룰에 영향을 받습니다.

세부적인 설정이나 기능은 찾아보시면 쉽게 접할 수 있습니다.

조광민 님의 글



책 내용 중에

방화벽 부분에서 iptables 룰을 설정할 때 기본적으로 있는 체인인

INPUT, OUTPUT, FORWARD 에서 룰을 설정하라고 말씀하셨습니다.

PREROUTING이나 POSTROUTING에서의 룰은 설정하지 말라고 말씀하셨습니다.

오작동 할 수 있다고 말씀하셨습니다.

그런데 제가 이번에 한 책을 구입했습니다.

책 제목은 "리눅스 서버관리 HACKS 100" 입니다. 한빛미디어, 오레일리 책입니다.

그런데 이 책에서도 방화벽에 대해서 내용이 좀 있는데,

여기서는 PREROUTING이나 POSTROUTING에서 룰을 설정하고 있습니다.

도대체 뭐가 맞는 거죠?




 




 




 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,015 명
  • 현재 강좌수 :  35,688 개
  • 현재 접속자 :  161 명