Linux Server - FTP 실습 (2 / 2) : 사용자 제한 ( ftpuser / user_list )

● 실습 1 - 사용자 제한 설정

- ftpuser 파일과 user_list 파일을 이용하여 FTP 서버로 접속하는 사용자를 제한한다.
- ftpuser 파일과 user_list 파일은 서로 동기화되지 않기 때문에, 각 파일의 설정을 조율하는 것이 중요하다.

- ftpuser 파일은 목록에 있는 유저의 접근을 막는다.
- user_list 역시 목록에 있는 유저의 접근을 막지만, 설정을 통해 목록에 있는 유저만을 접근 허용시킬 수 있다. (userlist_deny)

- user_list 파일의 옵션

  userlist_enable       userlist_deny                                            의미


            yes                           yes                       user_list 파일에 등록된 사용자는 접속이 불허


            yes                           no                        user_list 파일에 등록된 사용자만 접속이 가능


            no                            무관                          userlist_enable이 no로 설정되면
                                                                              userlist_file은 사용되지 않는다


◎ 결론

1. ftpuser 목록에 있는 유저는 접근이 제한됨
2. user_list 목록에 있는 유저는 userlist_enable 옵션이 Yes, userlist_deny 옵션이 Yes일 경우, 접속이 제한됨
3. user_list 목록에 있는 유저만 userlist_enable 옵션이 Yes, userlist_deny 옵션이 No일 경우, 접속이 허용됨


① ftpusers file을 사용한 사용자 제한
  - userlist_enable 옵션을 No로 설정
   → user_list 파일을 사용하지 않겠다는 의미

▼ 설정

[root@DNS-Server ~]# vi /etc/vsftpd/ftpusers
[root@DNS-Server ~]# cat /etc/vsftpd/ftpusers
# Users that are not allowed to login via ftp
root
#bin
#daemon
#adm
#lp
#sync
...
→ ftpuser 파일의 수정 : root 계정을 제외하고 모든 유저를 접근 허용한다.


▼ 접속 시도

[root@Apache ~]# ftp 192.168.10.175
Connected to 192.168.10.175.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.10.175:root): root
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
→ 접속 실패


② user_list file을 사용한 사용자 제한
  - userlist_enable 옵션을 Yes로 설정
   → user_list 파일을 사용하겠다는 의미

※ 사전에 user_list 파일에 영향을 줄 수 있는 ftpuser 파일의 내용은 전부 주석처리 해둔다.

  ②-1) userlist_deny 옵션 Yes : 목록에 있는 유저 전부를 제한

▼ 설정 (vsftpd.conf)

[root@DNS-Server ~]# vi /etc/vsftpd/vsftpd.conf
...
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=YES
tcp_wrappers=YES

▼ 설정 (user_list)

[root@DNS-Server ~]# vi /etc/vsftpd/user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.

root
a1
#bin
#daemon
#adm
#lp
...

▼ 접속 시도
[root@Apache ~]# ftp 192.168.10.175
Connected to 192.168.10.175.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.10.175:root): root
530 Permission denied.
Login failed.
→ 접속 실패
→ ftpuser 파일로 제한했을 때와 접속 실패과정이 살짝 차이가 있다.
  : user_list를 통한 제한에서는 password 조차 묻지 않고 deny 된다.

  ②-2) userlist_deny 옵션 No : 목록에 있는 유저를 제외한 모든 유저를 제한

▼ 설정 (vsftpd.conf)
[root@DNS-Server ~]# vi /etc/vsftpd/vsftpd.conf
...
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
tcp_wrappers=YES

▼ 설정 (user_list)
  - 위와 같음

▼ 접속 시도
[root@Apache ~]# ftp 192.168.10.175
Connected to 192.168.10.175.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.10.175:root): root
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
→ 접속 성공

● 실습 2 - ftpuser 파일을 사용하여, user_list의 옵션 설정을 적용해보기

- PAM 서비스의 옵션을 사용하면 ftpuser 파일로도 목록에 있는 유저를 제외한 나머지 유저의 접근을 제한할 수 있다.
- /etc/pam.d/vsftpd 파일을 열람하면 파일의 내용 중 sense = deny 라는 설정이 있다.
- sence = allow로 변경해주면 ftpuser 목록에 있는 유저들이
  user_list 옵션의 userlist_deny = NO의 옵션을 내게 된다.

▼ 설정
[root@DNS-Server ~]# vi /etc/vsftpd/ftpusers
# Users that are not allowed to login via ftp
root
→ 기존의 설정대로라면, root 만을 접근 제한하는 의미

※ /etc/pam.d/vsftpd 파일을 수정
[root@DNS-Server ~]# vi /etc/pam.d/vsftpd
#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=allow file=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_shells.so
auth       include      system-auth
account    include      system-auth
session    include      system-auth
session    required     pam_loginuid.so
→ sense = deny를 sense = allow로 변경

※ 사전에 실습이 user_list 파일의 영향을 받지 않게 userlist_enable 옵션을 NO로 설정
[root@DNS-Server ~]# vi /etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd
userlist_enable=NO
#userlist_deny=NO
tcp_wrappers=YES

▼ 접속 시도
[root@Apache ~]# ftp 192.168.10.175
Connected to 192.168.10.175.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.10.175:root): root
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
→ 접속 성공

댓글

이 블로그의 인기 게시물

전자서명 개념

3.27 (화) - Network (패킷 통신 - 4가지 지연)