LINUX/Ubuntu - Server

Ubuntu Server - FTP server

ShinyOcean 2021. 4. 9. 19:15

안녕하세요 :)

 

우분투 리눅스 환경에서의 서버 구축을 주제로한 열세번째 포스팅 내용은FTP 서버의 구축과 운영입니다.

 

 

FTP 란?

 

File Transfer Protocol 의 약자로, 파일을 전송하기 위한 서비스, 통신규약을 말합니다.

 

웹서버의 등장으로 웹환경에서 파일을 편리하게 전송할수 있게 됨으로서 FTP는 인기가 많이 떨어지게 되었습니다.

 

하지만 파일 전송 자체만 논한다면 성능이 뛰어납니다. 그렇기 때문에 대용량 파일을 배포하거나 전송하는경우에 아직 FTP서버의 사용이 빈번하게 이루어 지고 있습니다.

 

이번에는 vsftpd 라는 우분투에서 기본적으로 제공되는 ftp 서버를 이용해보겠습니다.

 

 

 

먼저 그래픽 환경의 우분투 리눅스를 부팅해서 터미널을 열어줍니다!

 

다음은 apt-get 명령으로 vsftpd 패키지를 설치해줍니다.

 

 

FTP 서비스는 파일을 배포하고 통신하는데 적합한 서버라고 앞서 설명하였습니다. 그렇다면 유저가 누구든 불편함 없이 로그인없이 파일을 다운로드 할수 있게 하는것이 좋을 것 같습니다. 그렇다면 그 사용자에 관련된 파일을 이제부터 한번 수정해 보아야 될것 같습니다.

 

vi 에디터를 통해 /etc/vsftpd.comf 파일을 열어줍니다.

 

 

anonymous = 익명사용자입니다, 그에 관련하여 25번라인의 접근 허용, 31번 라인의 데이터 쓰기 허용, 40번라인의 업로드 허용, 44번라인의 디렉터기 만들기를 허용해줍니다.

 

 

하지만 실제 서버라면 유저가 그냥 다운로드 정도만 할수 있도록 접근과 쓰기 허용정도만 해주는것이 좋겠죠!

 

 

그렇다면 이제 익명사용자가 접속시 이용하는 디렉터리명은 다음과 같습니다.

/srv/ftp/

 

이 디렉터리의 접근권한을 확인해보면 다음과 같이 익명접근에 대한 쓰기권한이 없기 때문에 우리는 이것을 풀어주어야 합니다.

직접적으로 권한을 바꿔줄수도 있지만 디렉터리 내부에 하위 디렉터리로 /pub 라는 퍼블릭 디렉터리를 만들어서 사용하는 방식을 채택해 보겠습니다.

 

위와 같이 먼저 디렉토리를 하나 ftp 디렉터리내에 하위디렉터리로 만들어주었습니다.

그다음은 chmod 명령을 통해 권한을 모두 허용해주겠습니다.

그리고 퍼블릭 디렉터리 안에 아무파일이나 하나 복사해서 넣어 둡니다 나중에 확인을 위해서죠!

이로써 ftp 서버 설정을 완료 하였으니 서비스를 가동해보겠습니다. 익숙히 해오신 systemctl 명령을 통해서 말입니다!

 

 

그다음은 방화벽 포트를 개방해주겠습니다. ftp 포트번호는 22번입니다. 근데 서비스 이름인 ftp로 입력하여 열어주어도 무방합니다.

 

그럼이제 클라이언트를 통해 서버를 이용해 볼것인데 물론 윈도우 운영체제에도 ftp 서버 클라이언트가 있습니다 하지만 이번에는 텍스트 모드의 우분투 리눅스 환경에서 이용해 보겠습니다.

 

먼저 ftp 클라이언트 패키지 이름은 lftp 입니다 apt-get 명령으로 설치 해보겠습니다.

 

접속 명령은 lftp 서버ip 입니다 저의경우

lftp 192.168.111.100 으로 접속해보겠습니다.

 

 

접속이 된것을 확인할수 있습니다.

ls 명령으로 확인하니 pub 디렉터리가 있는것을 확인할수 있습니다. 저희가 설정한 777 권한도 확인 가능합니다.

디렉터리 안으로 이동해보니 파일도 잘 있는것을 확인할수 있었고 바로 다운로딩 진행해보겠습니다.

가져올때 명령은 get 파일명입니다. 여기선 file1 을 가져올것이니까 get file1이겠네요 

반대로 올릴때는 put 파일명입니다.

 

종료 명령은 bye 이고 루트 디렉터리에서 확인 한결과 다음과 같습니다.

 

 

이로써 파일 전송및 배포 서버인 ftp서버를 운용해 보았습니다!