article thumbnail image
Published 2022. 11. 9. 11:01

1. FTP

1. File Transfer Protocol

2. 대용량 파일 전송 서비스, 인증 (TFTP)

3. vsfpd, proftpd

4. 주의사항, 반드시 selinux disabled, permissive 상태에서 테스트

     log 파일, 배너, chroot 적용 파일 위치 변경 불가능

5. 설치

  • #yum install -y vsftpd

6. 설정

  •     설정파일 위치
  •     # vi /etc/vsftpd/vsftpd.conf 

7. Protocol

  •     TCP

8. Port

  • 인증제어 21
  • 데이터 전송
    •  Active 20
    • Client 서버 통신 요청, 자기 데이터 port 통보 (10000)
    • 서버응답
    • 서버가 데이터 전송
    • Client 측 포트가 열려있지 않으면 몇번을 Port 사용할지도 모름
    • Client측에서 모든 Port Open -> FTP App에 대해서만 방화벽 open
  • Passive Server 가 지정한 포트
    • Client가 서버에 통신 요청 21
    • 서버가 응답, 데이터 전송 포트 통보 Client
    • 서버가 알려준 포트로 접속해서 데이터를 가져옴
    • 서버가 Port Open(Server측에서 지정한 Port만 방화벽에서 Open)

 

chroot= 사용자를 격리시키기 좋은 기술. 로그인한 디렉토리를 최상위 디렉토리로 인식하게 한다. chroot 에 aa를 등록하면 aa는 


FTP 실습

 

1. Selinux 확인

#enforce

Disabled 또는 

 

2. yum으로 vsftpd 설치

 

 

3. 확인을 위한 가짜 파일 생성

사용자 a와 b의 홈디렉터리에 a.txt, a1.txt, b.txt, b1.txt 생성

 

 

4. 사용자 추가

# vi /etc/vsftpd/chroot_list 에 사용자 a 추가

# vi /etc/vsftpd/user_list 에는 ftp를 사용하지 못하는 계정들이 저장되어 있습니다.

 

5. vsftpd 시작 후 netstat 명령어로 확인해보면 포트 21번과 22번이 Listen 상태로 생성된 걸 볼 수 있습니다.

 

 

6. /etc/vsftpd/vsftpd.conf 설정

     #53: xferlog 파일을 저장할 경로 설정

     #60: 접속 후 유효시간을 설정 (초단위)

     #63: 데이터 수신이나 전송 후에도 아무 동작을 하지않을 경우 연결 해제할 시간 설정

 

     #86 : 배너파일이 저장된 경로 설정

chroot_list 파일이 저장된 경로 입력
맨 아랫줄에 추가입력

#134 : 연결할 최대 IP의 갯수

#135: 동일사용자의 세션 허용 갯수

#136: 목록에 나타나지 않게 할 파일 확장자명

#137: 업로드가 되지 않게 할 파일 확장자명

7. 방화벽 설정

<방법1>

/etc/firewalld/zones/public.xml 에서 직접 편집해도 됩니다 (reload 필수)

<방법2>

 

8. 윈도우 cmd 창에서 테스트하면 a.txt와 a1.txt 파일 확인 가능

Centos에서 다시 netstat 명령어를 확인해보면 W10-1의 아이피인 10.0.0.101을 확인할 수 있습니다.

복사했습니다!