Liunx 服务配置笔记(三):FTP 服务安全配置

本篇是 Liunx 的服务配置笔记系列第三篇,这一篇将具体介绍 Red Hat Liunx 下 FTP 服务的安全配置。确切的说,应该叫它 vsFTP,就是文件的上传和下载服务,主要的功能是在服务器与客户端之间进行文件的传输

配置文件的位置

主配置文件:/etc/vsftpd/vsftpd.conf

服务的启动与停止

FTP 的服务名并不叫做 vsftp,而是 vsftpd

修改配置文件过后一定要重启 vsftpd 服务。

service vsftpd status        # 状态
service vsftpd start         # 启动
service vsftpd stop          # 暂停
service vsftpd restart       # 重启

服务的安装

创建挂载目录

For Example:

mkdir -p /mnt/cdrom

挂载光盘

For Example:

mount /dev/cdrom /mnt/cdrom

安装

For Example:

cd /mnt/cdrom/Server
rpm -ivh vsftpd-2.0.5-16.e15i386.rpm

FTP 安全配置

安全配置

禁止匿名用户登录

Default Configuration:

anonymous_enable=YES

默认的值是允许的,这样匿名用户就可以不需要密码就可以登录 FTP 了,这样很不安全,把它修改成 NO 吧。

FTP 安全配置

使用客户端进行验证

验证之前,请重启服务。我们就直接使用 FTP 用户登录吧。

Connection Format:

ftp [host]

若没有成功登录,则会显示

530 Login incorrect.

使用 bye,可以退出 FTP,成功则会显示

221 Googbye

FTP 安全配置

使用户不能登录系统,但可以登录 FTP

首先要创建一个普通的用户,使他不能登录系统,只需设置登录的 shell 就好了。

创建一个新用户,别忘了设置密码,For Example:

useradd -s /sbin/nologin test
passwd test

For Example:

FTP 安全配置

使用客户端进行验证

验证之前,请重启服务。这时候,我们就要使用之前创建的用户进行验证了。

若登录成功,则会显示

230 Login successful

FTP 安全配置

禁止用户写入或者上传文件

Default Configuration:

write_enable=YES

默认是允许用户进行上传或者写入文件,我们可以根据需求进行修改。

FTP 安全配置

使用客户端进行验证

验证之前,请重启服务。这时候,我们仍然使用之前创建的用户进行验证。

无法创建目录,则会显示

550 Permission denied

尝试切换目录,成功则会显示

250 Directory successfully changed.

FTP 安全配置

配置空闲会话中断时间

Default Configuration:

#idle_session_timeout=600

默认的配置时间是十分钟,(默认的单位为秒),我们可以根据需求进行修改。

FTP 安全配置

使用客户端进行验证

验证之前,请重启服务。成功登录之后,我们等待一段时间,在进行操作。

若超时,则会显示

421 Timeout

FTP 安全配置

配置数据连接超时时间

Default Configuration:

#data_connection_timeout=120

默认的配置是两分钟,(默认的单位为秒),我们可以根据需求进行修改。

FTP 安全配置

使用客户端进行验证

此选项需要在传输数据的时候可用,这里不再进行演示。

限制普通用户只能在家目录中

Default Configuration:

#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list

默认是允许用户跳出自己的家目录的,我们可以限制他只能在自己的家目录里。注意,要将用户限制在家目录中,还需要设置 ‘chroot_local_user=YES’。

FTP 安全配置

别忘了将禁止的用户添加至 /etc/vsftpd/chroot_list

使用客户端进行验证

验证之前,请重启服务。这时候,我们仍然使用之前创建的用户进行验证。

不能切换目录,则会显示

550 Failed to changed directory.

FTP 安全配置

设置黑名单

Default Configuration:

userlist_enable=YES

默认情况下就是开启的,若无开启,我们可以根据需求进行修改。

FTP 安全配置

别忘了,将禁止的用户填入 /etc/vsftpd/ftpusers

使用客户端进行验证

验证之前,请重启服务。这时候,我们新建一个用户,然后将其加入黑名单,再进行验证。

新建用户,For Example:

FTP 安全配置

添加至黑名单,For Example:

FTP 安全配置

FTP 安全配置

配置虚拟用户登录

先安装 db4

For Example:

rpm -ivh db4-utils-4.3.29-10.el5.i386.rpm

FTP 安全配置

生成虚拟用户口令库文件

For Example:

vim /etc/vsftpd/login.txt

需要注意的是,该文件的格式如下,单数行为用户名,偶数行为口令。

FTP 安全配置

生成口令库文件,并修改其权限

For Example:

db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db
chmod 600 /etc/vsftpd/login.db

注意要设置权限,只有 root 用户拥有读写权限。

FTP 安全配置

修改虚拟用户的 PAM 文件

For Example:

vim /etc/pam.d/vsftpd

加入如下内容,其他的全部注释掉

auth required pam_userdb.so db=/etc/vsftpd/login
account required pam_userdb.so db=/etc/vsftpd/login

FTP 安全配置

数据文件的地址,记得要写对哦。

建立虚拟用户,并设置权限

For Example:

useradd -d /home/ftp -s /sbin/nologin virtual
chmod 777 /home/ftp
passwd virtual

FTP 安全配置

修改主配置文件

添加如下内容,For Example:

guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd_user_conf

FTP 安全配置

创建配置文件存放目录

此目录一定要与配置文件中的一致,For Example:

mkdir -p /etc/vsftpd_user_conf

为虚拟用户创建配置文件

为虚拟口令库中的每个用户分别创建一个配置文件,配置文件中的配置于匿名用户的配置相差无几。

先创建配置文件,For Example:

vim /etc/vsftpd_user_conf/ftp_test

在配置文件中配置如下内容,

anon_world_readable_only=NO               # 是否允许浏览 FTP 目录和下载
anon_upload_enable=YES                    # 是否允许上传
write_enable=YES                          # 是否有写权限
download_enable=YES                       # 是否允许下载文件
anon_mkdir_write_enable=YES               # 是否允许建立和删除目录
anon_other_write_enable=YES               # 是否允许改名和删除文件
local_root=/var/ftp/share/123
# 指定虚拟用户在系统用户下面的路径,限制虚拟用户的家目录,虚拟用户登录后的主目录。

FTP 安全配置

最后只需创建一下虚拟用户登录后的主目录,For Example:

mkdir -p /var/ftp/share/123

登录测试

这时候就要使用虚拟用户口令库文件里的用户名和密码来登录 FTP 服务器

FTP 安全配置

亲!!! 听说给作者打赏一杯咖啡钱,会给自己带来好运哦!