centos7上简单安装ftp服务

安装:ftp服务:yum -y instal vsftpd
安装:ftp客户端:yum -y instal ftp
启动ftp服务:systemctl start vsvtpd
使用普通用户(不是root)登录测试:
[root@localhost vsftpd]# ftp localhost
Trying ::1...
Connected to localhost (::1).
220 (vsFTPd 3.0.3)
Name (localhost:root): tomcat
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||60430|)
150 Here comes the directory listing.
-rw-r--r--    1 1001     50              0 Jun 03 15:09 1.txt
drwxr-xr-x    2 1001     50              6 Jun 03 16:04 ftp_in
drwxr-xr-x    2 1001     50              6 Jun 03 16:04 ftp_in_bak
226 Directory send OK.

测试使用ls和cd命令,可以到tomcat用户下的任何目录,这不是我们期望的,只能限定用户在指定的目录操作。
[root@localhost data]# vi /etc/vsftpd/vsftpd.conf
chroot_local_user=YES  #限制ftp登录用户只能在local_root指定的目录内操作
local_root=/data/ftp  #指定ftp根目录
allow_writeable_chroot=YES #指定根目录写权限,否则报500 OOPS: vsftpd: refusing to run with writable root inside chroot()

#指定chroot_list文件里的用户可以操作local_root以外的目录,需要指定chroot_list_file配置,这里不启用
#chroot_list_enable=YES
# (default follows) 这里要配合chroot_list_enable使用,指定不限制目录的用户,这里不启用
#chroot_list_file=/etc/vsftpd/chroot_list

修改/data/ftp目录操作权限(这里视情况给权限,安装测试时先用777,避免权限问题):
chmod -R 777 /data/ftp

重启ftp服务:
systemctl restart vsftpd

重新登录ftp后就只能在指定的目录:  /data/ftp 下操作了

处理因selinux拦截ls命令报错问题:
先启用selinux
[root@localhost ~]# setenforce 1

ftp> ls #这里已经报错
229 Entering Extended Passive Mode (|||34974|)
150 Here comes the directory listing.
226 Transfer done (but failed to open directory). 

关闭 selinux
[root@localhost ~]# setenforce 0

ftp> ls  #关闭selinux后正常
229 Entering Extended Passive Mode (|||21252|)
150 Here comes the directory listing.
-rw-r--r--    1 1001     50              0 Jun 03 15:09 1.txt
drwxr-xr-x    2 1001     50              6 Jun 03 16:04 boss_in
drwxr-xr-x    2 1001     50              6 Jun 03 16:04 boss_in_bak
226 Directory send OK.
查看selinux有关ftp的规则:
[root@localhost ~]# getsebool -a | grep ftp
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_home_dir --> off
设置启用ftpd_full_access
setsebool -P ftpd_full_access=on

再登录ftp测试,问题解决。这里根据实际情况开启其它规则,如:tftp_home_dir,ftpd_connect_db等。

因配置文件有写权限会导致不能登录:
[root@localhost vsftpd]# ll /etc/vsftpd
total 20
-rw-------. 1 root root    0 Jun  3 23:05 chroot_list
-rw-rw-rw-. 1 root root  125 May 14  2019 ftpusers
-rw-------. 1 root root  361 May 14  2019 user_list
-rw-rw-rw-. 1 root root 5154 Jun  4 01:24 vsftpd.conf
-rw-rw-rw-. 1 root root  348 May 14  2019 vsftpd_conf_migrate.sh
要保证chroot_list,ftpusers,user_list几个文件的其它权限不能有可写的权限2,关于这几个文件,文件头部有详细的使用说明。

增加只能ftp登录的用户,必须要保证/etc/shells里有/sbin/nologin
如:新增只能ftp登录的用户:useradd -d /data/ftp -s /sbin/nologin ttm
设置登录密码:passwd ttm

vi /etc/shells #添加/sbin/nologin,保存退出即可生效
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/sbin/nologin

开启防火墙的情况下,需要开放FTP端口,增加ftp服务,否则远程机无法连接
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值