FTP 설정 및 사용법

강한친구·2022년 3월 2일
0

Server Studies

목록 보기
8/27
post-custom-banner

이제 FTP의 사용법을 알아보도록 하겠다.

설치

vsftpd 라는 프로그램을 설치해야한다.
Very Fast Ftp Demon인가 그렇다. 많은 글들을 보면 yum -y install vsftpd를 이용해서 설치하라고들 하는데 어째서인지 yum이 작동하지 않았다. 그럴떈 그냥 apt install vsftpd로 해도 된다.

방화벽 열기

ftp는 기본적으로 20 21번포트를 사용한다. 다음 3가지 명령어로 포트를 추가하고 열고 ftp 서비스를 실행할것이다.

firewall-cmd --permanent --addport{20,21}/tcp
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload

위에서부터 순서대로
1. 포트 추가
2. ftp 서비스 추가
3. 재실행이다

만약 실행되지 않는다면 apt install firewalld를 설치하자

작동 & 확인

systemctl start vsftpd
systemctl enable vsftpd.service
systemctl status vsftpd
  1. vsftpd 시작
  2. 부팅시 항상 실행
  3. 상태 확인이다.

혹은 netstat -nat 명령어로 포트상태를 확인해도 된다.

ftp 서버 설정

nano /etc/vsftpd.conf 를 통해 설정파일을 열어보면 몇가지 옵션들이 있는데
읽어보고 필요한 옵션들을 사용하도록 변경하면 된다.

local_enable
write_enable
이 두개만 일단 해주었다.

계정 연결

기존의 있는 계정을 써도 되지만, 새로 만들어도 된다.

adduser <username>

명령어를 통해 유저를 만들 수 있다. 그 후, /etc/vsftpd.userlist 파일에 접근하여 해당 유저의 이름을 적어넣으면 된다.

테스트를 위해 디렉토리와 파일을 하나씩 만들어두면 편리하다.

포트 포워딩

내부망에서만 사용할거면 포트 포워딩을 할 필요는 없다. 하지만 외부망에 접근할 계획이라면 포트를 열어야한다. 기본으로는 20~21만 포트포워딩을 해주면 되지만 만약 포트를 변경해서 쓴다면 해당 포트를 포워딩해주면 된다. (보안목적상 임의의 포트를 쓰는것이 유리하다)

이제 설정이 끝났으니 접속을 해야하는데

클라이언트 사이드인 cmd로 접속해서 ftp명령어를 입력하고

open ipaddr

을 넣었더니

연결은 잘 되는 모습이다.

하지만 파일을 put get 하거나 dir 명령어를 사용하면
연결은 되었지만 425 failed to establish connection이 발생한다.

해결방법?

이에 대한 해결책이 몇가지 나와있는데

방화벽 열기

클라이언트 사이드에서 고급 방화벽 설정 -> 인바운드 설정 -> ftp -> 연결 허용
으로 ftp 접근을 열어줘야한다고 한다.
혹은 방화벽자체를 무력화시켜도 되지만 보안상의 이유로 권장하지 않는다.

대부분의 사람들은 이렇게 해결한거 같은데 난 안되었다. 그래서 두번째 방법이 passive 였다.

pasv

200 PORT command successful. Consider using PASV.
425 Failed to establish connection.

에러메세지 위에 consider using pasv라고 되어있는데 이는 passive 모드를 사용하라는 의미이다.

이 두 모드의 차이에 대해선 링크 참고해보자.

문제는 이 글에 따르면 윈도우 기본 ftp는 더 이상 pasv를 지원하지 않는다는것이다. 물론 방화벽 자체를 허물고 시도하면 될지도 모르지만 그래서는 실용적인 환경 구축이라 할 수 없다. 따라서 cmd ftp는 포기하고 프로그램을 설치해서 쓰기로 하였다.

quote pasv는 서버쪽을 passive로 바꿔서 클라이언트쪽에는 아무런 효과가 없다고 한다.

winSCP

ssh기반의 ftp 프로그램이다.
설치 후

이런식으로 계정설정을 하고 연결을 해주면

이런식으로 사용할 수 있다.

마치며

FTP는 일단 여기까지만 해보려고 한다.

post-custom-banner

0개의 댓글