linux安装ftp服务

1.检查安装vsftpd服务器

rpm -qa |grep vsftpd

2.如果没有安装则yum安装

yum -y install vsftpd

3.启动

3.1 启动

systemctl start vsftpd.service

3.2 设置开机启动

systemctl enable vsftpd.service

3.3 查看状态

systemctl status vsftpd.service

4.创建用户

4.1创建用户组

groupadd ftpGroup

4.2 创建用户

useradd -d /var/ftp/collector -s /sbin/nologin -g ftpGroup -G root ${ftpUser}

解析:

          useradd 添加用户ftpUser

   -d 指定用户根目录为/var/ftp/collector

          -s 指定shell脚本为/sbin/nologin,表示不允许shell登录

          -g 创建分组ftpGroup

          -G 指定root分组

    PS:创建有问题可以删除重新创建 userdel -r ftpUser

4.3 设定密码

passwd ftpUser

4.4 设置访问权

ftpUser /var/ftp/collector

5.vsftpd的配置

安装完之后在/etc/vsftpd/路径下会存在三个配置文件。

vsftpd.conf: 主配置文件

ftpusers: 指定哪些用户不能访问FTP服务器,这里的用户包括root在内的一些重要用户。

user_list: 指定的用户是否可以访问ftp服务器,通过vsftpd.conf文件中的userlist_deny的配置来决定配置中的用户是否可以访问,

userlist_enable=YES ,

userlist_deny=NO,

userlist_file=/etc/vsftpd/user_list 这三个配置允许文件中的用户访问FTP。

(1)查看主配置文件的默认配置:

(使用:cat /etc/vsftpd/vsftpd.conf |grep -v ‘^#’;)

(2)修改配置文件:

登录ftp后会发现,用户可以访问其他目录,并且具有mpsp组的权限,这样做是不允许的,我们需要将用户的访问范围控制在其主目录下。方法如下:

a. vi /etc/vsftpd/vsftpd.conf进入ftp配置文件目录并编辑此文件,

b.找到#chroot_list_enable=YES,删除前面的那个#号,表示开启此限制功能;

找到chroot_list_file:chroot_list_file=/etc/vsftpd/chroot_list,删除前面的那个#号,表示开启此限制功能;加入chroot_local_use=NO

(进入编辑框后按i进行开始编辑)

c.进入配置文件后,在末尾加入如下三行:

① userlist_enable=YES

userlist_deny=NO(设置为NO表示user_list中的用户可以登录,否则相反)

userlist_file=/etc/vsftpd/vsftpd.user_list

d.禁止匿名用户登录

(编辑完,按esc后使用“:wq”保存并退出)

e. 对一些文件进行编辑

① 在etc/vsftpd目录找到chroot_list文件,进入编辑状态

加入你要限制的用户名,一行一个用户,比如ftpUser

(编辑完,按esc后使用“:wq”保存并退出)

② 进入vsftpd目录,找到user_list,键入ftpUser,意味允许ftpUser登陆ftp服务器

(编辑完,按esc后使用“:wq”保存并退出)

f.配置vsftpd服务主被动模式

主动模式端口:

connect_from_port_20=YES 主动模式端口为20(该项配置文件默认已经添加)

ftp_data_port=20 指定主动模式的端口

注意:如果要修改主动模式的链接端口,只需要修改"ftp_data_port"的配置,不需要修改"connect_from_port_20=YES"的配置,有点儿诡异。另外"ftp_data_port"man帮助中并没有说明。

被动模式端口范围:

pasv_enable=YES #开启

pasv_min_port=6000 (0为随机分配)

pasv_max_port=6100(这两项定义了可以同时执行下载链接的数量。)

ps:注意如果有内外网,使用被动模式需要设置pasv_address,指定被动模式返回地址,否则外网无法访问

pasv_address=118.31.187.122 #被动模式服务器地址(外网地址)
idle_session_timeout=3600 #空闲连接主动断开时间

6.重启ftp

systemctl restart vsftpd.service

7.本地连接FTP测试

ftp 127.0.0.1

8 错误提示:

错误1:ftp vsftpd 530 login incorrect

1./etc/vsftpd/ftpusers文件中不能存在该用户

由于配置文件/etc/pam.d/vsftpd中定义了/etc/vsftpd/ftpusers中的用户不可访问ftp

2./etc/vsftpd/user_list文件中必须存在该用户

3./etc/vsftpd/vsftpd.conf文件中以下配置是否正确

userlist_enable=YES

userlist_deny=NO

userlist_file=/etc/vsftpd/user_list

4.cat /etc/shells 缺少sbin/nologin
在这里插入图片描述

错误2:vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

要修复这个错误:

1.可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。

2.你可以在vsftpd的配置文件中增加:allow_writeable_chroot=YES

错误3.
关于ftp连接出现"226 transfer done but failed to open directory"

能是selinux的安全机制导致,于是修改/etc/selinux/config配置文件项SELINUX=disabled禁用selinux。成功。
记得修改文件后重启服务器。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值