환경
Windows에서 WSL로 구성한 Ubuntu22.04 Server
FTP
- FTP(File Transfer Protocol) : 파일을 전송하기 위한 서비스
- vsftpd는 우분투에서 제공해줌
- vsftpd(Very Secure FTPD)는 우분투에서 기본적으로 제공되며, 리눅스와 유닉스 환경에서 보안과 성능이 우수한 FTP 서버로 인정받고 있음
## server
> apt-get -y install vsftpd
> vi /etc/vsftpd.conf
25 : anonymous_enable=YES 변경 # 일반적으로 anonymous는 다운로드만 되게끔 하는 것이 보안상 일반적임
31 : wirte_enable=YES 주석 풀기
40 : anon_upload_enable=YES 주석 풀기
44 : anon_mkdir_write_enable=YES 주석 풀기
- /srv/ftp/ 가 anonymous가 들어오면 확인하는 홈 폴더임
- anonymous는 일반 사용자이므로 쓰기 권한이 없음 r-x
root@LGE-corp:~# ls -l /srv/
total 4
drwxr-xr-x 2 root ftp 4096 Sep 19 17:25 ftp
일반적으로 /srv/ftp 아래에 pub라는 폴더를 만듦
root@LGE-corp:~# cd /srv/ftp/
root@LGE-corp:/srv/ftp# pwd
/srv/ftp
root@LGE-corp:/srv/ftp# mkdir pub
root@LGE-corp:/srv/ftp# ls
pub
# 아무나 쓸 수 있도록 권한 777로 주기(익명 사용자가 들어왔을 때 사용할 폴더)
root@LGE-corp:/srv/ftp# chmod 777 pub/
root@LGE-corp:/srv/ftp# ls -l
total 4
drwxrwxrwx 2 root root 4096 Sep 19 17:34 pub
# test할 파일 생성
root@LGE-corp:/srv/ftp/pub# echo "test" >> file1.txt
root@LGE-corp:/srv/ftp/pub# ls
file1.txt
root@LGE-corp:/srv/ftp/pub# cat file1.txt
test
# ftp restart후 enable
root@LGE-corp:/srv/ftp/pub# systemctl restart vsftpd
root@LGE-corp:/srv/ftp/pub# systemctl enable vsftpd
Synchronizing state of vsftpd.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable vsftpd
root@LGE-corp:/srv/ftp/pub# systemctl status vsftpd
● vsftpd.service - vsftpd FTP server
Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2024-09-19 17:36:59 KST; 1min 7s ago
Main PID: 29081 (vsftpd)
Tasks: 1 (limit: 9302)
Memory: 848.0K
CGroup: /system.slice/vsftpd.service
└─29081 /usr/sbin/vsftpd /etc/vsftpd.conf
Sep 19 17:36:59 LGE-corp systemd[1]: Starting vsftpd FTP server...
Sep 19 17:36:59 LGE-corp systemd[1]: Started vsftpd FTP server.
ftp 포트 열어주기 21번 열어줘도 되고 ftp라고 해서 열어줘도 됨
root@LGE-corp:/srv/ftp/pub# ufw allow ftp
Rules updated
Rules updated (v6)
호스트에 server IP 넣어주기 : 172.23.186.244
사용자명 : anonymous
비밀번호 : 아무거나 입력
포트 : 21번인데 생략해도 됨
root@LGE-corp:/srv/ftp/pub# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.23.186.244 netmask 255.255.240.0 broadcast 172.23.191.255
inet6 fe80::215:5dff:fe4b:db72 prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:4b:db:72 txqueuelen 1000 (Ethernet)
RX packets 945 bytes 587728 (587.7 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 225 bytes 57621 (57.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
리모트 연결된 거 확인하기
- pub가 anonymous의 FTP 홈 폴더
로컬 사이트 > 디렉터리 만들기 > C:\download
리모트 사이트에 있는 file1.txt를 마우스로 로컬 사이트에 끌면 1초 만에 옮겨짐
로컬 컴퓨터에 C 드라이브에 들어가면 file1.txt 파일이 옮겨짐을 확인할 수 있음
파일 업로드 방법
- download 경로에 아무 파일이나 추가
Filezilla가서 새로고침하기
리모트 서버로 끌어서 업로드하기
리모트 서버에서 파일 업로드 확인하기
root@LGE-corp:/srv/ftp/pub# ls -l
total 12532
-rw------- 1 ftp ftp 12826192 Sep 19 17:57 FileZilla_3.67.1_win64_sponsored2-setup.exe
-rw-r--r-- 1 root root 5 Sep 19 17:36 file1.txt
FTP Client 명령어로 구성한 후 FTP Server 접속
## server-B
# ftp client 설치
> apt-get install lftp
# lftp server IP 접속
> lftp 172.23.186.244
lftp 172.23.186.244:~>
lftp 172.23.186.244:/> cd pub
# 파일 보내기
lftp 172.23.186.244:/pub> put file2
# 파일 가져오기
lftp 172.23.186.244:/pub> get file1
# ftp 서버 나가기
lftp 172.23.186.244:/pub> bye
vsftpd.conf 옵션
- anonymous_enable : anonymous(익명) 사용자의 접속을 허가할지 설정
- local_enable : 로컬 사용자의 접속 허가 여부를 설정
- write_enable : 로컬 사용자가 저장, 삭제, 디렉터리 생성 등의 명령을 실행하게 할 것인지 설정 (anonymous 사용자는 해당 없음)
- anon_upload_enable : anonymous 사용자의 파일 업로드 허가 여부를 설정
- anon_mkdir_write_enable : anonymous 사용자의 디렉터리 생성 허가 여부를 설정
- dirlist_enable : 접속한 디렉터리의 파일 리스트를 보여줄지 설정
- download_enable : 다운로드의 허가 여부를 설정
- listen_port : FTP 서비스의 포트 번호를 설정(기본 : 21번)
참고자료
- 이것이 우분투 리눅스다 13장 : vsFTPD 서버 구축, ProFTPD 서버 구축
'OS > Linux' 카테고리의 다른 글
[Linux] NFS 서버 구축 (0) | 2024.09.20 |
---|---|
[Linux] Ubuntu 22.04 ufw 방화벽 설정 후 ssh port 22: Operation timed out 해결 (0) | 2024.02.27 |
[Linux] curl : (7) Failed to connect to localhost port 8080 해결 (1) | 2024.02.14 |
[Linux] SCP Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 해결 (4) | 2024.02.13 |