다다시질문 - ipfw 과 FTP 포트

sammycom의 이미지

그렇다면 결국 FTP서버를 사용하려면
제대로 된 방화벽 설치가 불가능하다는 결론이네요

다른데서 어떤분은 FTP는 방화벽밖에다 설치하라는데
방화벽 안은 뭐고 밖은 무엇을 얘기하는건지요?
제가 말씀드리는 방화벽은 natd 나 IP masq 이 아닙니다.
단지 특정 허용된 포트만 남기고 다른포트들은 filtering 하는 개념입니다.
그리고 FTP 서버의 목적은 웹서버의 각각자기계정에 홈페이지파일들을 올리기위한 목적이기때문에
따로 다른 호스트에 분리할수도 없습니다.

여러가지 테스트해본결과 FTP 클라이언트가 Passive 모드로 접속시도하게되면
도대체 어느번호로 접속을 시도할지 도무지 무작위로 정해지는것 같습니다.(1024번 이후부터)

혹시 1024 이후의 포트중에서 어느 범위의 포트를 정해놓고 (예 1350 - 1400) 오픈해서
접속하려는 FTP 클라이언트가 passive 모드로 접속을 시도해도
정해진 범위의 오픈된 포트내에서만 접속을 시도.허용하게 해주는 방법은 없는지요

그것도 안된다면 1024 부터 65535 까지 의 포트를 몽땅 다 열어줘야 하고
방화벽(포트필터링)은 1024번 이하에만 적용시키는 방법밖에 없다는 결론인데
무슨 방화벽이 이렇게 무책임하고 의미가 없을수 있는지 이해가 안됩니다.

someon wrote

>참고하세요....
>

>3년전 사무실에 방화벽을 설치하고 ftp오픈에서 헤맸던 기억이 나서 이렇게
>
>글남깁니다..
>
>ftp데몬의 연결 특성으로 인해서인지 1024이후의 포트까지 오픈을 해줘야
>
>정상적으로 동작을 하더군요... 세부적인 사항은 기억력의 한계로^^
>
>저의 경우 외부에서의 ftp포트로 포트스캔이 너무 폭주하여 아예 ftp를 닫고
>
>ssh를 이용한 scp를 사용하여 ftp처럼 사용을 하고 있습니다..
>
>ssh는 22포트를 이용하여 원격접속, ftp(ftp와 비슷한 scp) 모두 지원이 ^^
>
>telnet, ftp는 접근 시도가 많은 포트로 네트웍 패킷 캡처를 해보면
>
>패킷내용이 쉽게 누출되더군요...
>
>이러한 이유로 전 ssh를 권해드리고 싶습니다^^
>
>
>멜론바 wrote
>
>>만족스러운 도움을 받지못해서 다시 질문합니다.
>>
>>지난번 질문은 아래 첨부되있읍니다.
>>FTP 포트를 21 번 디폴트를 860 으로 사용하는건 문제가 아닌것 같습니다.
>>왜냐하면 21번으로도 바꿔서 시도 해봤으나 마찬가지였ㅅ습니다.
>>또 ftp-data 포트인 20번도 열어넣고 시도해봤습니다.
>>문제는 모든포트를 1차적으로 deny 해놓고 꼭 필요한 포트만 allow 했을경우
>>(20 ftp-data, 21 ftp, 25smtp, 80 http, 110 pop, 3306mysqld)
>>다른 열린 서버포트들은 잘 돼는데 FTP 만 안된다는 것입니다.
>>그리고 FTP 클라이언트를 써서 FTP 서버에 접속할때 log 화면을 보면
>>항상 정해진 FTP 포트로 접속돼는게 아니고 다른 포트번호로 접속돼는데
>>그것도 할때마다 번호들이 바뀐다는 것입니다.
>>그래서 추가로
>>ipfw add 00800 allow tcp from any to 66.xxx.xxx.xxx 1300-1400
>>이렇게 100개 정도 열어놓아도
>>처음에는 이 번호안에서 접속돼지만 몇번후에는 다른번호로 접속시도돼다가
>>실패한다는 겁니다.
>>그렇다고 무작정 포트번호를 몇백개, 몇 천개씩 ftp 를 위하여 열어놓는다면
>>방화벽 사용하는 의미가 없어진다는 얘기입니다.
>>여기서 말씀드리는 방화벽은 ip firewall 을 만 입니다.
>>natd 나 ip masqerading 은 사용하지 않습니다.
>>단지 외부에서 꼭 접속가능게 해야할 ftp, smtp, http, mysqld 등만 열어놓고
>>나머지 다른 포트들은 보안강화를 위해 닫아놓는게 사용목적입니다.
>>
>>
>>도와주시면 감사하겠습니다.
>>
>>
>>==== 처음 질문 내용 첨부==========
>>리눅스가 아니고 FreeBSD 입니다
>>도움주실수 있을거라 믿고 여기에 질문합니다.
>>
>>FTP 는 Proftp 를 씁니다 ftp 포트는 860 을 씁니다.
>>그리고 작동방법은 standalone 을 쓰고요 잘됩니다.
>>문제는 ipfw 를 써서 Firewall 을 구축할때 생깁니다
>>
>>% ipfw add 01000 deny tcp from any to 66.xxx.xxx.xxx
>>이렇게 1차적으로 외부에서 내부로 들어오는 모든 tcp 를 막고
>>% ipfw add 00900 allow tcp from any to 66.xxx.xxx.xxx 23,25,80,110,860,3306
>>이렇게 ftp를 포함한 필요한 포트만 접속할수 있게 열어 놓았습니다.
>>
>>위의 열어놓은 포트들 (telnet, smtp, pop3, http, mysqld 등) 은
>>외부에서 잘 통과/접속이 됩니다.
>>그런데 ftp 포트 (860) 만 전혀 안됩니다.
>>그래서 포트를 원래 21 으로 바꾸고 ipfw 도 다시 바꿔서 해봐도 마찬가지입니다.
>>전에 어디서 본것 같은데 ftp 는 포트번호 가 접속할때
>>다른번호로 변환되서 사용된다고 본 기억이 나는것 같은데요
>>
>>그렇다면 FTP 서버르 사용하게될 경우 Firewall 은 사용못하는게 되나요?
>>
>>방법이 있으면 가르쳐 주세요.
>>---------------------------------------------------

ez8의 이미지

자세한건 생각이 안나지만

언듯 듣기로는

net.inet.ip.portrange.* 부분인 관계있다고 들었습니다.

net.inet.ip.portrange.hifirst 과 net.inet.ip.portrange.hilast

의 경우 기본값이 49152~65535 이지요

자세한건 검색해보세요.

ez8의 이미지

아, 그리고 계속 새 글 만들지 마시고 답글로 올리세요. :)

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.