[260428] FTP 서버 이론 및 설정 (Active/Passive 모드)

📋 학습 요약

  • 주제: FTP 프로토콜의 동작 원리(Active/Passive) 이해 및 접근 제어 설정
  • 도구: Rocky Linux 9.4, Xshell, Windows 10,11
  • 핵심 키워드: FTP, Active/Passive Mode, chroot, UMASK, Port Forwarding

💻 주요 실습 내용

1. 네트워크 및 시스템 이론

  • FTP 이론: 제어 포트(21)와 데이터 포트(20/가변)가 분리된 동작 방식 이해
  • Router vs Switch: L3 계층의 경로 배정(Routing)과 L2 계층의 MAC 기반 전달(Switching) 차이
  • UMASK: 파일(666-umask) 및 디렉토리(777-umask) 생성 시 기본 권한 결정 원리

2. Xshell 가독성 팁 (IP 하이라이팅 설정)

터미널에서 IP 주소를 쉽게 식별하기 위한 정규식 하이라이팅 설정을 적용했습니다.

  • 설정 방법: [도구] → [하이라이터 모음] → 정규식(([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})) 추가 및 색상 지정

3. FTP 서버 실습 (Active Mode vs Passive Mode)

[실습 1: Active Mode 구성 - 사용자 x, y]

  • 주요 설정:
    • 보안: anonymous 사용 금지, chroot를 사용자 x에게만 적용(list 방식)
    • 로그/배너: 배너 파일(/ftp/ban), 전송 로그(/ftp/xferlog) 지정
    • 타임아웃: 세션 타임아웃 3분(180s), 데이터 전송 타임아웃 30s
    • 파일 생성: 각 사용자 홈 디렉토리에 500MB 더미 파일 생성 (dd 명령어 활용)

[실습 2: Passive Mode 구성 - 이니셜 계정]

  • 주요 설정:
    • 포트 범위: Passive 데이터 전송 포트를 60000-60010으로 고정
    • 경로 커스텀: 모든 설정 파일 및 로그를 /이니셜/ 디렉토리 하위로 집중 관리
    • 외부 접속: 팀원 간 원격 접속이 가능하도록 Port Forwarding 작업 병행
     

🔍 주요 설정값 메모 (vsftpd.conf)

  • Active Mode 관련: port_enable=YES, connect_from_port_20=YES
  • Passive Mode 관련: pasv_min_port=60000, pasv_max_port=60010
  • 타임아웃: idle_session_timeout=180, data_connection_timeout=30
  • chroot: chroot_local_user=NO, chroot_list_enable=YES

⚠️ 트러블슈팅 및 주의사항

  • 방화벽 설정: FTP는 21번 포트 외에도 데이터 전송을 위한 포트(ex 60000-60010)를 반드시 함께 개방해야 함.
  • 포트포워딩: NAT 환경에서 팀원 PC로 접속 시, 본인 호스트 PC의 방화벽 인바운드 규칙에 해당 포트들이 등록되어 있는지 확인 필수.

📝 오늘의 회고

FTP의 Active 모드와 Passive 모드가 방화벽 환경에서 어떻게 다르게 동작하는지 몸소 체험할 수 있었다. 특히 chroot를 통해 사용자의 디렉토리 이동을 제한하는 설정은 보안 관리자로서 필수적인 역량임을 느꼈다.