网络文件共享服务 (4)

网络文件共享服务

 

实现基于SSL的FTPS

(1)查看是否支持SSL

ldd `which vsftpd` 查看到libssl.so

(2)创建自签名证书

cd /etc/pki/tls/certs/

make vsftpd.pem

mv vsftpd.pem /etc/vsftpd

(3)配置vsftpd服务支持SSL

vim /etc/vsftpd/vsftpd.conf

ssl_enable=YES 启用SSL

allow_anon_ssl=NO 匿名不支持SSL

force_local_logins_ssl=YES 本地用户登录加密

force_local_data_ssl=YES 本地用户数据传输加密

rsa_cert_file=http://www.likecs.com/etc/vsftpd/vsftpd.pem

cat -A /etc/vsftpd/vsftpd.conf可以检查空格

(4)用filezilla等工具测试

网络文件共享服务

 

网络文件共享服务

实现基于文件验证的vsftpd虚拟用户

(1)创建虚拟账号

cd /etc/vsftpd

vim ftpusers.txt 在这个文件中创建虚拟账号,格式是奇数行是账号名,偶数行是口令,如图:

网络文件共享服务

(2)将存放账号的文件编码为hash格式,需要用db_load命令

db_load -T -t hash -f ftpusers.txt ftpusers.db 生成一个tpusers.db数据库文件

chmod 600 ftpuser.db 为了安全,不让其他人查看该文件,原来存放账号的文件就可以删掉了

(3)创建一个系统账号,所有虚拟账号会统一映射为一个指定的系统帐号,访问共享位置,即为此系统帐号的家目录

useradd -r -d -m /app/ftpuser -s /sbin/nologin ftpuser

chmod 555 /app/ftpuser

mkdir /app/ftpuser/upload

chown ftpuser /app/ftpuser/upload

(4)创建pam配置文件,让ftp通过数据库文件来验证身份,需要用到pam模块

定义一个pam模块配置文件

vim /etc/pam 后面是db数据库文件的路径

网络文件共享服务

(5)将虚拟账号映射为系统账号,指定pam配置文件,修改ftp配置文件

网络文件共享服务

(6)重启ftp服务,测试,现在就可以用虚拟账号登陆了

网络文件共享服务

(7)虚拟用户建立独立的配置文件

mdkir /etc/vsftpd/ftpusers.d/ 创建配置文件存放的路径

vim /etc/vsftpd/vsftpd.conf

user_config_dir=http://www.likecs.com/etc/vsftpd/ftpusers.d/

cd /etc/vsftpd/ftpusers.d/ 进入此目录

现在想允许ftp1能够上传文件和创建目录和删除修改上传的文件,ftp2登陆的目录为/app/ftpuser1,

ftp3登陆的根目录为/app/ftpuser2

vim ftp1

网络文件共享服务

vim ftp2

网络文件共享服务

vim ftp3

网络文件共享服务

再创建根目录,并在各根目录下创建不同的文件加以区分

mkdir /app/ftpuser1

mkdir /app/ftpuser2

mkdir /app/ftpuser1/f1

mkdir /app/ftpuser2/f2

chown ftpuser /app/ftpuser1/f1

chown ftpuser /app/ftpuser2/f2

chmod 555 /app/ftpuser*

(8)测试

ftp1用户

网络文件共享服务

ftp2用户

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppxzs.html