2 분 소요

FTP


구상도2022-08-01-26구상도PNG


ftp client 환경구성2022-08-01-01클라이언트환경구성1

2022-08-01-03클라이언트환경구성3

인터페이스 주소를 넣고 알 드라이브를 설치 합니다.


server 환경구성2022-08-01-04서버환경구성1


ping 확인2022-08-01-02클라이언트환경구성2

2022-08-01-05서버환경구성2


server에서 ftp 설치2022-08-01-06서버환경구성3


server ftp 확인2022-08-01-08ftp서버접속


client에서 알 드라이브 접속2022-08-01-07알드라이브접속


Wire Shark로 확인2022-08-01-09와이어샤크3웨이핸드

3way-hand shake : TCP 21 확인 가능


ktest 로그인 해서 확인 해보기2022-08-01-10ktest로들어가기


Wire Shark 확인2022-08-01-11와이어샤크확인

ID Password가 그대로 드러나는 모습이 보입니다.

보안에 매우 취약한 모습이 그대로 드러나는 모습 입니다.


root 로그인2022-08-01-12root로그인

로그인이 안되는데 Wire Shark로 확인 해보겠습니다.


Wire Shark 확인2022-08-01-13와이어샤크root

ktest와 다르게 비밀번호 입력이 되기 전에 막히는 모습 입니다.

root는 기본적으로 접근이 안되게 설정이 되어 있기 때문 입니다.

이제 이 root가 차단되어 있는 곳에 가서 그 설정을 바꾸고 다시 로그인 해 보겠습니다.


root 차단해제2022-08-01-16주석처리하는곳

위의 2군데에 들어가서 root를 주석처리 해주시면 됩니다.


root 주석처리2022-08-01-14root주석처리

2022-08-01-15root주석처리2


client에서 root 로그인2022-08-01-18다시root로그인시도


Wire Shark 확인2022-08-01-19root로그인성공

root 차단을 해제하니 로그인이 되는 모습 입니다.


업로드 다운로드 해보기2022-08-01-20업로드해보기

2022-08-01-21다운로드도 가능

업로드 다운로드 둘 다 성공 했습니다.

root ktest는 다운로드 업로드 둘 다 가능 하지만 익명유저는 업로드는 안되지만 다운로드는 가능 합니다.


익명유저 파일 만들기2022-08-01-22익명유저다운로드

/var/ftp/pub 가 익명유저가 있는 곳 입니다.

여기서 파일을 하나 만들고 다운로드를 시도 해 보겠습니다.


익명유저 다운로드2022-08-01-23익명유저다운로드가능

2022-08-01-24익명유저업로드불가능

다운로드는 가능 합니다. 하지만 업로드는 불가능 합니다.




FTP 연결 방식

ftp 연결 방식은 control connection, data connection 2가지가 있습니다.

접속할때 control connection (TCP 21)과 data connection (TCP 20) 2번 접속이 됩니다.

control connection (TCP 21)

2022-08-01-25control

data connection (TCP 20) 2022-08-01-25data

각자 다른 포트 번호로 접속하는 모습 입니다.


data connection은 2가지의 방법이 있습니다.

active, passive 방식이 있는데 구분하는 방법은 3way handshake의 시작점에 따라 달라 집니다.

active는 data connection의 시작점이 server2022-08-01-27액티브

passive는 data connection의 시작점이 client 입니다.2022-08-01-27패시브




익명사용자 접근거부

익명사용자 파일 찿기2022-08-01-32익명사용자파일찿기


익명사용자 파일 수정2022-08-01-29익명사용자2

2022-08-01-28익명사용자


데몬 재시작2022-08-01-30재시작


익명사용자 로그인2022-08-01-31익명사용자거부

접근 거부 완료.




익명사용자 pub 하위로 디렉터리및 파일 생성

파일 수정2022-08-01-34파일수정

2022-08-01-33파일수정


재시작

2022-08-01-35재시작


이렇게 해도 아직 디렉터리가 생성되지 않습니다.

익명사용자의 디렉터리 권한을 확인 해 보겠습니다.2022-08-01-36디렉터리권한확인

w 퍼미션이 없는 것이 보입니다.


익명사용자 라는 사용자가 있는지 확인 해 보겠습니다.2022-08-01-37사용자있는지확인

아무것도 나오지 않습니다. 익명 사용자라는 사용자는 없는 것으로 확인이 됩니다.


ftp 사용자 확인2022-08-01-38ftp사용자

ftp 사용자는 있는 것으로 확인 됩니다.

익명사용자가 접속하면 -> ftp 사용자로 인정되서 관련 디렉터리에 접근 가능 하다는 것을 알 수 있습니다.


퍼미션 부여

2022-08-01-39퍼미션부여

퍼미션을 부여하고 데몬 재시작 후 다시 테스트 해 보겠습니다.


client에서 Test

2022-08-01-40테스트

폴더도 만들어 지고 업로드도 잘 됩니다.




ftp connection port 를 변경 21→21000 으로 변경

파일 수정

2022-08-01-44포트번호변경

2022-08-01-41포트번호변경


client 확인

2022-08-01-42확인

포트번호 21번은 접속불가

2022-08-01-43확인2

포트번호 21000은 접속 가능




일반 사용자 에 대한 chroot 기능 적용

파일 수정

2022-08-01-50chroot

2022-08-01-47chroot설정


데몬 재시작

2022-08-01-48데몬재시작


chroot 적용 확인

2022-08-01-49chroot적용확인

최상위 파일에 도달할 수 없음이 확인 가능 합니다.




특수 사용자 에 대한 chroot 기능 적용

사용자 추가

2022-08-01-51사용자추가


파일 수정

2022-08-01-50chroot

2022-08-01-52수정


chroot_list 파일 생성2022-08-01-54파일생성

2022-08-01-53test01추가

내용에 test01 추가


test01 client에서 접속

2022-08-01-55test01


ktest client에서 접속

2022-08-01-56ktest

test01은 chroot가 적용되지 않았고 ktest는 chroot가 적용 된 모습 입니다.

결론적으로 chroot는 디렉터리의 최상위를 변경 해주는 모습이 보입니다.


업데이트:

댓글남기기