[이것이 리눅스다(CentOS 8)] 13장. FTP 서버 설치와 운영

2023. 4. 5. 16:38·🐧 Linux/이것이 리눅스다(CentOS 8)

📝 FTP 개요

  • FTP(File Transfer Protocol)는 파일을 전송하기 위한 서비스이다.
  • 웹에서 FTP의 고유 기능인 파일 전송을 편리하게 할 수 있게 되어 예전보다 자주 사용하지는 않는다.
  • 파일 전송자체를 위해서는 뛰어난 성능을 보여준다.
  • CentOS에서는 vsftpd를 제공한다.
    • vsftpd(Very Secure FTPD)는 CentOS에서 기본적으로 제공되며, 리눅스와 유닉스 환경에서 보안성고 성능이 우수한 FTP 서버로 인정받고 있다.
    • 추가로, 외부에서 제공하는 pure-ftpd도 많이 사용된다.

📝 FTP 설치 및 운용

  • 서버에 vsftpd를 설치한 뒤, 파일 업로드 및 설정법을 알아보자.

 

📜 패키지 설치

  • 아래 명령어를 통해 vsftpd를 설치한다.
# dnf -y install vsftpd

 

📜 vsftpd 설정

  • 이후 vsftpd의 홈 디렉터리인 /var/ftp로 이동하여 폴더를 확인해본다.

  • 일반적으로는 위와 같이 pub 폴더가 생성되어 있으며, 해당 폴더에 파일을 업로드하여 배포하는 방식을 주로 사용한다.
  • 만약 위 폴더가 없다면 따로 만들어 사용하는 것을 권장한다.
  • 이후 해당 폴더로 이동하여 적당한 파일을 하나 복사해주었다.

  • 다음으로 vsftpd 서비스를 시작시킨다.
# systemctl restart vsftpd
# systemctl enable vsftpd
  • 다음으로 외부 접속을 허용하기 위해 방화벽 기능을 잠시 중단시켰다.
# systemctl stop firewalld
  • 일반적으로 FTP는 파일 배포용으로 사용하기 때문에 따로 사용자 계정 없이 익명으로도 누구나 접근이 가능하도록 하기 위해 파일 수정을 통해 익명 사용자를 허용시켜주겠다.
  • 이를 위해 /etc/vsftpd/vsftpd.conf 파일을 열어 12행의 내용을 아래와 같이 수정해준다.
anonymous_enable=YES
  • 설정이 변경되었으니 이를 적용시키기 위해 서비스를 재시작한다.
# systemctl restart vsftpd

 

📄 vsftpd.conf 옵션

  • anonymous_enable: anonymous(익명) 사용자의 접속을 허가할 것인지를 설정
  • local_enable: 로컬 사용자의 접속 허가 여부를 설정
  • write_enable: 로컬 사용자가 저장, 삭제, 디렉터리 생성 등의 명령을 실행하게 할 것인지를 설정(익명 사용자는 해당 없음)
  • anon_upload_enable: 익명 사용자의 파일 업로드 허가 여부를 설정
  • anon_mkdir_write_enable: 익명 사용자의 디렉터리 생성 허가 여부를 설정
  • dirlist_enable: 접속한 디렉터리의 파일 리스트를 보여줄지 설정
  • download_enable: 다운로드의 허가 여부를 설정
  • listen_port: FTP 서비스의 포트 번호를 설정(기본: 21번)

 

📜 FTP 클라이언트

  • 이후 클라이언트 PC에 FTP 클라이언트 프로그램을 설치한 후 서버와 연결하면 아래와 같이 pub 폴더가 보이며, 폴더를 열어보면 위에서 저장했던 파일이 보이는 것을 확인할 수 있다.

  • 즉, 왼쪽은 클라이언트, 오른쪽은 서버의 저장소이며 단순히 드래그만으로도 서버의 파일을 가져오거나 서버에 파일을 업로드 할 수 있는 것이다.
  • 다만 서버쪽에서 설정을 따로 수정하지 않으면 업로드에는 제한이 걸린다.

  • 그도 그럴것이 클라이언트에서 서버쪽으로 파일을 업로드한다는 것이 보안상으로는 좋게 볼 수는 없을 것이다.
  • 그럼에도 불구하고 이를 허용하겠다고 한다면 vsftpd.conf 파일의 29행과 33행의 주석을 해제해주면 된다.
anon_upload_enable=YES
anon_mkdir_write_enable=YES
  • 추가로 pub 폴더의 소유자를 ftp 사용자로 변경해준다.
# chown ftp.ftp pub
  • 설정을 변경했다면 서비스를 다시 시작해주자.
  • 클라이언트 연결 또한 끊고 다시 연결해야 한다.
저작자표시 (새창열림)

'🐧 Linux > 이것이 리눅스다(CentOS 8)' 카테고리의 다른 글

[이것이 리눅스다(CentOS 8)] 15장. Samba 서버 설치와 운영  (0) 2023.04.06
[이것이 리눅스다(CentOS 8)] 14장. NFS 서버 설치와 운영  (0) 2023.04.05
[이것이 리눅스다(CentOS 8)] 12장. 웹 서버 설치와 운영  (0) 2023.04.05
[이것이 리눅스다(CentOS 8)] 10장. 메일 서버 설치와 운영  (0) 2023.04.03
[이것이 리눅스다(CentOS 8)] 09장. 네임 서버 설치와 운영  (0) 2023.04.03
'🐧 Linux/이것이 리눅스다(CentOS 8)' 카테고리의 다른 글
  • [이것이 리눅스다(CentOS 8)] 15장. Samba 서버 설치와 운영
  • [이것이 리눅스다(CentOS 8)] 14장. NFS 서버 설치와 운영
  • [이것이 리눅스다(CentOS 8)] 12장. 웹 서버 설치와 운영
  • [이것이 리눅스다(CentOS 8)] 10장. 메일 서버 설치와 운영
Baeg-won
Baeg-won
  • Baeg-won
    좋았다면 추억이고 나빴다면 경험이다.
    Baeg-won
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 🍃 Spring, Spring Boot
        • 스프링 프레임워크 기초
        • 스프링 핵심 원리 - 기본편
        • 자바 ORM 표준 JPA 프로그래밍 - 기본편
        • 스프링 MVC
        • 실전! 스프링 부트와 JPA 활용1 - 웹 애플리..
      • 🥑 Web Technoloy
      • 🚗 Backend Toy Project
        • 스프링 부트 게시판
        • Photogram
        • Baeg-won Clothing Gallery
      • 🥇 Problem Solving
        • Breadth-First Search
        • Depth-First Search
        • Backtracking
        • Simulation
        • Two-pointer
        • Binary Search
        • Greedy
        • Dynamic Programming
        • Minimum Spanning Tree
        • Dijkstra
        • Floyd warshall
      • ☕ Java
        • 명품 자바 에센셜
        • Applications
      • 🍦 JavaScript
        • JavaScript 기초
      • 🐧 Linux
        • 이것이 리눅스다(CentOS 8)
      • 📟 Database
        • 혼자 공부하는 SQL
      • 🧬 Data Structure
      • 🎬 HTML
      • 🎤 Tech Interview
      • 📌 etc
        • Unity 2D Raising Jelly Game
        • C++
        • 영어 쉐도잉
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Baeg-won
[이것이 리눅스다(CentOS 8)] 13장. FTP 서버 설치와 운영
상단으로

티스토리툴바