[완료]ftp서버가 사설ip를 쓰고 비정규포트(예:90)을 사용 할 경우 linux에서 설정해줘야 하는것.

visualplus의 이미지

안녕하세요.
계속 이 문제가지고 헤메는 초보입니다.

제가 ftp서버를 하나 구축을 했고 그 위에 linux가 있고 ftp서버는 nat를 통해서 나가게 했는데요.
원래 ftp서버포트인 21번으로 설정을 했을 경우에는 동작이 잘 됩니다.

그러나 다른포트 (예를들어 90)로 설정을 하면 접속은 되는데 파일리스트를 못받아오네요.

제가 검색과 생각을 해 본 결과 linux에서 90포트를 ftp포트로 인식을 못하고
커넥션트래킹(혹은 다른 무언가..)이 안되는것 같다는 생각이 드네요.

그래서 linux에서 이런것을 대비해서 ftp포트를 설정 할 수 있는 부분이 있을것 같은데..
찾지를 못하겠네요.

ip_conntrack_ftp
ip_nat_ftp
요 두개에서 설정이 가능하다는 글을 봐서 built-in된것을 module로 바꿔서 설정을 해 봤지만,
여전히 안됩니다.

그리고 제가 구축한 환경입니다.

ftp서버 ----> linux(snat, dnat) ---> 라우터

s4bz의 이미지

20번과 21번 두개다 열려야되지 않나요??

아~~

oneday의 이미지

vsftpd를 쓰신다면

ftp_data_port

라는 옵션이 있습니다.
그럼 데이터포트를 지정해주는 것도 가능할듯 하네요.

man vsftpd.conf 참고..

visualplus의 이미지

일반적인 iptables에서 nat처리를 하게되면
ip_conntrack_ftp
ip_nat_ftp
여기서 ports=90,21 등과같이 옵션을 줘서 바꾸는게 맞는거 같구요.(테스트는 안해봤지만 맞는거 같네요..)

저는 ipvsadm으로 로드밸런싱을 하기때문에 저 모듈이 적용 안된것 같네요.
lvs에서는 ip_vs_ftp 라는 모듈이 있는데.
이 모듈에 위의 옵션과 같이 insmod ip_vs_ftp ports=90,21 과 같이 ftp포트를 인식시켜줘야 합니다.

ftp패킷의 nat은 좀 특별한 nat룰이 필요한것 같기 때문에..
linux에서 90포트도 ftp포트니 ftp nat룰을 적용하라는 것을 명시해주는.. 뭐 그런것 같습니다.

그러나 아직 문제는.. 192.168.100.1:90 은 웹으로 하고 192.168.100.100:90은 ftp로 하고 싶은데..
이건 어떻게 될 지 모르겠네요.
아무래도 90은 모두 ftp라고 인식해서 웹이 동작 안할거 같기도 한데요..

여기에 대해 문서를 좀 더 뒤져봐야 겠습니다.

visualplus의 이미지

ip_vs_ftp 모듈로 90포트를 ftp포트로 인식시켰다고 해도 모듈안에서 ftp패킷인지를 검사하는것 같습니다.
그래서 ftp패킷이 맞다면 룰을 적용시키고 아니면 그냥 다시 흘려보내는것 같네요.

고로 웹도 90 ftp도 90포트를 사용한다면 두개를 궂이 분리하려고 하지 않아도
모듈에서 알아서 처리를 해줍니다.

댓글 달기

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