본문 바로가기
OS/Cent OS

FTP 보안 설정1 ( ftpusers, Pam, Chroot )

by 티옌.liy 2017. 3. 4.

FTP에서, /etc/vsftpd/ftpusers (ftp 접속 차단 계정 정보 파일) 로 보안을 적용할 수 있다.


vim /etc/vsftpd/vsftpd.conf에 아래의 문구를 추가하면, 패시브 모드로 보안을 설정할 수 있다.


pasv_enavble=YES         : Passive 모드 사용

pasv_max_port=61010    : 최대 포트 번호

pasv_min_port=61000     : 최소 포트 번호




일단, root 계정으로 실험을 해보자.


vim /etc/vsftpd/vsftpd.conf 파일에서 user_list를 활성화 한다. ( userlist_enable=YES )

그리고 리스트의 거부 기능을 끈다. ( userlist_deny=NO ) 즉, 승인 목록이 된것이다.


root계정에서 /etc/vsftpd/ftpusers 으로 접속을 시도해보자.


단호하게 거부한다.


그럼, /etc/vsftpd/ftpusers 으로 가서 root 를 지워주자


( /etc/vsftpd/ftpusers의 내용 )


/etc/vsftpd/user_list에 root가 없을때 접속해보자.



이번에는 /etc/vsftpd/user_list에 root가 있을때 접속해보자.






PAM - 로그인 제한.


- 서비스 접속 및 각종 인증에 사용되는 모듈 ( /etc/pam.d/vsftpd )


file=/etc/vsftpd/ftpusers 옵션

sense=deny : 등록된 사용자는 접근 금지

onerr=succeed : 해당파일이 없어나 파일명이 다르면 접속을 허용


vsftp 인증 절차


(1) 클라이언트가 ftp 서버에 서비스 요청 ( 로그인 )


(2) vsftp 서비스가 pam에게 인증을 요청 ( 위임 )

/etc/vsdtpd/vsdtpd.conf 설정중 pam_service_name=vsftpd  옵션 확인 후 pam 설정 확인


(3) pam 설정 파일 확인

/etc/pam.d/vsftpd 파일의 모듈 및 설정 내용 확인 ( pam_listfile.so)


(4) 인증 결과를 서버에게 전달

sense=deny,  onerr=succeed


(5) ftp서버는 pam인증 결과로 승인/거부 진행








실습은 conf 설정 변경 후 진행



vim /etc/vsftpd/ftpusers 에 ftp-user3을 추가. 그러면 ftp 접속이 안될것이다.



tail /var/log/secure 으로 로그를 확인해보면.




vim /etc/vsftpd/ftpusers 에 ftp-user3가 있으면서도 접속할수 있도록

vim /etc/pam.d/vsftpd에 가서 sense=deny를 allow로 바꿔보자



다시, ftp-user3으로 ftp 접속을 해보자



분명 ftpuser에 ftp-user3이 있음에도 접속을 할 수 있다.






Chroot


- 보안을 위해 원격 서비스로 접속시, 접속 계정의 홈 디렉토리의 상위로 이동이 불가능하게 하는 명령어.

- 리스트에 있는 사람만 홈 디렉토리 밖으로도 이동할 수 있다.



한번 실습을 해보자.

vim /etc/vsftpd/vsftpd.conf 에서 아래의 문구를 추가또는 수정한다.



server에 ftp-user1과 ftp-user2의 홈 디렉토리에 임의의 파일을 생성한다.


vim /etc/vsftpd/chroot_list에 ftp-user1만 입력한다.


그후 Cilent에서 각각 ftp-user로 접속해보고, 현재 경로 및 리스트를 출력한다.


ftp-user1은 자신의 홈 디렉토리 밖으로 나갈 수 있다.

ftp-user2는 자신의 홈 디렉토리가 최상위로 인식되고, 그 밖으로는 나갈 수 없다.





TCP_WRAPPER - Xinetd 데몬에 의해 수행되는 서비스 접근 제어 프로그램


위의 3개는 계정 접속만 못할뿐 FTP 프로토콜 에는 접속이 가능했다.

이건 아예 FTP 프로토콜에 접속도 못하게끔 할 수 있다.


TCP_WRAPPER는 규칙이 있다.

vim /etc/hosts.allow 가 vim /etc/hosts.deny 보다 우선순위가 높다. 즉, allow가 먼저 적용된다.



직접 실험을 해보자.


vim /etc/vsftpd/vsftpd.conf 에  tcp_wrappers=YES 문구를 추가한다.

vim /etc/hosts.deny 에    vsftpd:ALL 문구를 추가한다.

vim /etc/hosts.allow 에    vsftpd:*.tyen.com 100.100.100.0/255.255.255.0 를 추가한다.

# tcpdmatch vsftpd [ Client IP ] 로 확인한다.

혹시 안된다면 yum -y install tcp_wrappers을 설치 후 하면 된다.


FTP 서버와 연결이 된다.



이번에, vim /etc/hosts.allow의 내용을 없앤후, 다시 FTP 접속을 해보면


FTP 서버 접속 자체가 안된다.




▶ 연결 제한 옵션

vim /etc/vsftpd/vsftpd.conf에서

 max_clients=50 : 동시에 접속 가능한 사용자 수

 max_per_ip=10 : 한개의 ip 주소에서 연결 가능한 수

 anon_max_rate=10000 : 익명사용자들이 초당 전송 가능한 최대 데이터 속도(Byte)   0은 속도제한없음.

 local_max_rate=10000 : 계정사용자들이 초당 전송 가능한 최대 데이터 속도(Byte)   0은 속도제한없음.

 max_login_fail=3 : 설정된 횟수만큼 로그인에 실패하면 세션이 종료된다.

 idle_session_timeout=300 : 초 단위로, 명령이 없으면 FTP와 연결이 종료된다.

'OS > Cent OS' 카테고리의 다른 글

NFS  (0) 2017.03.05
NTP - 시간 동기화 프로토콜  (0) 2017.03.04
FTP 보안설정2 ( Passive Mode )  (0) 2017.03.04
FTP  (0) 2017.03.04
DHCP  (0) 2017.02.19
이론+실습] DNS -2  (0) 2017.02.19

댓글