vsftpd 사용자 추가 및 권한 분배
6017 단어 서버
centos6.5 서버에 vsftpd가 설치되어 있습니다.
vsftpd 설치
1. vsftpd 구성 요소 설치
yum -y install vsftpd
설치가 완료되면/etc/vsftpd/vsftpd가 있습니다.conf 파일, vsftp 설정 파일입니다.
2. 방화벽 21포트 켜기
ftp의 기본 포트는 21이고centos는 기본적으로 열리지 않기 때문에 IPtables 파일을 수정합니다
vim /etc/sysconfig/iptables
줄 위에는 22-j ACCEPT 아래에 다른 줄의 입력이 있는데 그 줄과 차이가 많지 않다. 단지 22를 21로 바꾸고: wq 저장, iptables 다시 시작하기
service iptables restart
3. selinux 수정
외부 네트워크는 접근할 수 있지만 디렉터리를 되돌릴 수 없음 (ftp의 주동 모드를 사용하지만 수동 모드는 접근할 수 없음) 을 발견하고 업로드할 수 없습니다.selinux가 이상한 짓을 했기 때문입니다.selinux를 수정하려면 다음과 같이 하십시오.
getsebool -a | grep ftp
위 명령에 selinux is disabled가 나타나면 selinux를 SELINUX=enforcing으로 변경하고 아래 명령을 사용하십시오
vim /etc/selinux/config
이어서 selinux를 수정하고 외부 네트워크 접근을 켜서 이 두 옵션을 모두 on으로 변경합니다
setsebool -P allow_ftpd_full_access on
setsebool -P ftp_home_dir on
2. 작업 시작
1. 실험 목표
같은 디렉터리에서admin, upload,download 세 가상 사용자의 다른 권한을 제어합니다.특정 권한 제어 목록은 다음과 같습니다.
사용자 이름
권한 설명
admin
관리자는 파일 및 폴더 이름을 업로드, 다운로드, 새 폴더, 삭제 및 변경할 수 있습니다.
upload
다운로드할 수 없고 업로드, 새 폴더를 만들 수 있지만 파일과 폴더를 삭제할 수 없고 기존 파일과 폴더의 이름을 바꿀 수 없습니다.
download
다운로드만 가능하며 다른 조작은 할 수 없습니다.
상기 세 명의 가상 사용자는 시스템에 로그인할 수 없고 ftp를 사용할 때 지정한 디렉터리에 잠겨 시스템의 다른 디렉터리에 들어갈 수 없습니다.
2. vsftpd 설정
# ,
[root@localhost vsftpd] useradd -s /sbin/nologin -d /home/CodeTiger -M CodeTiger
[root@localhost vsftpd] passwd CodeTiger
# , upload、download admin
[root@localhost vsftpd] touch /etc/vsftpd/vu_list.txt
[root@localhost vsftpd] echo upload >>/etc/vsftpd/vu_list.txt
[root@localhost vsftpd] echo 111111 >>/etc/vsftpd/vu_list.txt
[root@localhost vsftpd] echo download >>/etc/vsftpd/vu_list.txt
[root@localhost vsftpd] echo 111111 >>/etc/vsftpd/vu_list.txt
[root@localhost vsftpd] echo admin >>/etc/vsftpd/vu_list.txt
[root@localhost vsftpd] echo 111111 >>/etc/vsftpd/vu_list.txt
#
[root@localhost vsftpd] cat /etc/vsftpd/vu_list.txt
upload
111111
download
111111
admin
111111
# , db
[root@localhost vsftpd] db_load -T -t hash -f /etc/vsftpd/vu_list.txt /etc/vsftpd/vu_list.db
# db db4 ,
[root@localhost vsftpd] yum -y install db4 db4-devel db4-utils
# db ,
[root@localhost vsftpd] chmod 600 /etc/vsftpd/vu_list.db
3. PAM 파일 구성
서버는 시스템 PAM 모듈을 호출하여 클라이언트를 인증하기 때문에 지정한 프로필을 수정하여 인증 방식을 조정해야 합니다.PAM 모듈의 구성 파일 경로는/etc/pam입니다.d/, 이 디렉터리에는 사용자 인증과 관련된 많은 프로필만 저장됩니다.
[root@localhost pam.d] ls
chfn login remote smtp sudo-i
chsh newrole run_init smtp.postfix su-l
config-util other runuser sshd system-auth
crond passwd runuser-l ssh-keycat system-auth-ac
fingerprint-auth password-auth smartcard-auth su vsftpd
fingerprint-auth-ac password-auth-ac smartcard-auth-ac sudo
vsftpd 파일 편집
32비트 시스템 추가:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vu_list
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vu_list
64비트 시스템 추가:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vu_list
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vu_list
원래의 내용을 주석하고 위의 두 줄로 대체합니다. 그렇지 않으면 로컬에서 xftp로 연결할 수 없습니다. 수정이 끝난 후 vsftpd 파일의 내용은 다음과 같습니다.
[root@localhost pam.d] cat vsftpd
#%PAM-1.0
#session optional pam_keyinit.so force revoke
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
#auth include password-auth
#account include password-auth
#session required pam_loginuid.so
#session include password-auth
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vu_list
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vu_list
가상 사용자 프로파일 만들기
# conf
[root@localhost pam.d] cd /etc/vsftpd
[root@localhost vsftpd] mkdir conf
[root@localhost vsftpd] cd conf
# admin
[root@localhost conf] cat >>admin<< EOF
> anon_world_readable_only=NO
> write_enable=YES
> anon_mkdir_write_enable=YES
> anon_other_write_enable=YES
> anon_upload_enable=YES
> local_root=/home/CodeTiger
> EOF
# upload
[root@localhost conf] cat >>upload<< EOF
> write_enable=NO
> anon_upload_enable=YES
> anon_mkdir_write_enable=YES
> anon_world_readable_only=NO
> download_enable=NO
> local_root=/home/CodeTiger
> EOF
# download
[root@localhost conf] cat >>download<< EOF
> anon_world_readable_only=NO
> local_root=/home/CodeTiger
> EOF
vsftpd 수정.conf 파일
우선 기본 프로필을 백업한 다음에 프로필 안의 내용을 모두 삭제하고 아래의 내용으로 바꾸다
# Example config file /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_enable=YES
chroot_local_user=YES
listen=YES
pam_service_name=vsftpd
guest_enable=YES
guest_username=CodeTiger
user_config_dir=/etc/vsftpd/conf
여기까지 하면 큰 공을 이룬다.
테스트
먼저 디렉터리 홈/CodeTiger를 만들고 로컬 xftp 연결을 사용하지만 수동 모드를 닫아야 합니다
테스트, 연결 성공, 각 사용자의 권한 정상
현재 테스트된 것은 여러 사용자가 같은 디렉터리를 조작하는 것입니다. 서로 다른 사용자가 다른 디렉터리를 조작하려면 가상 사용자 프로필의local 을 바꾸기만 하면 됩니다.root 속성만 있으면 됩니다.
4. 닥친 문제
1.xftp 프롬프트 사용자 인증 실패
pam을 수정해서 그래요.d/vsftpd 때 다른 내용을 주석하지 않아서 일어난 일입니다.
2.xftp는 연결할 수 있지만 디렉터리가 표시되지 않습니다
패시브 모드를 끄면 됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
집 서버 설계 (하드웨어 편)자신의 Redmine이나 ownCloud를 운용하기 위해 사쿠라 VPS, DigitalOcean, OpenShift 등을 놀랐습니다만, 침착 해 왔으므로 현상을 정리하고 싶습니다. 먼저 하드웨어 구성을 정리합니다. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.