理论教育 Linux操作系统:FTP站点配置实例

Linux操作系统:FTP站点配置实例

时间:2023-11-25 理论教育 版权反馈
【摘要】:发起FTP 请求的用户在请求到达服务器端时, 先要进行身份认证, 判断身份合法性才能连接访问服务器上的文件。③匿名用户操作FTP 实例。新建目录, 且对FTP 用户不能是可写的, 否则不能作为主目录。通过为每个虚拟账号创建一个配置文件来设置不同虚拟账号的权限、 目录, 将大大方便FTP 的管理。⑤重启VSFTPD 服务, 使用虚拟FTP 账户访问进而测试是否成功。

Linux操作系统:FTP站点配置实例

1. 在本机配置好yum 源的基础上安装FTP 服务器和客户端程序

2. 配置FTP 服务器

(1) 如何找到配置文件。

不同发行版系统下FTP 服务配置文件所在路径或许有差异, 有经验的用户会去其安装目录或系统/etc 目录下查看, 没经验的用户实际上如果熟悉Shell 命令, 查找也是有据可寻的。

根据上面的方法, 都能查到FTP 的主配置文件为/etc/vsftpd/vsftpd.conf。

(2) 解读配置文件的多种方法如下。

①man vsftpd.conf: 利用系统的man 手册较为系统的解读。

②more /etc/vsftpd.conf: 直接查看配置文件, 里面会有大量的注释掉的参数。

③grep-v “^#” /etc/vsftpd.conf: 排除掉注释看主要的配置参数。

(3) 登录下载操作举例。

发起FTP 请求的用户在请求到达服务器端时, 先要进行身份认证, 判断身份合法性才能连接访问服务器上的文件。 而用户使用的身份可以是服务器本地账户、 匿名用户或虚拟用户。

试在系统账户文件中查询FTP 用户的家目录:

这条信息说明FTP 用户是/sbin/nologin 的, 该账户不支持本地登录, 但可以用于FTP登录。

查看FTP 账户主目录的权限, 并向其目录下写入一个测试文件:

3. 配置不同用户登录访问FTP 服务器

(1) 匿名用户操作FTP。

匿名用户anonymous 不需输入密码即可登录FTP, 用户可执行下载操作, 但不能进行上传操作? 匿名用户默认主目录是FTP 用户的家目录/var/ftp。 因为Linux 系统本身为了安全不允许对用户开放FTP 主目录的写权限, 即使在配置文件中设置write_ enable=YES,修改FTP 主目录权限chmod 777 /srv/ftp, 连接、 上传操作往往会被服务器拒绝。 可行的操作是在主目录下新建一个用于上传的目录, 并设置匿名登录的用户拥有写入权限。

①设置匿名用户可上传权限。

修改配置文件/etc/vsftpd/vsftpd.conf, 设置以下参数:

②家目录下新建可上传目录。

设置anonyfd 目录所有者为FTP 用户, anonymous 登录时会转为FTP 用户身份, 也就对其具有RWX 权限。

③匿名用户操作FTP 实例。

注意上述操作中, 最后上传成功是基于两点: 一是匿名用户对FTP 服务器有写入权限; 二是在文件系统中, 匿名用户现在的身份是FTP 用户, 对anonyfd 有写入权限。

④修改匿名用户登录的主目录。

新建目录, 且对FTP 用户不能是可写的, 否则不能作为主目录。 准备文件和文件夹情况如下:

在配置文件/etc/vsftpd/vsftpd.conf 中添加设置:

若目录权限、 配置文件设置都完成了, 却不能上传, 一定要考虑检查SELINUX 的问题, 具体设置如下。

再次强调的是, 为了安全起见, 不建议开放匿名用户的写入权限。 重启服务后, 测试访问情况。

(2) 本地用户操作FTP。(www.daowen.com)

/etc/vsftpd/vsftpd.conf 中配置如下:

添加两个本地用户user 和user2, user2 用户名写入/etc/vsftpd/chroot_list:

作为本地用户user 和user2 都有权限登录FTP, 登录后都可执行ls 命令访问FTP 主目录(默认为用户家目录)。 两用户还可执行上传和下载操作, 但只有user2 登记在了白名单中, 所以只有user2 可切换到其他目录。 两用户主目录权限如下:

①本地用户user 登录FTP 执行效果如下所示。

user 的登录被拒绝, 与后面user2 的登录成功相比较, 我们可以总结出FTP 允许本地用户访问的情况如下:

•若主目录开放了用户对其的写权限, 且用户被限定在主目录中不允许切换, 就拒绝访问;

•若主目录开放了用户对其的写权限, 且用户没有被限定在主目录中不允许切换, 就允许访问。

②本地用户user2 登录FTP 执行效果如下所示。

上述下载操作报错是因为user2 对当前其所在的目录没有写入权限, 用命令可查看lsld /etc/vsftpd/: drwxr-xr-x.2 root root 150 10 月19 10: 43 /etc/vsftpd/

③修改本地用户的FTP 主目录。

从前面user 和user2 的使用看, 默认的配置存在要么连接不上, 要么设置过于宽松。所以, 给每个用户单独设置主目录, 并单独设置用户的配置是更好的方式。

(3) 虚拟用户操作FTP。

虚拟用户不能本地登录只能用于登录FTP 服务器, 当存在很多虚拟用户时, 不需要在操作系统上为每个虚拟用户新建一个对应的非登录的本地用户, 只需要建一个即可。 通过为每个虚拟账号创建一个配置文件来设置不同虚拟账号的权限、 目录, 将大大方便FTP 的管理。

①建立虚拟用户的账号数据库

先建立一个包含用户账户和密码的普通文件。

通过数据库工具包db_load 把文档文件指定以hash 字符格式转为DB 数据库:

-f 选项用于指定数据源文件;

-T 选项允许非Berkeley DB 的应用程序使用从文本格式转换的DB 数据文件, 此选项必须带-t 参数, “-t hash”指定了读取数据文件的基本方法。

②创建虚拟用户映射的系统用户。

如果要让两个虚拟用户对应不同的家目录, 需要在/home/virftp 目录下建子目录, 然后在个人配置文件中指定主目录。

③建立支持虚拟用户的PAM 认证文件。

④设置主配置文件和虚拟用户配置文件。

在vsftpd.conf 文件中添加配置支持。

在user_config_dir 指定的/etc/vsftpd/userconf 里新建虚拟用户的个人配置文件。

⑤重启VSFTPD 服务, 使用虚拟FTP 账户访问进而测试是否成功。

把第④步中个人配置文件中的主目录语句的注释符号“#”取消, 测试用户登录后会进入自己的主目录。

为了安全, 删除有明文口令信息的账户原文件:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