CentOS에서 기본적으로 제공되는 FTP는 vsftpd로 'very secure ftp daemon' 으로 아주 작명 센스가 참... 거시기 하다.
FTP란 File Transfer Protocol로써 말 그래도 파일을 옮기게 도와주는 프로토콜인데 사용 예시는 보통 리눅스 연습할때 vm으로 많이 연습할텐데 호스트 pc와 virtual pc간에 파일을 옮겨야 할때 요긴하게 쓰일 수 있을거같다. vm에 설치된 컴퓨터들은 RAM이 상대적으로 높지 않다보니 파일 하나 다운로드 하려고 해도 시간이 많이걸린다.
설치
- dnf/yum -y install vsftpd 로 패키지 다운로드 & 설치
- vsftpd를 다운받으면 /var 디렉토리에 ftp라는 디렉토리가 생성된다. ftp 디렉토리 아래는 pub이라는 디렉토리가 있는데 여기에 /boot/vmlinuz-4* 라는 파일을 복사해서 가져올것이다. 참고로 vmlinuz 파일은 리눅스 운영체제를 부팅할때 필요한 커널 이미지 파일이다. 그 이후에 vsftpd 데몬을 다시 시작하고 계속 돌아갈수 있게 enable 명령어로 실행한다.
cd /var/ftp
ls
cd pub
cd /boot/vmlinuz-4* file1
ls
systemctl restart vsftpd
systemctl enable vsftpd
- vtp 서버 이용에 불편함이 없도록 잠시 방화벽은 꺼두자
systemctl stop firewalld
systemctl disable firewalld
- vsfptd 설정 파일은 /etc/vsftpd/vsfptd.conf 파일이다. 12번째 라인에 'anonymous_enable=NO -> YES' 로 수정한다.
- 설정 파일은 변경 후 항상 데몬을 다시 시작한다.
systemctl restart vsftpd
FTP 서버를 이용할때 Anonymous 라는 개념이 나온다. Anonymous 사용자는 ftp 전용 사용자로 모든 리눅스에 내장된 사용자이다. ftp 서버에 접근할때 별도로 암호가 필요하지 않다. 외부에서 접속할때는 anonymous라는 레이블로, 내부에서 접근할때는 ftp라는 이름으로 사용된다.
클라이언트 설정
FTP 클라이언트 어플리케이션은 많이 있다. 알드라이브, CuteFTP, LeapFTP 등이 있지만 '이것이 리눅스다' 에서는 FileZilla를 사용한다. http://filezilla-project.org/ 에 접속해서 다운 받고 기본 설정으로 설치하면 된다.
설치 후에 호스트에는 FTP 서버 IP 주소, 사용자명에는 'anonymous', 비밀번호는 아무거나 넣고 빠른 연결하면 연결 될것이다.
여기서 중요한것은 서버에서 파일을 다운로드 하는것은 되지만 클라이언트에서 서버쪽으로 업로드 하는것은 에러 550을 보이며 허용하지 않는다. 양쪽으로 파일 전송을 허용하려면 다음 설정을 해줘야 한다.
/etc/vsfptd/vsftpd.conf
19행쯤: write_enable=YES
29행쯤: anon_upload_enable=YES 주석 제거 -> anonymous 사용자의 업로드 허용
33행쯤: anon_mkdir_write_enable=YES 주석 제거 -> anonymous 사용자의 디렉토리 생성 허용
마지막으로 /var/ftp/pub/ 디렉토리의 소유권도 anonymous 사용자의 접속 이름인 ftp로 바꿔줘야 한다.
chown ftp.ftp /var/ftp/pub/
혹은
chmod 777 /var/ftp/pub/
vsftpd.conf 파일
- anonymous_enable: anonymous (익명) 사용자의 접속을 허가할지 설정
- local_enable: 로컬 사용자의 접속 허가 여부 설정
- write_enable: 로컬 사용자가 저장, 삭제 디렉토리 생성 등의 명령을 실행하게 할 것인지 설정
- anon_upload_enable: anonymous 사용자의 파일 업로드 허가 여부 설정
- anon_mkdir_write_enable: anonymous 사용자의 디렉토리 생성 허가 여부 설정
- dirlist_enable: 접속한 디렉토리의 파일 리스트를 보여줄지 설정
- download_enable: 다운로드의 허가 여부 설정
- list_port: FTP 서비스 포트 번호 설정 (기본 21번)
- deny_file: 업로드를 금지할 파일 지정 (ex. deny_file={*.mpg,*.mpeg,*.avi})
- hide_file: 보여주지 않을 파일 지정
- max_clients: FTP 서버의 동시 최대 접속자 수 지정
- max_per_ip: PC 1개가 동시에 접속할 수 있는 접속자 수 지정
'리눅스' 카테고리의 다른 글
간단한 리눅스 웹 서버 설치와 운영 (CentOS 8) (0) | 2023.08.07 |
---|---|
CentOS 네임서버 설정 (0) | 2023.08.07 |
리눅스 Cron/At 명령어 사용법 (0) | 2023.03.29 |
CentOS linux 설치 & mount 명령어 정리 (0) | 2023.03.27 |
리눅스 들어가기 전 알아야 하는 명령어 모음 (0) | 2023.03.14 |
댓글