FTP(File Transfer Protocol) 원격 사용자가 시스템과 파일을 주고받을 수 있는 클라이언트-서버 간 네트워크 프로토콜 입니다. 포트 21번을 사용하고 현재는 보안상 22번 포트를 많이 사용합니다.
리눅스에서 가장 많이 사용하는 오픈소스(PureFTPd/ProFTPD/vsftpd])가 있습니다.
그중에서 보안적으로 안전하며 안정적인 데이터 이동 속도를 제공하고 있는 VSFTPD 설치를 할려고 합니다.
1. vsftpd [Yum 설치]
[root@localhost ~]# yum install vsftpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.kakao.com
* extras: mirror.kakao.com
* updates: mirror.kakao.com
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
mysql-connectors-community | 2.6 kB 00:00:00
mysql-tools-community | 2.6 kB 00:00:00
mysql56-community | 2.6 kB 00:00:00
updates | 2.9 kB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package vsftpd.x86_64 0:3.0.2-29.el7_9 will be installed
--> Finished Dependency Resolution
2. vsftpd.conf 환경설정 [수정 후 저장]
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
※ anonymous_enable=NO [yes -> no 변경]
익명 유저 로그인을 차단합니다. YES 되어있을 경우 아무나 접속할 수 있으므로 보안에 취약
※ chroot_local_user=YES [#주석 제거]
※ chroot_list_enable=NO [#주석 제거 No 변경]
일반계정의 유저 홈 디렉토리에서 상위 폴더로 이동하는 것을 제한합니다.
※ pasv_enable=YES [추가]
Passive 모드로 접속할 수 있게 설정합니다.
[Passive 모드의 특징]
- PC 클라이언트에서 서버 쪽으로 21번 포트 통신 응답을 시도합니다.
- 서버 측에서 응답을 받을 경우 서버에서 사용할 두 번째 포트(1024~65535 포트)를 알려줍니다.
- PC 클라이언트는 다른 포트를 열어 서버가 알려준 두 번째 포트로 접속을 시도하고 데이터를 전송합니다.
- 하지만 서버에서 모든 두번째 포트(1024~65535 포트)를 개방하고 알려야 하는 문제가 있지만 접속 범위를 설정하여 문제를 해결할 수 있습니다.
※ pasv_min_port=50001 / 접속 포트 설정의 최소 범위 (위 포트 범위 내에서 임의 설정 가능)
※ pasv_max_port=50005 / 접속 포트 설정의 최대 범위 (위 포트 범위 내에서 임의 설정 가능)
※ allow_writeable_chroot=YES
상위 버전부터는 일반계정 유저에 홈디렉토리에 쓰기 권한이 있을 경우 해당 옵션을 꼭 주어야 합니다.
3. vsftpd 활성화 및 서비스 구동확인
[root@localhost ~]# service vsftpd start
Redirecting to /bin/systemctl start vsftpd.service
[root@localhost ~]# ps -ef | grep vsftpd
root 40682 1 0 11:50 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 40687 40287 0 11:51 pts/0 00:00:00 grep --color=auto vsftpd
4. 유저 생성 및 비번 변경
[root@localhost html]# adduser -d /var/www/html/damuk damuk
[root@localhost html]# passwd damuk
5. 파일질러로 접속 테스트
보안 이슈 Log4j RCE 0-day에 대한 보호(CVE-2021-44228) 업데이트 방법 (0) | 2021.12.13 |
---|---|
Mysql(MariaDB) 설치후 초기 설정하기 사용자추가/DB생성/권한부여 (0) | 2021.12.01 |
리눅스(centos) APM(Apache/PHP/MySQL) 설치하기 (0) | 2021.11.30 |
리눅스 OS 버전 확인 명령어 (0) | 2021.11.30 |