服务器开发学习笔记(三)—— vsfptd安装(ftp服务器)

1、安装vsfptd

1.1、安装 VSFTPD
使用 yum 安装 
vsftpd:

yum install vsftpd -y

1.2、启动 VSFTPD0
安装完成后,启动 FTP 服务:
/bin/systemctl start vsftpd.service

启动后,可以看到系统已经
监听了 21 端口:
netstat -nltp | grep 21

此时,访问 ftp://192.168.5.129 可浏览机器上的 /var/ftp 目录了。

2、配置 FTP 权限

了解 VSFTP 配置
vsftpd 的配置目录为 /etc/vsftpd,包含下列的配置文件:

vsftpd.conf 为主要配置文件

ftpusers 配置禁止访问 FTP 服务器的用户列表

user_list 配置用户访问控制
阅读上述配置以了解更多信息。如果您准备好了,点击下一步开始修改配置来设置权限。

阻止匿名访问和切换根目录0
匿名访问和切换根目录都会给服务器带来
安全风险
,我们把这两个功能关闭。

编辑vi /etc/vsftpd/vsftpd.conf
找到下面两处配置
并修改:

# 禁用匿名用户
anonymous_enable=NO

# 禁止切换根目录
chroot_local_user=YES

编辑完成后,,重新启动 FTP 服务,如:
/bin/systemctl restart vsftpd.service

创建 FTP 用户0
创建一个用户 ftpuser useradd ftpuser

为用户 ftpuser 设置密码 :echo "hyznrj" | passwd ftpuser --stdin

限制该用户仅能通过 FTP 访问0
限制用户 ftpuser 只能通过 FTP 访问服务器,而不能直接登录服务器:
usermod -s /sbin/nologin ftpuser

为用户分配主目录0
为用户 ftpuser 创建
主目录
并约定:

/data/ftp 为主目录, 该目录不可上传文件
/data/ftp/pub 文件只能上传到该目录下

mkdir -p /data/ftp/pub

创建登录欢迎文件 :
echo "Welcome to use FTP service." > /data/ftp/welcome.txt

设置访问权限:
chmod a-w /data/ftp && chmod 777 -R /data/ftp/pub

设置为用户的主目录:
usermod -d /data/ftp ftpuser

3、访问 FTP 服务

根据您个人的工作环境,选择一种方式来访问已经搭建的 FTP 服务

通过 Windows 资源管理器访问

Windows 用户可以复制下面的

链接

到资源管理器的地址栏访问:

ftp://ftpuser:Password@ <你的CVM IP 地址>

FTP 客户端工具众多,下面推荐两个常用的:

  • WinSCP - Windows 下的 FTP 和 SFTP 连接客户端
  • FileZilla - 跨平台的 FTP 客户端,支持 Windows 和 Mac

查看vsftp 打开vsftp 关闭vsftp 配置vsftp

vsftp初学者指南:http://www.linuxsir.org/main/node/152

linux FTP 设置技巧:http://www.5dlinux.com/article/9/2008/linux_16836.html

查看vsftp是否开启:

pgrep vsftpd

关闭vsftp:

pkill vsftpd

pgrep vsftpd

service vsftpd stop

开启vsftpd:

service vsftpd start

修改vsftpd配置文件:

cd /etc/vsftpd/

cp vsftpd.conf vsftpd.conf.20110622.bak

vi vsftpd.conf

 

常见问题:

状态:    正在连接 192.168.1.6:21...

状态:    连接建立,等待欢迎消息...

响应:    220 (vsFTPd 2.2.2)

命令:    USER ftp

响应:    331 Please specify the password.

命令:    PASS ***

响应:    230 Login successful.

命令:    SYST

响应:    215 UNIX Type: L8

命令:    FEAT

响应:    211-Features:

响应:     EPRT

响应:     EPSV

响应:     MDTM

响应:     PASV

响应:     REST STREAM

响应:     SIZE

响应:     TVFS

响应:     UTF8

响应:    211 End

命令:    OPTS UTF8 ON

响应:    200 Always in UTF8 mode.

状态:    已连接

状态:    读取目录列表...

命令:    PWD

响应:    257 "/"

命令:    TYPE I

响应:    200 Switching to Binary mode.

命令:    PASV

响应:    227 Entering Passive Mode (192,168,1,6,23,8).

命令:    LIST

错误:    连接超时

错误:    读取目录列表失败

 

该错误是由iptables的配置引起的,临时的解决方法是执行如下命令:

 

[root@localhost soft]# modprobe ip_nat_ftp

 

再次登陆列表正常啦!

 

但当你重新启动服务器则iptables规则失效,又会出现相同的情况,所以我们需要修改/etc/sysconfig/iptables-config文件,

 

[root@localhost soft]# vi /etc/sysconfig/iptables-config

 

# Load additional iptables modules (nat helpers)

#   Default: -none-

# Space separated list of nat helpers (e.g. 'ip_nat_ftp ip_nat_irc'), which

# are loaded after the firewall rules are applied. Options for the helpers are

# stored in /etc/modprobe.conf.

IPTABLES_MODULES=""

 

# Unload modules on restart and stop

#   Value: yes|no,  default: yes

# This option has to be 'yes' to get to a sane state for a firewall

# restart or stop. Only set to 'no' if there are problems unloading netfilter

# modules.

IPTABLES_MODULES_UNLOAD="yes"

.....

IPTABLES_MODULES_UNLOAD="yes"的意义:每次iptables停止或者重启都会Unload modules

IPTABLES_MODULES=""的意义:每次防火墙规则应用以后加载的模块

我们需要把IPTABLES_MODULES=""修改为:IPTABLES_MODULES="ip_nat_ftp"

猜你喜欢

转载自blog.csdn.net/AlphonesEric/article/details/89073033