FTP
- 파일전송 프로토콜(파일 복사)
- TCP/IP(20,21)에 의해 제공되는 표준기능
- 2개의 연결을 사용(1개는 제어채널 연결, 1개는 Data 통신)
- ID/PW방식에 의한 인증
- 연결 방식에 따라 FTP 능동모드, FTP 수동모드로 나눌 수 있다.
FTP 능동모드
- FTP 디폴트 모드
- 제어채널 생성을 위해 21번 포트, 데이터 전송을 위해 20번 포트 사용
- 전체 FTP세션 동안 계속 연결 상태 유지
- 서버에서는 2개의 포트(21, 20)만 열면 서비스가 가능
- 두 번째 connection은 서버 →클라이언트로 접속
- 클라이언트 방화벽 설치시 접속 불가
- PORT 명령어 사용(클라이언트 → 서버)
FTP 수동모드
- 제어채널 생성을 위해 21번 포트, 데이터 전송을 위해 1024번 이후 포트 사용
- 각각의 파일 전송 때마다 설정되며 전송 완료시 폐쇄
- 서버에서는 21번 포트, 1024번 이후 포트를 모두 오픈
- PASV 명령어 사용(서버 →클라이언트)
- Active, Passive 모드는 FTP 클라이언트가 결정
익명 FTP(Anonymous FTP)
- 서버에 계정이 없는 사용자가 서버자원에 한정된 접근이 가능하도록 권한을 제공
- 익명 FTP 접근을 위해서 따로 계정은 필요하지 않고 「아이디 : anonymous, 비밀번호 : 이메일주소」로 사용이 가능하다.
- 이 때 입력한 비밀번호는 실제 비밀번호가 아닌 서버가 로그에 기록하기 위한 용도이다.
TFTP
- FTP 기능 전부가 필요 없거나, 모두 지원하는 것이 비현실적인 경우를 위해 개발
- UDP(69번) 사용
- FTP와 TFTP의 차이
1. TFTP는 단순성이 가장중요하고 다양한 기능이 지원이 필요 없는 부스트래핑할 때 많이 사용
2. TFTP는 인증이 되지 않기 때문에 FTP와 달리 파일을 보내고 받는 정도의 한정된 명령만 사용 가능
3. TFTP는 바이너리, ASCII 표현방식만 지원
4. FTP = TCP/IP, TFTP = UDP 사용 → TFTP는 흐름제어, 오류제어 기능이 따로 없으므로 오류 메커니즘을 따로 생성해야 한다.
NFS와 삼바
NFS
- TCP / IP 프로토콜을 사용해 N/W상에서 파일 시스템을 운영할 수 있도록 하는 프로토콜
- 데이터의 보안 / 무결성 보장
- 인증된 N/W 사용자가 공유 N/W 파일을 자신의 장치에 있는 것처럼 사용
- NFS 이용시 디스크 공간 절약 가능
삼바
- SMB 프로토콜을 사용하여 유닉스 시스템과 윈도우 시스템 간 파일 및 프린터 자원을 공유기능 제공
- NFS / 삼바 동작원리
FTP 보안 위협
- FTP는 비밀번호를 요구하지만 비밀번호를 평문으로 저장하기 때문에 공격자가 가로채기 쉽다.
- 또한 FTP는 데이터 연결 또한 보호되지 않은 평문으로 데이터 전달하기 때문에 보안에 취약
- 이를 보안하기 위해 FTP 전송보안을 위해 SFTP, FTPS를 이용해 파일을 전송한다.
- SFTP(SCP) : SSH기반 파일 전송 프로토콜로서 tcp 22번 포트 이용
- FTPS : SSL/TLS 기반 파일 전송 프로토콜로서, FTP 응용계층, TCP 계층사이에 보안소켓을 추가하는 형식, tcp 990번 포트 이용
TFTP 보안
- TFTP는 간단한 파일 전송 프로토콜로서 보안에 대한 고려가 전혀 없다.
- TFTP는 중요하지 않은 파일에만 접근이 가능하도록 하고, TFTP 서버 근처 라우터에 보안을 구현하는 방식으로 최소한의 보안을 설정해야 한다.
- 만약 TFTP가 필요한 경우 secure mode로 운영한다.
Bounce Attack
- FTP 설계상 목적지 확인을 하지 않는 취약점을 이용한 공격
- 능동모드에서 공격자는 PORT 명령어를 통해 공격자가 원하는 곳으로 데이터를 전송하게 한다.
- Bounce Attack 보안
1. FTP 원래 규약을 어느정도 제한
2. FTP 원래 규약 인정하되 다른 서비스가 20번 포트 접속 요청시 거절(능동모드 접근 거절)
Anonymous ftp취약점
- anonymous 계정으로 접속해 보안절차를 걸치지 않는 익명의 사용자가 쓰기 권한이 있을 경우 악성코드 생성이 가능하다.
- anonymous FTP는 보안성 심각한 취약점을 가지기 때문에 반드시 사용할 경우 아니면 서비스 제거
- anonymous 사용자의 루트 디렉터리,bin,etc,pub 디렉터리 소유자 퍼미션을 관리한다.
FTP 보안 대책
- FTP 서비스는 평문 송수신을 하기 때문에 공격자에게 노출이 쉽기 때문에 중요계정은 FTP 접속을 피해야한다.
- ftpusers 파일은 접속을 제한할 계정정보를 담고있는 파일이다. → root 등 중요계정은 ftpusers 파일에 명시하여 접속을 제한해야 한다.
- TCP Wrapper의 설정파일 /etc/host.allow, /etc/host.deny 파일을 이용해 IP기반 접근제어 수행 → FTP 데몬 프로그램과 연동 설정이 필요함
FTP 서비스 운영
1. proftpd
- 보안과 기능의 중점을 둔 FTP 데몬
- wu-ftpd의 대안으로 개발
- 매우 안정적이고 빠름
- xinetd / standalone 형태로 동작 가능
2. ftp 접속시 확인 설정
1. /etc/passwd, /etc/shadow에 사용자 계정이 있는지 검사
2. /etc/ftpusers에 사용자 id 등록시 거부
3. /etc/shell에 등록되지 않은 셸을 사용하는 사용자는 접근 거부
3. vsftpd
- 가상 IP별 별도 환경 설정 가능
- 가상 사용자 설정
- 전송 대역폭 지정
- PAM 지원
- xinetd / standalone 방식 지원
- IP별 다른 환경 파일 지정 가능
- vstpd 서비스 관련 파일들
파일명 |
설명 |
/etc/vstpd |
vstpd의 메인 디렉터리 |
/etc/vstpd/vstpd.conf |
vstpd의 주요 메인 설정파일 |
/etc/vstpd/ftpusers |
vstpd 접속 거부 리스트파일 |
/etc/rc.d/init.d/vstpd |
vstpd 시작/ 종료 / 재시작 관련 파일 |
/etc/xinetd.d/vstpd |
xinetd 환경에서 서비스하기위한 설정파일 |
/var/log/xferlog |
FTP 업로드 및 다운로드 기록 파일 |
'보안기사 > 필기' 카테고리의 다른 글
기사 자격증(알기사, 웹 보안 - HTTP) (0) | 2019.02.22 |
---|---|
정보보안기사 자격증(알기사, 이메일 보안) (0) | 2019.02.18 |
기사 자격증(알기사, 최신 N/W 보안 동향) (0) | 2019.02.16 |
기사 자격증(알기사, VPN) (0) | 2019.02.15 |
기사자격증(알기사, 방화벽) (0) | 2019.02.14 |