티스토리 뷰
지난 시간에 이어서 컴퓨터 네트워크 기초 실습 수업을 진행합니다.
컴퓨터 네트워크 기초#1 ~ #3 까지의 실습내용을 기초로 다음 시간 수행평가가 진행됩니다.
FTP(file trasfer protocol) 는 파일을 전송하는데 특화된 프로토콜입니다.
사용자(user) 접근가능한 디렉토리나 권한을 구분하여 관리할 수도 있고 사용자의 업로드 또한 가능합니다.
다만 요즘에는 HTTP 서비스를 통해서도 대부분의 파일 다운로드, 업로드가 가능해져서
파일 전송을 전문적으로 하는 서비스 외에는 간편하게 http 방식으로 파일을 주고받는 경우가 많지만
FTP 서비스는 HTTP 방식의 파일 다운로드에 비해
동시 다수 전송, 예약 전송, 대용량 파일 전송 효율화, 끊어진 파일 이어 받기 가능 등의 장점이 있습니다.
이번 시간에는 윈도우 환경에서 FTP 서버를 구축하고
FTP 서버에 접속해서 파일을 업로드, 다운로드 하며 사용하는 과정에 대해 실습해보겠습니다.
1. 파일질라 홈페이지에서 파일질라 서버 설치 파일 다운로드 받기(VM)
https://filezilla-project.org/download.php?type=server
다운받은 설치파일을 실행(filezilla server 버전이어야 함)
사용자 계정 컨트롤, 사용 약관 동의 등은 "예" 로 진행
인스톨 유형은 full 버전이면 상관없다.
이후 기본 경로로 설정, 시작메뉴에 등록으로 설치 진행함
이후 서비스 구동에 관한 설정을 지정해줘야 한다.
기본값은 컴퓨터가 시작될 때 마다 파일질라 FTP 서버가 자동으로 시작되고
윈도우의 계정을 그대로 사용하게끔 되어 있다.
우리의 VM 환경에선 디폴트 설정이 전혀 문제가 없다. 그대로 진행하자.
FTP 는 보통 제어용으로 21번 포트를, 데이터 전송용으로 20번 포트를 사용하는데
파일질라는 관리자 인터페이스용으로 14148 포트를 추가로 사용한다.
관리자용 비밀번호(5678)도 추가로 입력하고 next 로 넘어가자.
이번엔 관리자 인터페이스 시작 방식을 조정해야 한다.
기본값으로 세팅되어 있는 윈도우 유저 로그인시 자동 실행으 선택하면
매번 파일질라 FTP 서버 관리자 메뉴가 실행된다.
이 기능은 사용빈도가 많지 않기 때문에 번거로울 수 있다.
manually 를 선택해서 필요할 때만 수동실행해도 충분하다.
fingerprint 값을 확인하면 인스톨이 마무리된다.
Q) 소프트웨어 설치시 확인하게 되는 fingerprint 는 무슨 의미일까? 스스로 생각해보자.
설치를 마쳤고 중간 과정에서 "Start server after setup completes" 를 체크했기 때문에
관리자 인터페이스가 바로 실행된다.
connect to server 로 메뉴에 들어가자.
127.0.0.1 는 자기자신을 가르키는 특별한 ip 주소이다. (도메인명 localhost 와 동일)
우리는 파일질라 서버를 설치한 vm 에서 자기자신 ip 에 접속을 해야하니 127.0.0.1 을 입력해주는게 맞다.
관리자 포트도 설치시 설정한 14148 이 맞다.
패스워드 5678 을 입력하고 접속을 진행하자.
접속하려는 서버의 fingerprint 이 미등록된 상태이다.
신뢰할 수 있는 서버로 관리하겠느냐고 묻고 있다.
예를 클릭하면 관리자 화면으로 정상 접속된 것을 확인할 수 있다.
서버 configure 에 진입하면
ftp 서버에 관한 다양한 설정을 다룰 수 있다.
일단 ftp 서버 프로그램이 정상 작동되는 듯 하니
외부에서 ftp 서버로 접속할 준비를 하자.
우리의 서버는 VM 에 설치되어 있다.
그러므로 본체 PC 에서는 파일질라 클라이언트 프로그램을 이용해서 해당 ip 로 접속해야 한다.
구성을 조금 변경해서 본체 PC 에 FTP 서버 프로그램을 설치하면
VM 에서 클라이언트 프로그램으로 본체 PC 로 FTP 접속하고,
학교 실습실 내에서 다른 친구들이 내 본체 PC 로 FTP 접속도 가능하다.
그러나 지금처럼 서버를 VM 에 설치하면 NAT 때문에
VM으로 접속가능한 외부환경은 내 본체 PC 로만 제한된다.
(VM 설정을 통해 VM IP 에 NAT 기법이 아닌 실제 IP 를 부여해주는 bridge 방식을 적용할 수도 있으나
본 수업은 NAT 를 통한 VM 네트워크 구성으로 통일된 환경으로 진행한다.)
FTP 서버 프로그램을 VM 에 설치하는 이유는
OS 내 다른 프로그램이 없기 때문에 프로그램 충돌이나 잘못된 메뉴 진입 등
수업진행에 방해요인이 없어 수업에 집중하기 용이하기 때문이다.
그 외에도 학생들에게 통일된 VM 이미지 제공, d:\ 저장시 구성 유지 등이 유리하기 때문임.
설명이 길었는데 본체 PC 로 넘어와서 FTP 클라이언트 프로그램을 설치해야 한다.
클라이언트 프로그램은 FTP 프로토콜만 지원해주면 어떤 제품이든 상관없다.
우리는 편의상 filezilla client 를 이용한다.
https://filezilla-project.org/download.php?platform=win64
다운로드 폴더에서 파일질라 클라이언트 프로그램 설치 파일을 실행시키고 설치를 진행한다.
광고용 번들 기능은 설치하지 말자.
그 외는 기본 설정으로 진행해도 무방함.
설치를 마치면 자동으로 클라이언트 프로그램이 실행된다.
클라이언트 시작화면
호스트 항목에 접속할 주소를 입력해주자.
접속할 주소는 내 VM 의 ip 이다.
vm 에서 cmd - ipconfig 로 ip 확인부터 하자.
확인된 vm ip 를 본체PC 의 클라이언트 프로그램에서 호스트 항목에 입력한다.
그 외 정보도 입력해주자. (USER, 1234, 21번 포트)
[ 주의 ] 실제 VM 에서 윈도우 계정 USER 의 PW 는 1234 이고, FTP 서버는 이 윈도우 계정 정보를 활용한다. 서버 설치 시 입력한 PW 5678 은 관리자 모드로 접속할 때만 별도로 필요한 계정 정보이다. 만약 VM 에서 지난 수업 작업(원격데스크탑 접속을 위한 사용자 비밀번호 생성)이 반영되어 있지 않은 상태라면 VM 에서 사용자 비밀번호 1234 를 다시 반영해줘야 한다. |
해당 정보를 입력하고 빠른연결 버튼을 눌러서 접속을 시도했는데 접속이 잘 안된다.
사용자 인증 정보가 맞지 않다는 메세지가 아니라 20초 동안 연결이 안되었다고 하는데
클라이언트(사용자) 에서 서버까지 접속이 아예 안되는 것 같다.
서버(VM) 쪽 방화벽을 점검해보자
고급 방화벽 설정세서 로컬포트를 기준으로 찾아봐도
21번 포트에 대한 허용 룰은 보이지 않는다.
프로그램 또는 서비스 명으로 구분된 인바운드 규칙명으로 찾아봐도
FTP 에 관련된 룰은 존재하지 않는다.
따라서 FTP 에 필요한 룰을 직접 생성하고 적용해봐야 한다.
인바운드 규칙 - 새규칙으로 진입
만들고자 하는 규칙 종류로 "포트" 를 지정
FTP 에서 사용하는 포트는 TCP 20, 21 번이다.
해당 정보를 입력
해당 포트의 접속을 발견하면 우리는 연결을 허용해 준다.
도메인 프로필, 개인 프로필, 공용 프로필 모두 적용해주자.
"FTP 방화벽 오픈 룰" 식으로 직접 방화벽 룰 이름을 정해주자.
마침을 누르고 룰 생성을 완료하면
방금 만든 TCP 20, 21 포트를 오픈하는
"FTP 방화벽 오픈 룰" 이 잘 구성되었고 동작도 하고 있는 것이 확인된다.
이제 본체 PC 에서 클라이언트 프로그램을 이용해서 다시 접속을 시도해보자.
이제는 접속이 가능하고 해당 서버를 신뢰하겠냐는 확인창이 나온다.
이후에도 항상 신뢰 항목에 체크하고 확인 버튼을 누르자.
이번엔 바로 접속이 이루어졌는데 로그인정보가 틀렸다며 연결이 되지 않는다.
무엇이 문제일까?
돌이켜보면 FTP 서버에서 사용할 사용자 계정과 기준 디렉토리를 정한적이 없다.
처음 설치할때 윈도우 계정을 사용하겠다는 것은 일종의 후보풀이고
실제 FTP 에서 사용할 계정을 지정해줘야 한다.
VM 에서 FTP 서버 관리자에 들어가서 Users 메뉴에 진입해보자.
윈도우 <system user> 가 사용가능한 계정 목록으로 반영은 되어 있다.
User is Enabled 항목에 체크를 적용하고 apply 로 반영해주자.
이번에는 한단계 더 접속이 이루어졌으나 디렉토리 목록을 조회하는데 실패했다는 메세지를 확인할 수 있는데
이 단계를 해결해야 FTP 를 정상적으로 이용할 수 있다.
이는 FTP 접속 및 제어에는 TCP 21, TCP 20 포트를 사용하지만
실제 데이터 전송은 임의의 포트를 사용하기 때문이다.
위 현상을 해결하기 위해서는 아래 두가지를 진행해야 한다.
1. FTP Server 에서 데이터 전송용 포트 범위를 지정
2. 윈도우 방화벽 추가 오픈
먼저 FTP 설정의 패시브 모드에서 사용자 포트 범위를 설정해주자.
50000 - 51000 포트 사이면 적당하겠다.
그리고 이전 과정과 마찬가지로 TCP 50000 - 51000 포트 허용에 대한 추가 룰 설정 및 적용을 해준다.
이제 FTP Client 에서 접속을 시도하면 서버의 디렉토리가 정상적으로 조회가 된다.
시험삼아서 서버의 Desktop 디렉토리에 hello.txt 라는 파일을 하나 올려보자.
VM 의 바탕화면을 살펴보면 해당 파일이 전송되었음을 알 수 있다.
FTP 서비스로 USER 사용자의 바탕화면 등이 모두 연동되는 건 바람직하지 않다.
FTP 서비스만을 위한 전용 계정을 생성하고 전용 폴더를 설정해보자.
Administrator FileZillaServer 에서
시스템 사용자가 아닌 신규 사용자 FTP_user 를 생성해준다.
해당 계정의 패스워드를 Require a password to log in 으로 설정하고
FTP 용 패스워드를 설정한다.
수업용 샘플은 12345678 을 설정한다.
FTP 에 접속하면 보이는 최상위 경로 / 를 c:\ftp_data 로 지정한다.
apply 로 설정을 적용하고 ok 버튼을 눌러주자.
이제 사용자가 FTP_user 로 접속하면
실제 VM 의 c:\ftp_data 폴더부터 연동이 된다.
c:\ftp_data 의 상위 폴더들은 시스템 폴더이기 때문에 일반사용자가 접근가능하면 안된다.
이를 위해서는 실제로 VM 의 c:\ftp_data 를 만들어줘야 한다.
해당 폴더에 샘플용 데이터 test.txt 를 넣어두자.
다시 FTP Client 에서 FTP_user 로 접속을 시도해보자.
FTP 상에서는 서버의 최상위 폴더인 / 위치에
실제 서버의 FTP_data 폴더만 연동이 되고 파일 업로드, 다운로드가 잘 이루어지는 것을 확인할 수 있다.
스스로 해보기
- 비밀번호 없이 누구나 익명접속이 가능한 계정 anonymous 를 만들어서 접속해보자.
'수업 노트 > 컴퓨터 기초' 카테고리의 다른 글
컴퓨터 네트워크 기초 #2 (1) | 2024.04.15 |
---|---|
컴퓨터 네트워크 기초 #1 (0) | 2024.03.30 |
wsl 사용 중 별의별 에러가 생겼을 때 조치 (0) | 2023.11.25 |
리눅스의 장점 (1) | 2023.08.16 |
vmware network 문제 해결 방법 (0) | 2023.05.22 |
- Total
- Today
- Yesterday
- 압축파일
- 리눅스
- 웹보안공부
- nc
- java
- OpenSSL
- tar
- grep
- 웹보안
- HTTPS
- find
- OverTheWire
- ssh
- Strings
- 풀이
- SSL
- Encode
- Bandit
- 32bit
- natas7
- Natas
- Linux
- tr
- bz2
- over the wire
- BASE64
- X32
- 리터럴
- solution
- gz
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |