• 欢迎访问奇跡の海网站,本站不上传任何资源,所有资源均来自于网络,欢迎加入奇跡の海~!奇跡の海-WordPress QQ群
  • 本站下载资源为网络上收集整理而来,并且以计算机技术研究交流为目的,版权归原作者所有,仅供大家参考,学习,不存在任何商业目的与商业用途.
  • 本站系统镜像均来自于官方原版,ed2k可视为P2P下载链接。所有操作系统默认均为试用版,如有正版密钥可以有效激活,本站不提供任何激活和相关服务。

Linux下FTP+SSL实现安全的通讯方式以及实现虚拟用户

服务器 奇跡の海 2年前 (2017-01-29) 360次浏览 已收录 0个评论 扫描二维码

FTP+SSL实现安全的通讯方式

ssl_enable=yes:是否支持ssl功能
ssl_tlsv1=yes
ssl-sslv3=yes:ssl支持的协议
allow_anon_ssl=no:匿名用户是否支持ssl协议,既然是匿名所以建议不支持
force_local_data_ssl=yes:强制系统用户支持
force_local_logins_ssl=yes:强制系统用户登录支持
rsa_cert_file=/etc/vsftpd/ssl/vdftpd.crt:rsa的证书文件存放路径
rsa_private_key_file=/etc/vsftpd/ssl/vsftpd.key:rsa的密钥存放路径
把上面这些添加到/etc/vsftpd/vsftpd.conf中去
1、创建私钥和自签证书
cd /etc/pki/CA
mkdir certs newcerts crl
touch index.txt
echo 01 > serial
(umask 077;openssl genrsa -out private/cakey.pem 2048)
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3600
填好一些列信息,这里省略。
2、创建ftp服务器的私钥,证书请求,和签证操作
mkdir /etc/vsftpd/ssl  (上面提到的路径)
cd /etc/vsftpd/ssl
(umask 077;openssl genrsa -out vsftpd.key 2048)
openssl req -new -key vsftpd.key -out vsftpd.csr
填好信息,省略(注意如果信息除了主机名之外一定要与之前保持一致,因为都在本地实现)
编辑 /etc/pki/tls/openssl.conf
修改dir路径这里是/etc/pki/CA
回到/etc/vsftpd/ssl中
openssl ca -in vsftpd.csr -out vsftpd.crt
修改配置文件后一定要重启,自己注意。
测试:
先匿名访问
Linux下FTP+SSL实现安全的通讯方式以及实现虚拟用户
匿名用户访问成功。
在用系统用户hxk来测试
Linux下FTP+SSL实现安全的通讯方式以及实现虚拟用户
登录失败
下面采用远程客户端来进行测试FlashFXP
安装好FlashFXP
点击站点,站点管理器,出现如下界面
Linux下FTP+SSL实现安全的通讯方式以及实现虚拟用户
新建站点,名字自己设置,填写如下内容
Linux下FTP+SSL实现安全的通讯方式以及实现虚拟用户
点击连接
Linux下FTP+SSL实现安全的通讯方式以及实现虚拟用户
这个证书就是我们创建的证书,接受并保存
Linux下FTP+SSL实现安全的通讯方式以及实现虚拟用户
以正确连接上去
vsftpd实现虚拟用户的操作
因为vsftpd是基于pam的用户认证,所以需要手动修改pam实现虚拟用户
下面实现基于mysql的虚拟用户
mysql事先已经安装好
安装pam_mysql-0.7RC1
 tar zxvf  pam_mysql-0.7RC1.tar.gz
cd  pam_mysql-0.7RC1
./configure –with-mysql=/usr –with-openssl(如果不成功改为/usr或者没有装mysql-devel)
make
make install
cp /usr/lib/security/pam_mysql.so /lib/security/
cp /usr/lib/security/pam_mysql.la /lib/security/
连接到mysql数据库
CREATE DATABASE vsftpd;
use vsftpd;
 CREATE TABLE users ( 
id SMALLINT AUTO_INCREMENT NOT NULL,     自动增加,非空
name CHAR(20) BINARY NOT NULL,      区分大小写,非空
password CHAR(48) BINARY NOT NULL, 
PRIMARY key(id));
DESC users
Linux下FTP+SSL实现安全的通讯方式以及实现虚拟用户
GRANT SELECT ON vsftpd.* to vsftpd@localhost IDENTIFIED BY’147852′;
GRANT SELECT ON vsftpd.* to vsftpd@127.0.0.1 IDENTIFIED BY’147852′;
FLUSH PRIVILEGES;
INSERT INTO users(name,password)VALUES(‘tom’,password(‘147852’)),(‘jerry’,password(‘147852’));
Linux下FTP+SSL实现安全的通讯方式以及实现虚拟用户
测试 vsftpd这个用户能否连上
Linux下FTP+SSL实现安全的通讯方式以及实现虚拟用户
已经成功连上。
建立pam认证所需文件
vim /etc/pam.d/vsftpd.mysql
auth required /lib/security/pam_mysql.so user=vsftpd passwd=147852 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /lib/security/pam_mysql.so user=vsftpd passwd=147852 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
修改vsftpd的配置文件
建立虚拟用户映射的系统用户及对应的目录
useradd -s /sbin/nologin -d /var/ftproot vuser
chmod go+rx /var/ftproot
vim /etc/vsftpd/vsftpd.conf
添加
guest_enable=YES   是否允许来宾用户访问
guest_username=vuser  映射为哪个用户
修改pam_service_name=vsftpd.mysql
为了不影响测试
force_local_data_ssl=NO
force_local_logins_ssl=NO
请确保/etc/vsftpd.conf中已经启用了以下选项
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES
Linux下FTP+SSL实现安全的通讯方式以及实现虚拟用户
虚拟用户登录成功
虚拟用户的指令都是匿名用户所匹配
配置虚拟用户具有不同的访问权限
vim vsftpd.conf
添加如下选项
user_config_dir=/etc/vsftpd/vusers_dir 
创建所需要目录,并为虚拟用户提供配置文件
mkdir /etc/vsftpd/vusers_dir/
cd /etc/vsftpd/vusers_dir/
touch tom jerry
配置虚拟用户的访问权限
虚拟用户对vsftpd服务的访问权限是通过匿名用户的相关指令进行的。比如,如果需要让tom用户具有上传文件的权限,可以修改/etc/vsftpd/vusers/tom文件,在里面添加如下选项即可。
anon_upload_enable=YES

版权声明:本站所有文章和资源使用CC BY-NC-SA 4.0协议授权发布 , 转载应当以相同方式注明文章来自“SeaOMC.COM->Linux下FTP+SSL实现安全的通讯方式以及实现虚拟用户!在下边可以分享本文哦!
喜欢 (0)
[]
分享 (0)
奇跡の海
关于作者:
一个WordPress菜鸟!
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址