9.4. FTP 서비스 보안
FTP(파일 전송 프로토콜)를 사용하여 네트워크를 통해 파일을 전송할 수 있습니다. 사용자 인증을 포함하여 서버와의 모든 FTP 트랜잭션은 암호화되지 않으므로 안전하게 구성되었는지 확인하십시오.
RHEL 8에서는 두 개의 FTP 서버를 제공합니다.
- Red Hat Content Accelerator (
tux
) - FTP 기능이 있는 커널 공간 웹 서버.
- 매우 안전한 FTP 데몬 (
vsftpd
) - FTP 서비스의 독립 실행형 보안 지향 구현입니다.
다음 보안 지침은 vsftpd
FTP 서비스를 설정하기 위한 것입니다.
9.4.1. FTP 인사말 배너 보안 링크 복사링크가 클립보드에 복사되었습니다!
사용자가 FTP 서비스에 연결하면 FTP는 기본적으로 버전 정보를 포함하는 인사말 배너를 표시합니다. 공격자는 이 정보를 사용하여 시스템의 취약점을 식별할 수 있습니다. 기본 배너를 변경하여 이 정보를 숨길 수 있습니다.
/etc/banners/ftp.msg
파일을 편집하여 한 줄 메시지를 직접 포함하거나 다중 줄 메시지를 포함할 수 있는 별도의 파일을 참조하여 사용자 지정 배너를 정의할 수 있습니다.
프로세스
한 줄 메시지를 정의하려면
/etc/vsftpd/vsftpd.conf
파일에 다음 옵션을 추가합니다.ftpd_banner=Hello, all activity on ftp.example.com is logged.
ftpd_banner=Hello, all activity on ftp.example.com is logged.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 별도의 파일에 메시지를 정의하려면 다음을 수행합니다.
배너 메시지가 포함된
.msg
파일을 만듭니다(예:/etc/banners/ftp.msg
:)######### Hello, all activity on ftp.example.com is logged. #########
######### Hello, all activity on ftp.example.com is logged. #########
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여러 배너의 관리를 단순화하려면 모든 배너를
/etc/banners/
디렉토리에 배치합니다./etc/vsftpd/vsftpd.conf
파일의banner_file
옵션에 배너 파일의 경로를 추가합니다.banner_file=/etc/banners/ftp.msg
banner_file=/etc/banners/ftp.msg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
수정된 배너를 표시합니다.
ftp localhost
$ ftp localhost Trying ::1… Connected to localhost (::1). Hello, all activity on ftp.example.com is logged.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.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
# 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/vsftpd/vsftpd.conf
파일에 다음 행을 추가합니다.anon_upload_enable=YES anonymous_enable=YES
anon_upload_enable=YES anonymous_enable=YES
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
선택 사항: 시스템에 SELinux 활성화 및 적용이 있는 경우 SELinux 부울 속성
allow_ftpd_anon_write
및allow_ftpd_full_access
를 활성화합니다.
익명 사용자가 디렉터리에 읽고 쓸 수 있도록 허용하면 서버가 도난당 소프트웨어의 리포지토리가 될 수 있습니다.
9.4.3. FTP의 사용자 계정 보안 링크 복사링크가 클립보드에 복사되었습니다!
FTP는 인증을 위해 안전하지 않은 네트워크를 통해 암호화되지 않은 사용자 이름과 암호를 전송합니다. 사용자 계정에서 서버에 대한 액세스 권한을 거부하여 FTP의 보안을 개선할 수 있습니다.
구성에 적용 가능한 한 많은 다음 단계를 수행합니다.
프로세스
/etc/vsftpd/
파일에 다음 행을 추가하여 vsftpd 서버의 모든 사용자 계정을 비활성화합니다.vsftpd
.conflocal_enable=NO
local_enable=NO
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
/etc/pam.d/vsftpd
PAM 구성 파일에 사용자 이름을 추가하여 특정 계정 또는root
사용자 및sudo
권한이 있는 사용자 그룹에 대해 FTP 액세스를 비활성화합니다. -
/etc/vsftpd/ftpusers
파일에 사용자 이름을 추가하여 사용자 계정을 비활성화합니다.