vsftpd服务部署

前言

本文基于其他学习地方借鉴,基于centos7系统部署vsftpd,实现ftp服务。

vsftpd服务部署

ftp部署可直接rpm包部署也可编译安装部署,通常我们使用rpm包部署,也可直接通过本地镜像yum方式安装

vsftpd服务rpm包部署

准备:vsftpd的rpm包,一般最好是从公司获取,或网上下载;如vsftpd-3.0.3-9.el7.x86_64.rpm
步骤:
	1、服务器命令行执行
		#rpm -ivh vsftpd-3.0.3-9.el7.x86_64.rpm
	2、安装完成后编辑配置文件/etc/vsftpd/vsftpd.conf
		将listen_ipv6=yes修改为listen_ipv6=no,将listen=no改为listen=yes
	3、启动服务命令行执行
		#systemctl start vsftpd
		#systemctl status vsftpd  (查看vsftpd运行情况)
	4、如果服务器有开启防火墙,则在防火墙上添加
	firewall-cmd --add-service=ftp --permanent
	firewall-cmd --reload
	5、使用widows访问:ftp://192.168.10.21验证

功能优化配置

1、使用匿名用户登陆ftp,上传文件,在/var/ftp/upload目录下创建文件夹
	1.1 编辑配置文件/etc/vsftpd/vsftpd.conf 添加一下内容
	anon_other_write_enable=YES
	anon_mkdir_write_enable=YES
	anon_upload_enable=YES
	1.2 再运行setsebool -P ftpd_anon_write on
      mkdir /var/ftp/upload;chmod 777 /var/ftp/upload
	1.3 验证,登陆lftp 192.168.10.21 再upload目录下创建文件夹ceshi
2、修改匿名用户默认根目录为/var/www/html
	2.1 mkdir -p /vat/www/html;touch /var/www/html/aaa.txt
	2.2 编辑/etc/vsftpd/vsftpd.conf配置文件中添加以下内容:
	anon_root=/var/www/html
	allow_writeable_chroot=YES
	2.3 运行:systemctl restart vsftpd
	2.4 在本地计算机上访问ftp://192.168.10.21验证

3、配置用户test密码123456 用户家目录为/usr/local/test
	3.1 useradd -d /usr/local/test -s /sbin/nologin test
		echo 123456 | paswd --stdin test
	3.2 通过本机访问验证
		ftp://test:123456@192.168.10.21/

4、将登陆用户禁锢在家目录中
	4.1 编辑配置文件vsftpd.conf添加chroot_local_user=YES
	4.2 在另一台服务器192.168.10.22上安装lftp工具验证
		rpm -ivh lftp-4.4.8-11.el7.x86_64.rpm
		lftp test:123456@192.168.10.21 登陆后切换目录操作均可成功
		在192.168.10.21服务器上重启vsftpd,重启后由于改了配置,test账户登陆此服务器vsftpd后无法切换目录则达到禁锢目录的作用了

5、使用test用户进行上传下载文件
	setsebool -P ftpd_full_access on
	在192.168.10.22服务器上lftp test:123456@192.168.10.21
	put 上传文件
	get 下载文件

6、实现限制test用户的访问
	在/etc/vsftpd/user_list 添加test用户
	再用test用户登陆就会提示  登陆失败:530permission denied

7、修改ftp默认端口号为6069
	编辑/etc/vsftpd/vsftpd.conf 添加以下内容
	listen_port=6069
	pasv_enable=YES
	pasv_min_port=30000
	pasv_max_port=30000
	pasv_promiscuous=YES
	编辑 vim /etc/services 修改成以下内容
	ftp			6069/
	ftp			6069/
	运行
	firewall-cmd --zone=public --add-port=30000/tcp --permanent
	firewall-cmd --zone=public --add-port=6069/tcp --permanent
	firewall-cmd --reload
8、可以使用root用户登陆ftp
	8.1 编辑/etc/vsftpd/user_list和/etc/vsftpd/ftpusers两个设置文件脚本,将root账户前加上#号变为注释(即让root账户从禁止登陆的用户列表中排除
	8.2 systemctl restart vsftpd
