6.4. FTP 서비스 보안
FTP(파일 전송 프로토콜)를 사용하여 네트워크를 통해 파일을 전송할 수 있습니다. 사용자 인증을 포함하여 서버와의 모든 FTP 트랜잭션은 암호화되지 않으므로 안전하게 구성되었는지 확인하십시오.
RHEL 9는 두 개의 FTP 서버를 제공합니다.
- Red Hat Content Accelerator (
tux
) - FTP 기능이 있는 커널 공간 웹 서버.
- 매우 안전한 FTP 데몬 (
vsftpd
) - FTP 서비스의 독립 실행형 보안 지향 구현입니다.
다음 보안 지침은 vsftpd
FTP 서비스를 설정하기 위한 것입니다.
6.4.1. FTP 인사 배너 보안
사용자가 FTP 서비스에 연결하면 FTP는 기본적으로 버전 정보를 포함하는 인사말 배너를 표시합니다. 공격자는 이 정보를 사용하여 시스템의 취약점을 식별할 수 있습니다. 기본 배너를 변경하여 이 정보를 숨길 수 있습니다.
단일 줄 메시지를 직접 포함하거나 여러 줄 메시지를 포함할 수 있는 별도의 파일을 참조하도록 /etc/banners/ftp.msg
파일을 편집하여 사용자 지정 배너를 정의할 수 있습니다.
절차
한 줄 메시지를 정의하려면 다음 옵션을
/etc/COMPLETE/COMPLETE.conf
파일에 추가하십시오.ftpd_banner=Hello, all activity on ftp.example.com is logged.
별도의 파일에 메시지를 정의하려면 다음을 수행합니다.
배너 메시지가 포함된
.msg
파일을 만듭니다(예:/etc/banners/ftp.msg
):######### Hello, all activity on ftp.example.com is logged. #########
여러 배너의 관리를 단순화하려면 모든 배너를
/etc/banners/
디렉토리에 배치합니다./etc/COMPLETE/COMPLETE.conf 파일의
banner_file
옵션에 배너 파일 경로를 추가합니다.banner_file=/etc/banners/ftp.msg
검증
수정된 배너를 표시합니다.
$ ftp localhost Trying ::1… Connected to localhost (::1). Hello, all activity on ftp.example.com is logged.
6.4.2. FTP에서 익명 액세스 및 업로드 방지
기본적으로 vsftpd
패키지를 설치하면 디렉터리에 대한 읽기 전용 권한이 있는 익명 사용자의 경우 /var/ftp/
디렉터리와 디렉터리 트리가 생성됩니다. 익명 사용자는 데이터에 액세스할 수 있으므로 중요한 데이터를 이러한 디렉터리에 저장하지 마십시오.
시스템의 보안을 강화하기 위해 익명 사용자가 특정 디렉터리에 파일을 업로드하고 익명의 사용자가 데이터를 읽지 못하도록 FTP 서버를 구성할 수 있습니다. 다음 절차에서는 익명 사용자가 root
사용자가 소유한 디렉터리에 파일을 업로드할 수 있지만 변경할 수는 없어야 합니다.
절차
/var/ftp/pub/
디렉토리에 쓰기 전용 디렉토리를 만듭니다.# mkdir /var/ftp/pub/upload # chmod 730 /var/ftp/pub/upload # ls -ld /var/ftp/pub/upload drwx-wx---. 2 root ftp 4096 Nov 14 22:57 /var/ftp/pub/upload
다음 행을
/etc/COMPLETE/vsftpd.conf
파일에 추가합니다.anon_upload_enable=YES anonymous_enable=YES
-
선택 사항: 시스템에 SELinux를 활성화 및 적용하는 경우 SELinux 부울 속성
allow_ftpd_anon_write
및allow_ftpd_full_access
를 활성화합니다.
익명의 사용자가 디렉토리를 읽고 쓸 수 있도록 허용하면 서버가 손상되는 소프트웨어를 위한 저장소가 될 수 있습니다.
6.4.3. FTP용 사용자 계정 보안
FTP는 인증을 위해 안전하지 않은 네트워크를 통해 사용자 이름과 암호를 전송합니다. 사용자 계정에서 서버에 대한 시스템 사용자 액세스를 거부하여 FTP의 보안을 개선할 수 있습니다.
구성에 적용할 수 있는 만큼 다음 단계를 수행합니다.
절차
/etc/COMPLETE/COMPLETE.conf 파일에 다음 행을 추가하여
vsftpd
서버의 모든 사용자 계정을 비활성화합니다.local_enable=NO
-
사용자 이름을
/etc/pam.d/
COMPLETE PAM 구성 파일에 추가하여 특정 계정 또는 특정 계정 그룹(예:root
사용자 및sudo
권한이 있는 사용자)에 대한 FTP 액세스를 비활성화합니다. -
/etc/COMPLETE/ftpusers
파일에 사용자 계정을 추가하여 사용자 계정을 비활성화합니다.
6.4.4. 추가 리소스
-
시스템의
ftpd_selinux(8)
도움말 페이지