정보보안공부

Linux_리눅스 FTP 보안 설정 본문

Linux

Linux_리눅스 FTP 보안 설정

Steady_sp 2018. 8. 1. 00:00

리눅스 FTP 보안 설정

- 오라클 가상 머신 사용

- CentOS7

- Windows 10

 

<FTP 보안 설정>

- 익명 연결 여부

- 상위 디렉토리 거부

- 접근 제어

 

#1 FTP ( File Transfer Protocol )

- FTP는 TCP/IP 기반의 원격으로 떨어져 있는 서버와 클라이언트 사이의 파일 전송을 위한 통신 프로토콜중 하나이다.

- FTP 서비스는 아이디 및 패스워드가 암호화되지 않은 채로 전송되어 간단한 스니퍼에 의해서도 아이디 및 패스워드가 노출될 수 있으므로 반드시 필요한 경우를 제외하고는 FTP 서비스 사용을 제한해야한다.

- 동작모드로는 Active mode 와 Passive mode가 있다.

 

#2 FTP 보안설정 - 익명 연결 여부

 

설정 파일 : /etc/vsftpd/vsftpd.conf 

- 허용 : 아무사용자나 다 접근가능
- 불가 : 아이디나 패스워드를 알고있는 사용자만 접근이 가능하다.
 anonymous_enble=NO -> anonymous 사용자 로그인 불가!!

 anonymous_enble=YES -> anonymous 사용자 로그인 가능!! ( vsftpd 설치시 기본으로 YES 설정되어있다. )

 

 

-> 설정후에 systemctl restart vsftpd 를 해주어야 한다. ( vsftpd 서비스를 재시작해야 설정한 사항이 적용된다. )

 

 

#2 FTP 보안설정 - 상위 디렉터리 접근 거부 ( chroot )

 

설정파일 : /etc/vsftpd/vsftpd.conf
-> 상위 디렉터리 접근 거부 = 쓰기 거부라는 의미를 담고있다.

 

*** SERVER에서 chroot_local_user = YES 설정

 

 

- 100줄 #chroot_local_user=YES -> chroot 사용 여부 
-> 주석풀고 저장 , vsftpd 데몬 재시작 ( systemctl restart vsftpd )

 

*** Client에서 Server로 ftp 접속해보기 - 접속이 안된다.

 

 

-> chroot_local_user = YES 만 설정하면 접속이 안된다. 추가적인 설정필요

-> 옛날에 됬었지만 현재 되지않는다.

 

*** SERVER에서 allow_writeable_chroot = YES 추가로 설정

 

 

- allow_writeable_chroot=YES 추가로 넣어야한다. 설정후 데몬 재시작 ( systemctl restart vsftpd )

 

*** Client에서 Server로 ftp 접속해보기 - 접속이 되고 상위디렉토리로 접근불가 , 접속후 해당위치는 무조건 / (최상위 )로 표시

 

- 접속후에 해당 사용자의 홈디렉토리에 위치해야 하지만 무조건 / ( 최상위 )로 보여줌으로써 경로를 전부공개하지 않는다.

- 접속후 cd를 이용해 상위 디렉토리 ( /tmp 등등 )로 이동이 불가능하다.

 

## 모든 사용자의 상위 디렉토리 접근 거부

chroot_local_user=YES

allow_writeable_chroot=YES

-> 모든 사용자가 상위 디렉토리 접근이 거부된다.

 

## 특정 사용자만 상위 디렉터리 접근 거부

chroot_local_user=NO

allow_writeable_chroot=YES

chroot_list_enable=YES

-> chroot_list_enable에 등록된 사용자는 상위 디렉터리에 접근이 거부된다.

 

## 특정 사용자만 상위 디렉터리 접근 허용

chroot_local_user=YES

allow_writeable_chroot=YES

chroot_list_enable=YES

 

-> chroot_list_enable에 등록된 사용자는 상위 디렉터리에 접근이 허용된다.

 

-> 리스트 파일위치 chroot_list_file

/etc/vsftpd/chroot_list

 

 

#2 FTP 보안설정 - 접근제어 설정

 

설정 파일 : /etc/vsftpd/vsftpd.conf

- 접근제어 설정은 3가지로 이루어져있다.

 

 

 

*** 첫번째 : 사용자 접근제어 userlist_enable=YES

설정파일 : /etc/vsftpd/vsftpd.conf

-> userlist_enable=YES : /etc/vsftpd/user_list에 등록된 사용자를 활성화 시킬것인지

-> userlist_deny=YES : /etc/vsftpd/user_list에 등록된 사용자를 거부목적으로 사용 ( default로 설정되어있다. )

-> userlist_deny=NO : /etc/vsftpd/user_list에 등록된 사용자를 허용한다.

 

설정파일 : /etc/vsftpd/user_list

-> 설정된 사용자로 접속시 비밀번호도 물어보기 전에 거부된다.

 

 

*** 두번째 : /etc/shadow 파일을 이용해 로그인 인증을 해주는 pam모듈 pam_service_name=vsftpd

설정파일 : /etc/pam.d/vsftpd

-> pam모듈에 의해 /etc/vsftpd/ftpusers에 등록되어있는 사용자는 거부한다.

 

 

-> 기본값으로 위와같이 설정되어있다.

 

설정파일 : /etc/vsftpd/ftpusers

-> 여기에 작성된 사용자는 pam모듈에 의해 패스워드를 올바르게 입력해도 로그인 실패한다

-> root등 중요 계정을 ftpusers 파일에 명시하여 접속을 제한한다.

 

 

*** 세번째 : tcp_wrappers 를 이용해 Host 접근 제어 - /etc/hosts.allow , /etc/hosts.deny

설정파일 : /etc/hosts.allow   -> 용할 호스트

설정파일 : /etc/hosts.deny    -> 거부할 호스트

-> 두개의 파일이 작성되어있을 시에 hosts.allow 먼저 반영한다.

-> 두개의 파일에 해당사항이 없으면 접근을 허용한다.

 

두개의 파일의 작성하는 형태는 <service_name>:<host> 형태로 작성한다.

#> vi /etc/hosts.deny

ALL:ALL                     -> 모든 서비스에 대해서 모든 호스트 거부

vsftpd:100.100.100.     -> vsftpd 서비스에 대해서 100.100.100. 네트워크 대역대 거부

 

#>vi /etc/hosts.allow
sshd:100.100.100. EXCEPT 100.100.100.200      -> sshd 100.100.100. 네트워크 대역대만 허용 , 100.100.100.200은 제외

vsftpd:100.100.100.190                                 -> vsftpd 서비스에 대해서 100.100.100.190 네트워크는 거부한다.

 

'Linux' 카테고리의 다른 글

Linux_리눅스 원격제어 - Telnet / SSH  (1) 2018.08.02
Linux_리눅스 Xinetd 슈퍼데몬  (0) 2018.08.01
Linux_리눅스 FTP  (0) 2018.07.31
Linux_리눅스 SAMBA  (0) 2018.07.26
Linux_리눅스 NFS  (0) 2018.07.24
Comments