Centos7安装vsftp并配置

Centos7安装vsftp并配置

  • 说明

本次测试基于在centos7中使用vsftp时总是遇到各种问题,测试对所遇到的问题进行逐一测试并对其中的问题进行描述,为以后使用vsftp积累经验并就部分问题进行解答。此文中使用的用户、端口等均为个人测试使用,在实际中需要测试端口是否已被使用。

  • 测试环境

本次测试使用的是阿里云服务器,使用的系统为centos7.8。初始防火墙是关闭的,selinux默认也是未启用的(disabled)。

  • 安装vsftp并配置
  1. 申请阿里云服务器

此处省略申请过程。此处需要注意的是申请的云服务器有两个IP地址,一个是公有IP地址,一个是私有IP地址,我们在外网连接的情况下可以使用公有IP地址进行访问。测试使用,配置可以选择最低配。

  1. 云服务器安全组配置

此处需要将我们计划测试的所有端口均添加到此安全组,不然公有IP地址无法访问。我添加了21、8021、8022、4000/40100的配置,为测试准备基础环境。

  1. ssh修改端口号(临时添加)
  1. 修改sshd_config文件

vim /etc/ssh/sshd_config

放开Port 22,然后添加Port 8022,别的配置不变。

  1. 修改ssh_config文件

vim /etc/ssh/ssh_config

放开Port 22,然后添加Port 8022,别的配置不变。

  1. 测试登陆

配置修改完成后,使用systemctl restart sshd重启ssh服务。然后使用8022端口登陆ssh,测试是否能正常登陆,如果能正常登陆,说明没有问题。如果不能登陆,还可以用22端口继续登陆,查看配置是否修改正确。

  1. 关闭22端口

如果8022端口测试正常,就可以修改sshd_config、ssh_config文件,继续将Port 22注释掉,然后systemctl restart sshd重启ssh服务,测试22端口是否能登陆,如果不能登陆,说明修改完成。

  1. 安装vsftp

使用yum安装即可,可以使用yum install vsftpd -y自动安装。

  1. 测试安装是否正常

useradd ftpceshi -d /ftp_ceshi -g ftp -s /sbin/nologin

passwd ftpceshi

其中,ftpceshi是ftp用户名,-d -d /ftp_ceshi指定了用户的默认目录,-g ftp代表用户所属组,-s /sbin/nologin代表此用户不能登陆系统,只能登陆ftp。

使用ftpceshi用户测试登陆ftp是否正常,如果能正常登陆则表示正常。

  1. 修改vsftp默认端口

vim /etc/vsftpd/vsftpd.conf

添加如下配置:

listen_port=8021

pasv_enable=YES

pasv_min_port=40000

pasv_max_port=40100

pasv_promiscuous=YES

配置说明:

listen_port代表修改后的端口号;

pasv_enable代表被动模式;

pasv_min_port和pasv_max_port代表被动连接时最小端口号和最大端口号;

pasv_promiscuous此选项激活时,将关闭PASV模式的安全检查。该检查确保数据连接和控制连接是来自同一个IP地址。小心打开此选项。此选项唯一合理的用法是存在于由安全隧道方案构成的组织中。默认值为NO。(因为我用的是云服务器,公有IP和私有IP不一致,所以没办法只能启动此选项,如果IP保持一致,则此项不用配置)。

vim /etc/services

修改如下配置

ftp             8021/tcp

ftp             8021/udp

默认端口修改完成后,重启vsftpd服务(systemctl restart vsftpd),然后使用ftpceshi用户测试8021端口登陆,是否能正常登陆,如果能正常登陆则表是正常。还需测试21端口登陆测试,此时21端口已经无法登陆。

  1. 关闭匿名登陆(这一步可以关闭默认用户登陆)

vim /etc/vsftpd/vsftpd.conf

修改如下配置:

anonymous_enable=NO

配置说明:

此配置会关闭匿名登陆。

