Linux搭建FTP服务器

 

 

 

  Linux下使用ftp共享文件功能相对简单,默认情况下,启动vsftpd服务,即可通过匿名用户和linux系统的普通用户进行登录,相关权限可通过编辑/etc/vsftpd/vsftpd.conf配置文件进行……

  本文主要介绍如何用Linux搭建可供虚拟用户(即/etc/passwd中不存在的用户)登录的FTP服务器

 

 

    1.基本原理图

  2.是否安装了vsftpd

    3.安装vsftpd

    4.关闭selinux和iptables

    5.创建虚拟宿主用户

    6.编辑vsftpd.conf配置文件

    7.创建虚拟账户文件

    8.配置vsftpd的pam账户认证文件

    9.配置虚拟用户个人的配置文件

    10.测试

    11.补充介绍

 

 

 

1. 基本原理图

 

2. 查看是否安装了vsftpd服务
rpm -q vsftpd
rpm -qa |grep vsftpd

 

3. 安装vsftpd(以yum安装为例)
yum install vsftpd -y

 

4. 关闭selinux和iptables(也可配置相关访问策略,防止系统阻断),让vsftpd开机自启动
# 永久关闭selinux
sed -i "s#=enforcing#=disabled#g" /etc/selinux/config
setenforce 0

# 永久关闭iptables
etc/init.d/iptables stop
chkconfig iptables off

# 设置vsftpd开机自启动
chkconfig vsftpd on

 

5. 创建虚拟宿主用户
useradd virtuser -s /sbin/nologin
echo "123456" | passwd virtuser -stdin

 

6. 备份/etc/vsftpd/vsftpd.conf配置文件并将vsftpd.conf配置文件编辑内容如下
vim /etc/vsftpd/vsftpd.conf 

mv /etc/vsftpd/vsftpd.conf{,.bak}

# 是否允许匿名登陆
anonymous_enable=NO

# 是否允许本地用户登陆
local_enable=YES

# 是否具备写入权限
write_enable=NO

# 上传文件的权限掩码
local_umask=022

# 是否进行日志记录
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/vsftpd.log

# FTP开启数据传输端口20
connect_from_port_20=YES

# 会话超时时间/秒
idle_session_timeout=600

# 数据传输连接超时时间
data_connection_timeout=120

# 是否允许进行异步传输
async_abor_enable=YES

# 请求欢迎信息
ftpd_banner=Welcome to blah FTP service.

# linux中FTP默认情况下允许用户从ftp主目录切换到linux系统的其他目录
# 可开启chroot_list_enable功能,通过列表文件,进行用户限制
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_deny

# 是否允许FTP用户使用"ls -R"命令,该命令会对系统造成较大的负担
ls_recurse_enable=NO

# 设定vsftpd服务工作在standalone模式,可理解为拥有自己的守护进程 
listen=YES

# 设定pam服务下的vsftpd验证配置文件名,pam验证配置文件位于/etc/pam.d/目录下
pam_service_name=vsftpd

# 是否启用userlist列表限制功能
userlist_enable=YES

# 是否支持TCPwrappers
tcp_wrappers=YES

# 是否进行反向域名解析
reverse_lookup_enable=NO

# 启用虚拟用户功能
guest_enable=YES

# 指定虚拟的宿主用户
guest_username=virtuser

# 虚拟用户权限符合它们的宿主用户
virtual_use_local_privs=YES

# 指定虚拟用户的配置文件目录
user_config_dir=/etc/vsftpd/vconf
vsftpd.conf配置文件

 

7. 创建可供pam服务识别的虚拟账户文件(虚拟用户:test,密码:123456)
mkdir /etc/vsftpd/vconf

cd /etc/vsftpd/vconf/

echo -e "test\n123456" >password

db_load -T -t hash -f password{,.db}

 

 8. 配置vsftpd的pam账户认证文件,加入下面两行账户认证配置(一定要加在文件内容的最上面)
vim /etc/pam.d/vsftpd

auth    sufficient      /lib64/security/pam_userdb.so   db=/etc/vsftpd/vconf/password
account sufficient      /lib64/security/pam_userdb.so   db=/etc/vsftpd/vconf/password

 

 9. 创建共享目录并配置虚拟用户的个人配置文件(配置文件位于/etc/vsftpd/vconf/目录下,配置文件名称要和虚拟用户名一致)
mkdir /share
chown -R virtuser /share

vim /etc/vsftpd/vconf/test

#指定虚拟用户仓库的具路径
local_root=/share

#允许写的操作
write_enable=YES

#不允许下载操作
download_enable=NO

#设定并发客户端的访问数量
max_clients=20

#设定客户端的最大线程数
max_per_ip=10

#设定用户的最大传输速率,单位b/s
local_max_rate=102400
test虚拟用户配置文件

 

10. 创建测试文件,启动vsftpd
echo "testfile" >>/share/abd.txt
chown -R virtuser /share

/etc/init.d/vsftpd start ps -aux|grep vsftpd

 

11. 测试,成功!!

 

12. 补充介绍,默认情况下,登录linux中ftp的用户拥有切换到linux系统其它目录的权限,可通过配置chroot_list_enable=YES进行限制

  12.1 /etc/vsftpd/vsftpd.conf文件中配置如下内容

# linux中FTP默认情况下允许用户从ftp主目录切换到linux系统的其他目录
# 可开启chroot_list_enable功能,通过列表文件,进行用户限制
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_deny

  12.2 创建/etc/vsftpd/chroot_deny文件,把需要限制的用户名加入到文件中

echo "test" >>/etc/vsftpd/chroot_deny

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/Caiyundo/p/9979442.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值