FTP (File Transport Protocol)은 네트워크 상에서 파일을 전송하기 위해 설계된 이전 TCP 프로토콜입니다. 사용자 인증을 포함한 서버와 주고받는 통신이 모두 암호화되지 않았기 때문에 이 프로토콜은 비보안 프로토콜로 간주되며 주의하여 설정하셔야 합니다.
Red Hat Enterprise Linux는 3가지 FTP 서버를 제공합니다.
gssftpd — 커베로스를 사용하는 xinetd-기반 FTP 데몬으로서 인증 정보를 네트워크 상에서 전달하지 않습니다.
Red Hat 콘텐츠 가속기(Content Accelerator) (tux) — FTP 기능을 갖춘 커널 영역 웹 서버
vsftpd — 독립형, 보안 FTP 서비스
다음은 vsftpd FTP 서비스를 설정하는데 사용되는 보안 정책입니다.
사용자명과 암호를 입력하기 전에 환경 배너가 나타납니다. 이 배너에는 버전 정보가 포함되어 있으며, 이 정보는 크래커가 시스템 약점을 찾아내는데 유용하게 사용됩니다.
따라서 vsftpd의 환영 배너를 변경하시려면 /etc/vsftpd/vsftpd.conf 파일에 다음 지시자를 추가하시기 바랍니다:
ftpd_banner=<insert_greeting_here> |
위의 지시자에서 <insert_greeting_here> 부분에 새로운 환영 메시지를 입력하십시오.
여러 개의 줄로 이루어진 배너 메시지를 입력하시려면 배너 파일을 사용하시는 것이 좋습니다 여러 배너를 손쉽게 관리하기 위하여 /etc/banners/라는 새 디렉토리를 만드신 후 모든 패너 파일을 이 디렉토리에 저장하십시오. 이 예시에서 FTP 접속에 사용되는 배너 파일은 /etc/banners/ftp.msg 입니다. 다음은 이 파일의 내용 예제입니다:
#################################################### # Hello, all activity on ftp.example.com is logged.# #################################################### |
![]() | 알림 |
|---|---|
5.1.1.1 절에서 나타난 것처럼 파일의 모든 줄이 220으로 시작될 필요는 없습니다. |
vsftpd에 이 환경 배너 파일을 사용하기 위해서는 /etc/vsftpd/vsftpd.conf 파일에 다음과 같은 지시자를 추가하십시오:
banner_file=/etc/banners/ftp.msg |
또한 5.1.1.1 절에서 설명된 것처럼 TCP 래퍼를 사용하여 들어오는 연결에 추가 배너 메시지를 보내는 것도 가능합니다.
/var/ftp/ 디렉토리를 생성하시면 익명 계정이 활성화됩니다.
이 디렉토리를 생성할 수 있는 가장 쉬운 방법은 vsftpd 패키지를 설치하는 것입니다. 이 패키지는 익명 사용자를 위한 디렉토리 구조를 설정하고, 익명 사용자에게 이 디렉토리를 읽기만 할 수 있는 허가를 설정합니다.
익명 사용자는 어느 디렉토리에도 쓰기 작업을 할 수 없도록 기본 설정되어 있습니다.
![]() | 주의 |
|---|---|
FTP 서버에 익명 계정으로 접속을 활성화하실 경우 기밀 데이터가 저장된 디렉토리를 염두하시기 바랍니다. |
익명 사용자가 업로드하는 것을 허용하시려면 /var/ftp/pub/에 쓰기 전용 디렉토리를 생성하시기를 권장합니다.
다음 명령을 입력하십시오:
mkdir /var/ftp/pub/upload |
다음으로 익명 계정 사용자가 디렉토리 내의 내용을 보지 못하도록 허가를 변경하기 위해 다음 명령을 입력하십시오:
chmod 730 /var/ftp/pub/upload |
디렉토리 목록은 다음과 같이 나타나야 합니다:
drwx-wx--- 2 root ftp 4096 Feb 13 20:05 upload |
![]() | 경고 |
|---|---|
관리자가 익명 사용자가 디렉토리에 읽고 쓸 수 있는 권한을 부여한 경우 종종 도단당한 소프트웨어가 서버에 저장되어 있는 것을 발견하게 됩니다. |
vsftpd에서 추가적으로 다음 줄을 /etc/vsftpd/vsftpd.conf 파일에 첨가하십시오:
anon_upload_enable=YES |
FTP는 비보안 네트워크 상에서 인증을 위해 암호화되지 않은 사용자명과 암호를 전달하기 때문에 시스템 사용자가 사용자 계정을 통해 서버에 접속하는 것을 거부하도록 설정하는 것이 좋습니다.
vsftpd에서 사용자 계정을 비활성화하시려면 /etc/vsftpd/vsftpd.conf 파일에 다음 지시자를 추가하십시오:
local_enable=NO |
루트 사용자와 sudo 허가를 가진 사용자와 같은 특정 그룹의 계정이 FTP 서버에 접속하는 것을 막을 수 있는 가장 쉬운 방법은 4.4.2.4 절에서 설명된 것처럼 PAM 목록 파일을 사용하는 것입니다. vsftpd에 사용되는 PAM 설정 파일은 /etc/pam.d/vsftpd 입니다.
각 서비스에서 직접 사용자 계정을 비활성화시키는 것도 가능합니다.
vsftpd에서 특정 사용자 계정을 비활성화시키려면 /etc/vsftpd.ftpusers에 해당 사용자명을 추가하시면 됩니다.
5.1.1 절에서 설명된 것처럼 FTP 데몬으로 접근을 제어하기 위해서 TCP 래퍼를 사용하십시오.