Linux系统通过自带的vsftpd服务搭建sftp服务器

Linux系统中自带小巧轻快的FTP程序vsftpd,vsftp是“very secure FTP daemon”的缩写,最大的特点就是安全,而且支持很多其他FTP服务器不具备的特征,本文详细介绍在CentOS7下如何通过自带的vsftpd搭建FTP服务器。

配置用户

创建用户

创建用户<user_name>,并限定<user_name>的主目录为/usr/ftp/upload,同时设置密码:

useradd -d /usr/ftp/upload <user_name>
passwd <user_name>

配置用户权限

虽然一般情况下,可不配置用户权限,但为了安全:

# 限定用户不能telnet,只能ftp
usermod -s /sbin/nologin <user_name>
# 用户恢复正常
usermod -s /bin/bash <user_name>
# 更改用户的主目录
usermod -d /usr/ftp <user_name>

配置SFTP

配置vsftpd

修改/etc/vsftpd/vsftpd.conf

anonymous_enable=NO #禁止匿名用户登录
local_enable=YES    #禁止本地用户登录
write_enable=YES

并在该文件的最后面添加如下行:

userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/vsftpd.user_list

限制用户访问路径

修改/etc/vsftpd/vsftpd.conf

chroot_list_enable=YES           #限制访问自身目录
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

编辑/etc/vsftpd/vsftpd.chroot_list,添加受限用户及其访问目录,如下:

<user_name_1> <filepath_1>
<user_name_2> <filepath_2>
<user_name_3> <filepath_3>

编辑/etc/vsftpd/vsftpd.user_list,添加受限制用户,如下:

<user_name_1>
<user_name_2>
<user_name_3>

重启vsftpd

service vsftpd restart

其他操作

# 如果需要允许用户修改密码
# 但是该用户没有登录系统的权限
# 执行如下命令后
# 用户即可telnet进入改密界面
usermod -s /usr/bin/passwd <user_name>

# 删除用户
userdel <user_name>

搭建支持SSL加密传输的vsftpd

生成证书

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

修改/etc/vsftpd/vsftpd.conf

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
rsa_cert_file=/etc/vsftpd/vsftpd.pem

以下是部分ssl参数说明:

ssl_enable=yes/no              #是否启用 SSL,默认为no
allow_anon_ssl=yes/no          #是否允许匿名用户使用SSL,默认为no
rsa_cert_file=/path/to/file    #rsa证书的位置
dsa_cert_file=/path/to/file    #dsa证书的位置
force_local_logins_ssl=yes/no  #非匿名用户登陆时是否加密,默认为yes
force_local_data_ssl=yes/no    #非匿名用户传输数据时是否加密,默认为yes
force_anon_logins_ssl=yes/no   #匿名用户登录时是否加密,默认为no
force_anon_data_ssl=yes/no     #匿名用户数据传输时是否加密,默认为no
ssl_sslv2=yes/no               #是否激活sslv2加密,默认no
ssl_sslv3=yes/no               #是否激活sslv3加密,默认no
ssl_tlsv1=yes/no               #是否激活tls v1加密,默认yes
ssl_ciphers=DES-CBC3-SHA       #默认是DES-CBC3-SHA

原创文章禁止转载:技术学堂 » Linux系统通过自带的vsftpd服务搭建sftp服务器

精彩评论

9+7=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