proftp 같은 경우는.. passive port 를 지정된 영역에서만 열리게 할수 있는 옵션이 있습니다.
PassivePorts 8000 8005
ipfw 에서 8000-8005번까지만 열어서 쓰면 괜찮을거 같군요..
저도 그렇게 쓰고..있습니다..
ftpd 경우는.. 이런 옵션이 있는지 모르겠습니다.. ^^:..
참고로 저는 FreeBSD 환경을 사용중입니다.
: FTP는 다른 프로토콜들과 달리 2개의 세션이 생성됩니다.
: 또한 Active방식이냐 Passive방식이냐에 따라 방향성(?)이 달라지는 특성이 있습니다.
: - Active방식
: ...먼저 목적지의 21포트로 접속을 하면서 출발지의 LISTEN 포트의 정보를 넘겨줍니다. 그럼
: 목적지에서 자신의 20번포트를 오픈해서 알려준 LISTEN 포트로 접속을 시도합니다.
: +--------+ 1028 Control Channel 21 +--------+
: | FTP |------------------------------->| FTP |
: | Client | | Server |
: | |<-------------------------------| |
: +--------+ 1029 Data Channel 20 +--------+
:
: 상기 그림에서 숫자는 각각의 포트번호를 의미합니다. FTP Client가 랜덤포트(1028)을 오픈해
: 서 서버의 21번포트로 접속을 시도하고, 여기서 클라이언트가 LISTEN하고 있을 포트(1029:일
: 반적으로 다음 빈포트를 알려주기 때문에 오픈한 다음 포트로 LISTEN을 합니다.)로 출발지
: 20번을 오픈해서 넘어옵니다. 따라서 FTP서버로 출발지 20번포트의 연결을 오픈하면 됩니
: 다. - Passive방식 ...상기 그림과 같이 컨트롤채널은 동일하게 연결하나 LISTEN포트의 정보대
: 신 Passive방식으로 접속하겠다는 메시지가 날라갑니다. 따라서 방향성이 다음과 같습니다
: . +--------+ 1030 Control Channel 21 +--------+ | FTP |------------------------------->| FTP |
: | Client | | Server |
: | |------------------------------->| |
: +--------+ 1031 Data Channel 3096 +--------+
:
: 그림과 같이 데이터채널이 출발지 랜덤포트에서 목적지 랜덤포트로 접속을 맺습니다. 이
: 때는 FTP서버로 1024포트 이상은 모두 오픈을 해야겠죠.
: 또한 설치하시려는 방화벽의 위치와 FTP서버의 위치관계도 중요한데, 내부에 FTP서버를 운
: 영하시는 것인지, 아니면 외부의 FTP서버로 접속을 원하시는 건지는 모르겠네요. NAT환경
: 이면 IP Filter만으로 Active방식을 운영하시는데 무리가 있을 수 있습니다. 그렇다면 결국 FT
: P서버를 사용하려면 제대로 된 방화벽 설치가 불가능하다는 결론이네요
: :
: : 다른데서 어떤분은 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, 25:smtp, 80: http, 110: pop, 3306:mysqld)
: : >>다른 열린 서버포트들은 잘 돼는데 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 은 사용못하는게 되나요?
: : >>
: : >>방법이 있으면 가르쳐 주세요.
: : >>---------------------------------------------------