9、开启ftp的日志功能
	9.1 编辑/etc/vsftpd/vsftpd.conf添加以下内容
	xferlog_file=/var/log/vsftpd.log
	log_ftp_protocol=YES
	9.2 重启服务systemctl restart vsftpd
	登陆ftp测试后查看/var/log下面有vsftpd.log这个文件

其他实用案例

1、更改ftp上传目录
	添加的FTP用户默认上传目录是指向“/home/test”下如果需要更改上传目录,需要执行“usermod”命令来更改。
	下面举例将test的上传目录指向:/usr/local下testdir文件夹下:
	[root@localhost local]# mkdir testdir
	更改test目录的属性:
	[root@localhost local]# chown test testdir/
	[root@localhost local]# chgrp ftp testdir/
	[root@localhost local]# chmod 755 testdir/
	[root@localhost local]# ll | grep testdir
	drwxr-xr-x   2 test ftp        4096  4月 18 16:37 testdir
	[root@localhost local]# usermod -d /usr/local/testdir/ test
	这个命令有一个风险,如果test正在线上使用,则该命令并不生效.其实在新建test用户时已经采用-d指定上传目录,这个语句显得多余.
	查看“Directory”的值是否更改成功:
	 [root@localhost local]# finger test
	Login: ipanelftp                        Name: (null)
	Directory: /usr/local/testdir/     Shell: /sbin/nologin
	Never logged in.
	No mail.
	No Plan.
	到这步上传的目录已经更改完成,重新启动vsftp即可:
	[root@localhost /]# /usr/local/sbin/vsftpd &

附上编译安装vsftpd案例

1.安装vsftp2.0.5
将“vsftpd-2.0.5.tar.gz.tar”放到/usr/local目录下执行:
[root@localhost local]# tar -zxvf vsftpd-2.0.5.tar.gz.tar
[root@localhost local]# cd vsftpd-2.0.5
[root@localhost vsftpd-2.0.5]# make
make后将等待编译完毕在往下执行:
[root@localhost vsftpd-2.0.5]# make install
等待安装完毕。
[root@localhost vsftpd-2.0.5]# cp vsftpd.conf /etc
查看安装后的vsftp文件,安装完成。
[root@localhost vsftpd-2.0.5]# cp RedHat/vsftpd.pam /etc/pam.d/ftp
[root@localhost vsftpd-2.0.5]# cd ../sbin/
[root@localhost sbin]# ls
vsftpd
2.添加FTP用户
添加一个test用户属于FTP组
[root@localhost /]# adduser -G ftp -s /sbin/nologin test -d /usr/local/test
****这个地方不能用g,否则test会把ftp当做主属主,-d 表示给新建ftp用户指定上传目录,不采用默认的上传目录,****
查看用户是否添加成功:
[root@localhost /]# more /etc/passwd |grep test
test:x:556:50::/usr/local/test:/sbin/nologin
修改密码为:123456
[root@localhost local]# passwd test
Changing password for user ipanelftp.
New UNIX password: 
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password: 
passwd: all authentication tokens updated successfully.

3.配置vsftpd.conf文件
下面的配置不适合匿名用户登陆,只适用于系统用户也就是/etc/passwd中用户的登录。这个配置没有考虑到安全性方面。
[root@localhost /]# vi /etc/vsftpd.conf
去掉:
local_enable=YES		#说明:在/etc/passwd内的账号才能以实体用户的方式登入vsftpd
write_enable=YES		#说明:允许使用者上传资料
local_umask=022
前面的“#”
在文件末尾加入:
chroot_local_user=YES		#说明:限制用户的访问只能在自己的家目录内
listen=YES		#说明:设定vsftpd 是以 standalone 的方式来启动
4.启动vsftp
前面的配置我们将vsftp设置为采用单独运行模式运行,在运行vsftp需要禁用xinetd方式启动:
[root@localhost ~]# chkconfig vsftpd off
[root@localhost ~]# chkconfig vsftpd --list
显示 vsftp  off。

启动vsftp:
[root@localhost /]# /usr/local/sbin/vsftpd &
如果启动提示:
500 OOPS: could not bind listening IPv4 socket
执行:
[root@localhost /]# /etc/rc.d/init.d/xinetd stop
或者检查一下vsftp是否已经启动,结束其进程:
[root@localhost test]# pkill vsftp

学无止境,有不正之处,敬请指正!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值