重启vsftpd服务(systemctl restart vsftpd),然后使用默认ftp用户测试登陆,是否能正常登陆,如果不能登陆则表是正常。

  1. 配置ftp用户只能访问当前目录

vim /etc/vsftpd/vsftpd.conf

添加如下配置:

chroot_local_user=YES

allow_writeable_chroot=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

配置说明:

chroot_local_user #是否将所有用户限制在主目录,YES为启用 NO禁用。(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到要目录之外的);

allow_writeable_chroot,允许受限用户的写权限;

chroot_list_enable #是否启动限制用户的名单 YES为启用  NO禁用(包括注释掉也为禁用);

chroot_list_file=/etc/vsftpd/chroot_list #是否限制在主目录下的用户名单,至于是限制名单还是排除名单,这取决于chroot_local_user的值。chroot_local_user总是一个全局性的设定,其为YES时,全部用户被锁定于主目录,其为NO时,全部用户不被锁定于主目录。此名单中的用户为例外情况。此文件可以自定义路径和名称,此文件需要手动创建。

重启vsftpd服务(systemctl restart vsftpd),然后使用ftpceshi用户登陆,查看是否能够访问别的路径。

  1. 其它配置

vim /etc/vsftpd/vsftpd.conf

修改如下配置:

listen=YES

listen_ipv6=NO

配置说明:

listen=YES   vsftp不以独立的服务启动,通过xinetd服务管理,建议改为YES;

listen_ipv6=NO  启用IPv6监听。

重启vsftpd服务(systemctl restart vsftpd)。

  1. 创建ftp上传、下载脚本

脚本内容如下:

#!/bin/bash

ftp -n<<!

open 116.62.36.159 8021

user ftpceshi ftpceshi123

binary

hash

cd /ftp_ceshi

lcd /home/ftp

prompt

mkdir `date +"%Y%m%d"`

cd `date +"%Y%m%d"`

mput *.dat

mget *.dat

close

bye

!

说明:

脚本中的内容可以通过百度自行了解ftp的这些命令。ftp的上传和下载一定要有这种理解,上传是指上传到ftp服务器的内容,下载的是指从ftp服务器去下载,主体是你的服务器,而不是ftp服务器。

  1. 创建定时任务实现实时上传、下载

在crontab -e中进行编辑:

* * * * * /home/ftp/ftpput.sh &> /home/ftp/ftpput.log && rm -rf /home/ftp/*.dat

说明:

/home/ftp/ftpput.sh为脚本路径,/home/ftp/ftpput.log为日志路径,rm -rf /home/ftp/*.dat为在ftp上传后清除原始文件(避免重复上传)。定时任务说明自行百度。

  1. 查看ftp上传、下载日志

在/etc/vsftpd/vsftpd.conf中查看xferlog_enable=YES这个参数是否配置,如果配置了则是有上传下载日志的,然后查看xferlog_file这个参数,查看日志位置。

  • 开启防火墙(临时添加)

防火墙开启配置:

systemctl start firewalld

systemctl enable firewalld

firewall-cmd --permanent --add-port=8022/tcp

firewall-cmd --permanent --add-port=8021/tcp

firewall-cmd --permanent --add-port=40000-40100/tcp

firewall-cmd --permanent --remove-port=8021/tcp

firewall-cmd --reload

说明:

systemctl start firewalld启动防火墙;

systemctl enable firewalld开机自启动防火墙;

firewall-cmd --permanent --add-port=8022/tcp开通8022端口,后面两条类似;

firewall-cmd --permanent --remove-port=8021/tcp删除8021端口(从防火墙开通策略中删除);

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.3/32" accept'这个在上面没设置,这个是关于开通与192.168.1.3服务器互通。

firewall-cmd --reload重新加载防火墙配置。

  • 备注

查看ssh端口:netstat -tunlp | grep "ssh";查看ftp端口:netstat -tunlp | grep "ftp"。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值