[2024.06.18]
[FTP]
> 포트: 20(데이터 포트), 21(제어 포트)
1) FTP: 인증(ID/PW)
2) Anonymous FTP(ID:Anonymous/PW: e-mail Address)
3) TFTP(69): 무인증(인증 기능이 없음)
01. 프로그램 설치
#yum -y install vstfpd*
02. 환경 설정 파일
> /etc/vsftpd/vsftpd.conf <-- 주 환경 설정 파일
> /etc/vsftpd/ftpusers <-- PAM 모듈로 제한
> /etc/vsftpd/user_list <-- FTP 서버 접근 제한
#vi /etc/vsftpd
#vi vsftpd.conf
123번 라인의 NO를 YES로 변경
설정 후 systemctl restart vsftpd를 실행해 준 후 ftp 접속 시도 시 성공한다
==========================================================================
[FTP 명령어]
> 파일 업로드
#put [파일명]
#mput [파일명1] [파일명2] <-- 여러 가지의 파일을 다운로드할 때 사용
> 파일 다운로드
#get [파일명]
#mget [파일명1] [파일명2]
알드라이브 설치는 202 서버인 Windows 10에서 하면 된다
*구글에 알툴즈 검색 후 홈페이지 들어가서 다운로드에서 알드라이브 다운로드 가능
알드라이브 창에서 접속하기를 누르게 되면 이런 화면이 뜨게 되는데
호스트 주소에 접속할 IP 주소를 입력해 놓은 다음,
test로 로그인 시도하여 비밀번호 입력까지 하고 연결을 눌러 준다
접속하게 되면 해당 화면처럼 연결이 된다
그 후 업로드 화면에서 ALDrive2.12.1.7.exe를 업로드해 준 후
50번 서버로 가서 ll을 누르게 되면 업로드한 알드라이브 파일이 생성된 걸 확인할 수 있다
100번 서버에서 ftp 접속을 시도하여 get 명령어 사용 후 파일을 다운로드할 수도 있다
다시 ll을 눌러 확인하게 되면 anaconda-ks.cfg 파일이 생성된다
다시 윈도우 10으로 돌아가서 알드라이브로 root로 로그인을 시도해 보면 연결이 되지 않는다
root의 접속을 차단해 놨기 때문인데 화면에 보이는 두 개의 파일들에 들어가서
root에 주석(#)을 넣어 주게 되면 정상적으로 접속이 가능해진다
==========================================================================
03. 업/다운로드 속도 제한
> local_max_reat=300000
#vi vsftpd.conf
vsftpd.conf 파일에 들어가서 속도 제한을 300000으로 걸어 주고 저장
다시 알드라이브로 가서 아무 파일이나 전송하게 되면 확실히 기존의 전송 속도보다 느린 걸 확인할 수 있다
단번에 되던 파일 전송이 현재 화면처럼 느리게 진행되고 있는 모습이다
이번에는 30k의 속도로 테스트를 진행해 보려고 한다
300000의 속도보다 확연히 느린 걸 또 확인할 수 있다
이렇게 느리게 되면 전송 상태가 다 채워져 있어도 완료되기까지의 시간이 더 소요될 수 있다
04. 동시 접속자 수 제한/클라이언트 수 제한
> max_clients=100
> max_per_ip=1
*파일에서 수정 후 반드시 systemctl restart를 실행해 줘야 연결이 가능하며,
파일에 오타 하나만 있어도 systemctl restart가 실행되지 않는 점 참고
05. 디렉터리 이동 제한
chroot_local_user=YES만 #을 삭제(주석 해제)할 경우
보이는 바와 같이 접속이 되지 않는다
이럴 때 접속이 가능하게끔 할 수 있는 명령어를 삽입할 수 있는데,
그 명령어가 아래에 보이는 allow_writeable_chroot=YES이다
하지만 이 경우 접속은 가능하지만 본인의 디렉터리가 아니면 보이지도 않고 이동이 되지도 않게 된다
위의 경우를 해결하기 위해 105번 줄의 #을 삭제(주석 해제)한다
105번 줄의 의미는 etc의 vsftpd에 있는 chroot_list에 등록되어 있는 사용자만 허용한다는 뜻이다
chroot_list에 test를 넣게 되면
test를 제외한 모든 사용자가 차단된다
예시로 test2에 접속해도 파일들이 보이지도 않고 이동이 되지도 않게 되는 걸 볼 수 있다
제대로 작동되는 건지 조금 더 테스트를 해 보기 위해
이번에는 test1과 test2를 넣고 저장해 봤다
*파일에 내용 삽입 후 빠져 나와서 무조건 systemctl restart vsftpd를 해 줘야 접속 및 실행이 가능하다
다시 테스트를 진행했지만 정상 작동이 되는 중인 걸 확인할 수 있다
test1, test2를 넣었기 때문에 test에서는 당연히 보기와 이동이 제한된다
test1과 test2에서는 보기와 이동이 되는 상태의 화면
이제 반대의 경우도 테스트를 진행해 보려고 하는데
이 경우에는 chroot_local_user=NO에서 YES로 되어 있던 부분을 NO로 변경해 주면 된다
이번에도 test1, test2로 진행
저장 후 systemctl restart vsftpd를 실행시켜 준다
이번에는 test1, test2가 차단되었으며
test와 test3의 경우 접속이 가능하고 파일 내에서 자유자재로 이동이 가능하다
06. 특정 파일(확장자) 업로드 제한
> deny_file={*.mp3,*.exe}
주석(#) 없이 deny_file={*.mp3,*.exe}를 입력해 주게 되면
파일을 차단시켜 놨기 때문에 exe 파일은 물론이고 mp3 파일도 전송 오류가 뜨게 된다
07. 파일 목록 출력 제한
> hide_file={*.mp3,*.exe}
이번에도 위와 동일하게 명령어를 입력해 준 다음
확인했을 때 mp3와 exe 파일을 숨김 처리 했기 때문에 접속하게 되면 화면에 뜨던 게 안 뜨는 걸 볼 수 있다
이번 블로그를 시작할 때 FTP 중에서 Anonymous FTP도 설명했는데,
이번에는 Anonymous로 접속을 시도해 보려고 한다
알드라이브의 경우에는 아이디 및 비밀번호 입력 칸 옆에 있는 익명 로그인을 누르게 되면 그게 Anonymous 접속이 된다
CentOS7에서 접속을 시도하면 보통은 사용자의 이름을 적는 칸에 anonymous라고 적으면 된다
비밀번호의 경우는 원래라면 이메일을 적도록 했지만, 현재는 아무거나 쳐도 접속이 가능해졌다
평소에는 쓸 일이 없으며 이 경우에는 차단을 시켜 놓으면 되는데
vsftpd.conf로 들어가서 14번 줄에서 YES를 NO로 바꿔 주기만 하면 된다
anonymous 접속을 차단 후 다시 접속 시도 시 로그인이 되지 않게 된다
알드라이브 역시 접속 불가한 화면을 띄우고 있다
강의 소감
오늘 실습을 진행하던 도중에 systemctl restart vsftpd가 실행이 되지 않고 에러가 발생했는데,
이때는 방금 들어가서 수정한 파일에서 오타가 있거나 불필요한 뭔가를 추가로 입력했을 때 나오는 에러라고 배웠다
내가 뭘 잘못 입력했는지 보이지가 않아서 결국 snapshot을 되돌렸지만 다음부터는 오타에도 유의해야겠다고 생각했다