FORWARD chain에 대해 정확한 이해가 필요합니다.
작성자 정보
- 홍석범 작성
- 작성일
컨텐츠 정보
- 2,328 조회
- 1 댓글
- 0 추천
- 목록
본문
안녕하십니까?
리눅스서버보안관리실무(http://superuser.co.kr/linuxsecurityadmin/) 저자 홍석범입니다.
문의해 주신 내용은 지난 답변에서도 드렸던 내용인데, 많이 헛갈리는 부분입니다.
저 역시 이 부분을 이해하는데 며칠은 걸린것 같습니다...
이렇게 생각하시면 됩니다.
INPUT, OUTPUT은 서비스중인 서버 자체에 방화벽을 운영할 때 각각 inbound, outbound 되는 패킷에 대한 제어를 하는 chain이고, FORWARD는 브리지나 NAT 방화벽을 사용하여 운영할 때 방화벽 내부에서 보호하는 서버에 대한 inbound, outbound 되는 패킷에 대한 제어를 하는 chain이라고 생각하시면 됩니다.
즉, 브리지나 NAT에서 FORWARD를 사용할 때는 in, out의 개념이 없이 그냥 FORWARD만으로 사용을 한다는 것입니다.
따라서 아래 룰에서 xxx.xxx.xxx.xxx 부분에 방화벽 내부에 있는 서버의 IP를 적어주어야 방화벽 내부에서 외부로의 네트워크가 가능하게 됩니다.
$IPTABLES -A FORWARD -s xxx.xxx.xxx.xxx -m state --state NEW -j ACCEPT
물론 서버가 1대가 아니라라면 해당 서버의 IP를 모두 써 주어야하겠지요....
위 룰의 의미는 내부에서 외부로 나가는 모든 트래픽을 허용하겠다는 의미입니다. 즉, standalone 방화벽으로 따지면 기본적으로 OUTPUT을 허용(ACCEPT)하는 것과 같은 의미라고 생각하시면 됩니다.
그리고, xxx.xxx.xx.xxx가 외부에 있는 IP라면 해당 서버에서의 모든 접속을 허용하는 룰이 되겠지요... 즉, 소스IP가 어디인가에 따라 내부에서 나가는 룰이 될 수도 있고 외부에서 내부로 들어오는 룰이 될 수도 있는 것입니다....
물론, 아래와 같이 이미 세션이 성립된 접속은 허용하여야겠지요....
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
원하시는 답변이 되셨는지요?
책 보시면서 잘 안되시는 부분이 있으시면 다시 글을 올려주세요...
감사합니다.
관련자료
-
이전
-
다음
허접때기님의 댓글
- 허접때기
- 작성일