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 |
댓글