지금 집에 얻어온 사양 낮은 컴퓨터를 FTP 서버로 활용해보려 하는데요. 문제가 좀 있네요. 참고로 루분투 입니다.
일단 chroot를 하면 접속 자체가 안되요. chroot를 어떤 방법으로든 활성화 해보면, 서버에서 파일 탐색기로 들어갈 시 아예 응답이 없거나, 없는 명령…이라던가 그런 오류가 뜨고요,
브라우저에서 들어가 보면 무한 아이디, 비밀번호 입력…
외부에서도 같습니다. 브라우저는 무한 아이디, 비밀번호 입력, 파일 탐색기는 아예 응답이 없음.
그런데 신기한 건, chroot만 해제하면 아주 잘 작동합니다. 그런데 서버에서 접속해보면 chroot 설정을 하지 않았음에도 불구하고 chroot 한 것처럼 나타나고,
외부에서 접속하면 chroot를 하지 않았으니 하지 않은 것처럼 잘 뜹니다… 이 무슨 시추에이션…
일단 vsftpd를 입력해봤더니, 500 OOPS: could not bind listening IPv4 socket 라는 오류가 뜨더라구요. /etc/xinetd.d/vsftpd 파일에서 disable을 수정하면 된다는데, 제 시스템에는 xinetd.d 폴더조차 없다는 사실… 그래서 xinetd를 직접 apt-get으로 설치해 줘도 xinetd.d 폴더 까지만 생성되고 내부에 vsftpd 파일은 생성되지 않습니다. 이 것과 상관이 있나요? 독립모드, passive 모드 입니다.
보통 500 OOPS: could not bind listening IPv4 socket 에러는 vsftpd를 xinetd 슈퍼서버를 통해서 실행하는 경우에서 발생하는 에러인데, 그러한 형태의 실행은 우분투에서는 사용하지 않습니다. 정확히 말하자면, 우분투는 슈퍼서버를 이용하지 않고, 전부 standalone으로 작동시킵니다. 게다가 요즘은 슈퍼서버 통해서 작동하는 서비스 데몬이 거의 없어요. 보통 레드햇 계열-레드햇, 페도라, CentOS-에서 대부분 사용되구요, 따라서 설정을 하실 때 아마도 레드햇 계열 설정을 보고 따라하신 게 아닌가 싶습니다.
먼저,
/etc/vsftpd.conf 를 열어서 listen = YES라고 되어있는지 확인하시구요,
방화벽이 설정되어있거나, 혹은 내부가 아니라 외부에서의 접속이 막혀있다면,
20번과 21번 포트를 열어주세요.
그외 chroot는 vsftpd의 버전이 업그레이드되면서 생긴 문제인데, 이게 보안을 강화하는 측면에서 생긴 변경점이라 어떻게 될지 모르겠습니다. 저도 이것 때문에 한참 애를 먹어서 관련 문서를 많이 뒤져봤는데요, 제가 얻은 결론은 "이해가 안간다"입니다 ㅎㅎ. 말씀하신 것처럼 저 역시도 chroot를 해제하면 작동이 잘 됐구요, 특히 리눅스/유닉스 계열 OS에서 접속하면 chroot를 설정하지 않았음에도 설정한 것처럼 작동했습니다. 하지만, 윈도우에서 접속하면 루트부터해서 싸그리 다 보이는 문제점이 생기는데요, 저는 이게 해결이 안되서 vsftpd를 내렸습니다.