一、前述

 本来公司用的是window是的服务器,突然经常出现问题,现在需要搭建linux环境。必定linux相对稳定一点。

二、具体

1、显示如下图则表示已安装 vsftp软件。如果未显示则需要安装vsftpd软件。

 

如果没有则通过yum进行安装,命令如下:

yum install -y vsftpd

2、安装完成之后

进入到ftp的根目录默认是/etc/vsftpd/文件中进行配置

/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置文件

/etc/vsftpd/ftpusers:用于指定哪些用户不能访问FTP 服务器。  黑名单

/etc/vsftpd/user_list:指定允许使用vsftpd 的用户列表文件。  白名单

/etc/vsftpd/chroot_list:指定允许使用vsftpd 的用户列表文件。  控制名单下的目录能不能离开ftp根目录

vsftpd.conf具体配置如下:

anonymous_enable=NO  #允许匿名用户访问为了安全选择关闭
local_enable=YES   # 允许本地用户登录
write_enable=YES   # 是否允许写入
local_umask=022  # 本地用户上传文件的umask
dirmessage_enable=YES #为YES则进入目录时显示此目录下由message_file选项指定的文本文件(,默认为.message)的内容
xferlog_enable=YES #开启日志

xferlog_std_format=YES #标准格式
connect_from_port_20=YES
xferlog_file=/var/log/xferlog   #ftp日志目录

idle_session_timeout=6000 #设置客户端连接时间

data_connection_timeout=1200 #设置数据连接时间 针对上传,下载
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list #设置为YES则下面的控制有效
chroot_list_enable=YES #若为NO,则记录在chroot_list_file所指定的文件(默认是/etc/vsftpd.chroot_list)中的用户将被chroot在登录后所在目录中,无法离开.如果为YES,则所记录的用户将不被chroot.这里YES.
chroot_local_user=YES
userlist_deny=NO #若设置为YES则记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户将无法login,并且将检察下面的userlist_deny选项
userlist_enable=YES #若为NO,则仅接受记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户的login请求.若为YES则不接受这些用户的请求.
userlist_file=/etc/vsftpd/user_list #白名单
chroot_list_enable=YES
local_root=/var/ftp/pub #根目录
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES


3、添加用户

 使用以下命令 创建myftp用户,并指定默认目录

useradd -d /website/test myftp

因为ftp用户是共用的linux用户。使用passwd 进行密码修改,连续两次输入密码。

//修改密码
passwd myftp

注意:如果你的密码比较简单的话,系统会提示密码过于简单,不过不必在意,也是可以设置成功的。不过为了安全考虑,还是建议输入一个符合要求的密码。

 因为是公用的linux用户,为了安全考虑限定用户myftp不能telnet,只能myftp

usermod -s /sbin/nologin myftp

也可以使用以下命令,使myftp回复正常:

usermod -s /sbin/bash myftp

使用以下命令更改默认根目录:

usermod -d /website/test myftp

 如果这个用户创建错误,可以删除用户重新创建:

userdel -r myftp 

 新建用户并不能够访问,添加到user_list和chroot_list中去,才可以访问。

4、关闭防火墙 

centoos 7操作为systemctl stop firewalld.service 

centoos 6操作位service stop iptables;

5.启动ftp服务器

cetoos 7操作为/bin/systemctl restart  vsftpd.service

centoos 6操作为 service vsftpd restart

6.赋权,将ftp指定的根目录赋权为777权限

chmod 777 /var/ftp/pub

7.检查SElinux状态并关闭

 getsebool -a|grep ftp

若centoos7到此结束 用ftp工具即可访问  或者本地ftp 服务器测试  通过rpm  -ivh rpm..安装包  安装ftp客户端配置。

若centoos 6 则在设置几个权限:

通过:setsebool httpd_enable_ftp_server 1 设置成如下状态即可。通过 getsebool -a|grep ftp查看。

至此ftp安装完成。

在我这个项目中存在需要使用两个不同的ftp端口的问题。到网上查找了以下,结合自己测试,整理出两种可行的方案。

方案1:

复制vsftpd.conf 一份,然后把里面的端口改成你自己想要的端口,其他内容不变。

重启vsftpd 服务, 使用netsat -ntlp 查看情况 。

netstat -ntlp 

 

方案2:

 使用端口转发的方式实现:

iptables -t nat -A PREROUTING -p tcp -d 192.168.2.121 --dport 21 -j DNAT --to 192.168.2.121:2121

如此简单。

两种方式各有优缺点,个人根据自己需要选择。

参考资料:https://www.cnblogs.com/LHWorldBlog/p/8516837.html

Logo

更多推荐