컴퓨터시스템관리) 14주차 실습일지 / 실습과제
오늘은 ftp 서버에 관련한 내용을 배웠다.
-새로 알게된 내용
FTP란? 파일 전송 프로토콜. File Transfer Protocol 을 말한다.
서버와 클라이언트 사이의 파일 전송을 위한 프로토콜임.
명령 연결 시 - 제어 포트인 서버의 21번 포트로 사용자 인증
데이터 전송용 연결 - 능동모드(Active Mode) (서버가 20번 포트에서부터 클라이언트가 지정한 지점으로의 데이터 연결을 생성함)
- 수동모드(Passive Mode) (클라이언트가 서버가 지정한 서버 포트로 연결할 수 있게 설정함)
파일 송수신 모드
1) text mode : 문서 파일 전송시
2) binary mode : 그림 파일 전송시
vsftpd (Very Secure FTP Demon)
- 리눅스, 유닉스 환경에서 보안성&성능이 우수한 FTP 서버
proftpd (Pro FTP Demon)
- 오랜 인기를 끌었던 FTP 서버!
Filezilla
- FTP 소프트웨어, 오픈소스 크로스 플랫폼의 자유 소프트웨어! (맥, 윈도우, 리눅스 ,, 종류 무관 다 사용 가능)
lftp
- 명령형 프로그램 클라이언트
(최근에도 업데이트가 되고 있음)
파일 받기 명령(ftp)
get 파일명
파일 내보내기 명령
put 파일명 (정확한 파일명 입력!!)
-문제 발생 & 해결 과정
실습 과제를 하던 중 문제가 발생했다.
*실습 과제*
FTP 서버를 구축하고 anonymous 계정으로 파일 업로드 및 다운로드 가능하도록 설정하기
나는 proftpd 를 이용해 Server-b에서 설치 후 Server에서 lftp 실행
하기로 결정했다.
-IP 주소-
Server-b : 192.168.203.131
- proftpd 이용 : anonymous 계정으로 파일 업로드 및 다운로드
추가로 vsftpd로도 해보았다.
-> Server에서 설치 후 Client에서 filezilla 실행
- vsftpd 이용 : anonymous 계정으로 파일 업로드 및 다운로드
* 예상한 보안 문제
파일질라에서 파일 전송시 FTP는 패킷을 그대로 전송한다.
익명 접근 디렉터리를 생성 시 FTP 내에 pub 서버의 접근권한을 누구에게나 다 주게되면
중간에 이동하는 정보를 쉽게 변경할 수 있을 것이라고 생각했다.
따라서 나는 소유자/ 그룹 외 다른 사용자에게는 읽기와 실행 권한만을 부여해서 수정하지 못하도록 설정해보았다.
이후에 filezilla로 다운로드가 되는지 실행해보았다.
파일 전송은 잘되는 듯 하였으나 업로드 시 (덮어쓰기가 되지 않는 등의) 문제가 발생한다.
pub의 접근권한은 777로 설정해두어야겠다.
-----------------------------------------------------------------------------------------------------------------------------------
* proftpd를 이용한 실습 중 발생한 문제 & 해결 방법
get file1을 실행하려 하자 Permission Denied 라는 문구가 뜨며 명령을 실행할 수 없었다.
이와 같은 문제가 발생한 이유를
https://devks.tistory.com/47 이 포스팅에서 알 수 있었다.
file1의 접근 권한을 바꿔주어야 get 명령이 가능하다는 것을 깨달았다.
따라서 나는 server-b에서 file1의 접근권한을
chmod 777 file1
명령을 이용해 변경해주었고, 그 뒤에 다시 Server에서 get file1 명령을 실행해보니 잘되었다.
* vsftpd를 이용한 실습 중 발생한 문제 & 해결 방법
1) /srv/pub 디렉터리로 업로드 시 덮어쓰기 오류
덮어쓰기를 하려하면 553 Could not create file / '치명적인 파일 전송 오류' 라는 메세지가 떴다.
이는 pub 디렉터리의 업로드 권한이 없어서 발생한 문제였다.
ㄱ) /etc/vsftpd.conf 파일 확인
다음과 같이 설정해준다.
ㄴ) /srv/ftp의 pub 디렉터리 권한 확인
pub의 접근권한을 777로 설정해준다.
2) Server에서 /home/ubuntu/다운로드 디렉터리에 파일을 만들어도 Filezilla에선 이 파일들이 보이지 않음
ubuntu 계정으로 로그인 시
: 기본 폴더가 home/ubuntu/ 로 설정되는데
파일질라에서 익명으로 로그인 시
: ftp 서버에서 설정한 /srv/ftp/ 에 접근됨
FTP 클라이언트로 접속 시 -> FTP 클라이언트가 설치된 컴퓨터의 디렉터리에 접근 가능
FTP 서버에서 제공하는 디렉터리(/srv/ftp에만 접근 가능)에만 접근 가능하기 때문!
3. 참고할 만한 내용
* ftp에 관한 명령어
http://joobumi.egloos.com/v/11006
* 553 Could not create file 오류 메세지 발생 시 해결방법 참고
https://thinkerodeng.tistory.com/240
4. 회고
오늘은 ftp 서버 구축을 해보았다.
ftp는 파일 전송을 돕는 프로토콜로, vsftpd와 proftpd 두가지의 FTP 서버를 다뤄봤다. 각자의 장점을 비교해볼 수 있었다. vsftpd를 실습하면서 Client 에서 파일질라를 이용하면 파일의 업로드/다운로드 상황을 쉽게 파악할 수 있어 좋았다.
그러나 수업 실습때는 잘 되었는데 이번 실습 과제에서 vsftpd를 이용한 실습을 해볼 때 덮어쓰기 오류 때문에 시간을 많이 잡아먹었다..... 처음부터 초기화시키고 해도 처음에 발생한 문제가 몇시간동안 계속 이어졌다.... 이러면서 업로드 권한 설정에 대한 고민을 정말 많이 해보았다. 한 문제로 시간을 많이 잡아먹은 것이 좀 아쉬웠다. 그러나 계속해서 복습하고 찾아보면서 파일질라의 사용과 업로드 설정에 대한 개념을 숙지할 수 있었다. 실습 중 오류를 고치면서 '이 또한 도움이 많이 되겠지'라는 긍정적인 생각을 가지고 실습에 임했다!! ftp 서버에 대한 내용과 동시에 끈기있는 마음가짐 또한 배웠던 실습이었다. :)