[질문] 공유기의 default 패킷 필터 설정은 어떻게 될까요?

ratmhun의 이미지

애니게이트 공유기 메뉴얼을 보니 '외부에서 내부로 들어오는 흐름의 경우 기본적으로 모두 차단이며 DMZ, 포워딩 등이 적용된 경우 방화벽이 해제된다'는 얘기가 적혀 있어서 ipTIME에 ipTIME 공유기의 default 패킷 필터 설정은 어떻게 되어있는지 물어봤습니다.

그러니까 패킷 필터링이나 포트 포워딩 설정이 전혀 없는 상태에 대해서 포트 제한이 있는지 물어본 것입니다.

ipTIME 기술팀에서는 공유기의 기본적인 인터넷 포트인 80번과 21번 포트를 제외한 모든 포트는 닫혀있는 상태라고 말씀해주셨습니다.

하지만 TCP/IP 네트워크의 원리에 대해 공부하고나니 답변에 오류가 있다는 생각을 하게 되었습니다.

제가 외부로 접속을 시도할 때 다음과 같은 소켓 연결이 이루어집니다.

192.168.0.2 : 4207(임의포트) - 공유기 - 210.외부웹서버 : 80

그리고 해당 웹 서버와 자료를 주고받는 동안 제 임의포트 4207은 잠시나마 열려있는 상태가 되구요.

따라서 둘 사이에 있는 공유기는 내부에서 외부로 나가는 포트 80번과 외부에서 내부로 들어오는 포트 4207을 열어 놓은 상태가 됩니다.

이것은 80번과 21번 포트를 제외한 모든 포트를 닫아두었다는 기술팀 답변과 어긋납니다.

기술팀의 답변 의도를 제 나름대로 추측해본 결과는 다음과 같습니다.

'내부에서 외부로, 혹은 외부에서 내부로 나가는 흐름 둘 중 하나에 대해 80번과 21번 포트를 제외한 모든 포트를 닫아놨다'

전자라면 내부에서 외부로 나가는 다른 포트들을 모두 닫아놓고 80번과 21번을 비롯한 well known 포트만 열어놨다는 얘긴데... 이건 말이되지 않습니다. 만일 그렇다면 애시당초 공유기를 거쳐서 인터넷 게임이라든지 기타 다른 포트를 사용하는 응용 프로그램을 쓸 수 없어야 하기 때문입니다. 공유기 필터링이라든지 포트 포워딩 설정을 손하나 대지 않았음에도 저는 위와 같은 프로그램들을 잘 쓰고 있습니다. 내부에서 외부로 나가는 다양한 포트들을 별다른 어려움 없이 잘 사용하고 있습니다.

후자라면 외부에서 내부로 들어오는 포트를 모두 닫아 놓고 80번과 21번을 비롯한 well known 포트만 열어놨다는 사실을 의미합니다.(만일 그렇다면 제가 내부 네트워크에서 웹 서버를 운영하면 공유기에서 포트를 별도로 열지 않더라도 80번 포트로 외부에서 내부로 바로 접속이 가능하겠군요. 실험은 해보지 않았지만.. 물론 통신사들이 위 포트들을 막아놔서 실험은 실패할 것이라 예상됩니다.) 하지만 이것도 지금 생각해보니 문제가 있네요. 위와 같이 인터넷 게임이나 응용 프로그램을 사용하려면 외부에서 내부로 들어오는 다양한 포트도 열려있어야 하기 때문 아닌가요?

그렇다면 답변이 틀린 것 아닐까요?

실제는 내부에서 외부로든, 외부에서 내부로든... 포트를 막아 놓은 것은 없는 것 아닐까요?(실제로 다양한 포트를 사용하는 프로그램들을 아무 제한 없이 잘 쓰고 있거든요. 스타크래프트하는데... 공유기에서 방화벽 설정 하지 않아도 배틀넷 들어가서 게임 잘 하고 있다면 막아놓은 포트 따위는 없는게 아닐까요?)

bushi의 이미지

iptables -m state --help

익명 사용자의 이미지

아... 상용 제품인 공유기라서 커맨드라인프롬프트를 사용할 수 없습니다.

bushi의 이미지

linux PC 에서 하세요.

"새로운(NEW) 연결을 만드는 것" 과 "만들어진(ESTABLISHED) 연결로 데이타를 송수신 하는 것" 을 통털어 "흐름" 이라고 계속 표현하신다면,
영원히 답을 찾지 못하실 겁니다.

iptime 공유기에서 쉘을 사용할 수 있느냐,
그 쉘에서 iptables 명령을 사용할 수 있느냐가 궁금하시다면,
왼쪽 "[찾기]" 버튼을 활용하시고요.

익명 사용자의 이미지

OP입니다. 브라우저 설정이 잘못되어서인지 몰라도 로그인이 안되어 자꾸 익명으로 답글을 올립니다.

먼저 호스트가 아닌 공유기의 필터링 상태를 확인하고 싶은건데 어째서 리눅스 PC에서 이를 확인하라고 하시는 것인지 궁금합니다.

아마 ipTIME 제품 공유기가 iptables 기반인가보군요. 그렇다면 인바운드 패킷에 대한 NEW,RELATED,ESTABLISHED 연결에 대해서 80, 21 포트 등 well known 포트를 제외한 다른 포트들은 막아놨다는 것으로 이해해도 되겠습니까? 제가 궁금했던 점은 ipTIME 기술팀에서 답변한대로 단순히 '80번과 21번 포트를 제외한 다른 포트들은 막아놨다'는 말의 사실유무였습니다.

ipTIME 제품에서 쉘을 사용할 수 있는가 하는 링크는 다음을 말씀하시는 겁니까?
http://kldp.org/node/83510

bushi의 이미지

iptables 가 중요한 것은 아닙니다.

그게 뭐든 간에 '방화벽' 이라고 불릴 수 있으려면,
new 와 established 를 구분할 수 있어야 합니다.

역으로, '방화벽' 에 대해 토론하려면
new 와 established 에 대해 알고 있어야 합니다.

new 와 established 를 전혀 모르시길래,
iptables 의 -m state 옵션에 대한 도움말로 예를 보여드리려 했습니다.

'포트를 막는다' 라는 표현을 어떻게 해석하셨는지는 몰라도,
default 설정은 '모두 포트의 모든 state에 막는다(reject)' 일 것이고,
'80 등 특정포트에 대해 new 를 허용한다',
'established 에 대해 송수신을 허용한다'
일겁니다. 그러니 '막는다' 의 정의를 뭘로 이해하셨건 간에 사전적인 의미로도 '막는다' 가 맞습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.