linux

位置:IT落伍者 >> linux >> 浏览文章

redhat linux 9.0 VSFTP配置大权


发布日期:2020年12月15日
 
redhat linux 9.0 VSFTP配置大权

VSFTP—安全与效能兼备的ftp 服务器

VSFTP 概述

FTPfile transfer protocol这是档案传输的通讯协议也是一般最常用来传送档案的方式读者在使用RedHat 的时候可能会感受到ftp server 有一些改变第一就是ftp server 只剩下vsftp原有的wuftp 等都没放入﹔第二就是vsftp 从XINETD 中独立出来并将设定档从/etc/nf 之中移到/etc/vsftpd/nf

为什么做这样的改变?可以想见的是vsftp 已有独立运作的能力不需要XINETD 来做更进一步的管控并且类似sendmailhttpdsshsamba 等将设定文件的放入/etc 下独立的目录

FTP 分为两类一种为PORT FTP也就是一般的FTP﹔另一类是PASVFTP分述如下 PORT FTP

这是一般形式的FTP首先会建立控制频道默认值是port 也就是跟

port 建立联机并透过此联机下达指令第二由FTP server 端会建立数据

传输频道默认值为也就是跟port 建立联机并透过port 作数据的

传输

PASV FTP

跟PORT FTP 类似首先会建立控制频道默认值是port 也就是跟

port 建立联机并透过此联机下达指令第二会由client 端做出数据传输

的请求包括数据传输port 的数字

这两者的差异为何?PORT FTP 当中的数据传输port 是由FTP server 指定

而PASV FTP 的数据传输port 是由FTP client 决定通常我们使用PASV FTP

是在有防火墙的环境之下透过client 与server 的沟通决定数据传输的port

范例

直接启动VSFTP 服务

这个范例是套用RedHat 的预设范例直接启动vsftp

[root@relay vsftpd]# /sbin/service vsftpd start

Starting vsftpd for vsftpd: OK ]

更换port 提供服务将预设的port 更换为

为了安全或是以port 来区隔不同的ftp 服务我们可能会将ftp port 改为

之外的port那么可参考以下步骤

Step 修改/etc/vsftpd/nf

新增底下一行

listen_port=

Step 重新启动vsftpd

[root@home vsftpd]# /sbin/service vsftpd restart

Shutting down vsftpd: OK ]

Starting vsftpd for vsftpd: OK ]

特定使用者peterjohn 不得变更目录

使用者的预设目录为/home/username若是我们不希望使用者在ftp 时能够

切换到上一层目录/home则可参考以下步骤

Step 修改/etc/vsftpd/nf

将底下三行

#chroot_list_enable=YES

# (default follows)

#chroot_list_file=/etc/vsftpdchroot_list

改为

chroot_list_enable=YES

# (default follows)

chroot_list_file=/etc/vsftpd/chroot_list

Step 新增一个档案: /etc/vsftpd/chroot_list

内容增加两行

peter

john

Step 重新启动vsftpd

[root@home vsftpd]# /sbin/service vsftpd restart

Shutting down vsftpd: OK ]

Starting vsftpd for vsftpd: OK ]

若是peter 欲切换到根目录以外的目录则会出现以下警告

ftp> cd /home

Failed to change directory

取消anonymous 登入

若是读者的主机不希望使用者匿名登入则可参考以下步骤

Step 修改/etc/vsftpd/nf

anonymous_enable=YES

改为

anonymous_enable=NO

Step 重新启动vsftpd

[root@home vsftpd]# /sbin/service vsftpd restart

Shutting down vsftpd: OK ]

Starting vsftpd for vsftpd: OK ]

安排欢迎话语

若是我们希望使用者在登入时能够看到欢迎话语可能包括对该主机的

说明或是目录的介绍可参考以下步骤

首先确定在/etc/vsftpd/nf 当中是否有底下这一行

dirmessage_enable=YES

RedHat 的默认值是有上面这行的

接着在各目录之中新增名ssage 的档案再这边假设有一个使用

者test且此使用者的根目录下有个目录名为abc那首先我们在/home/test

之下新ssage内容如下

Hello~ Welcome to the home directory

This is for test only

接着在/home/test/abc 的目录下新ssage内容如下

Welcome to abcs directory

This is subdir

那么当使用者test 登入时会看到以下讯息

Hello~ Welcome to the home directory

This is for test only

若是切换到abc 的目录则会出现以下讯息

Welcome to abcs directory

This is subdir

对于每一个联机以独立的process 来运作

一般启动vsftp 时我们只会看到一个名为vsftpd 的process 在运作但若

是读者希望每一个联机都能以独立的process 来呈现则可执行以下步骤

Step 修改/etc/vsftpd/nf

新增底下一行

setproctitle_enable=YES

Step 重新启动vsftpd

[root@home vsftpd]# /sbin/service vsftpd restart

Shutting down vsftpd: OK ]

Starting vsftpd for vsftpd: OK ]

使用ps ef 的指令可以看告不同使用者联机的情形如下图所示

[root@home vsftpd]# ps ef|grep ftp

root : pts/ :: vsftpd: LISTENER

nobody : ? :: vsftpd: :

connected

test : ? :: vsftpd: /test:

IDLE

nobody : ? :: vsftpd: :

connected

test : ? :: vsftpd: /test:

IDLE

root : pts/ :: grep ftp

[root@home vsftpd]#

限制传输档案的速度本机的使用者最高速度为KBytes/s匿名登入

者所能使用的最高速度为KBytes/s

Step 修改/etc/vsftpd/nf

新增底下两行

anon_max_rate=

local_max_rate=

Step 重新启动vsftpd

[root@home vsftpd]# /sbin/service vsftpd restart

Shutting down vsftpd: OK ]

Starting vsftpd for vsftpd: OK ]

在这边速度的单位为Bytes/s其中anon_max_rate 所限制的是匿名登入的

使用者而local_max_rate 所限制的是本机的使用者VSFTPD 对于速度的限

范围大概在%到%之间也就是我们限制最高速度为KBytes/s

但实际的速度可能在KBytes/s 到KBytes/s 之间当然若是频宽不足

数值会低于此限制

针对不同的使用者限制不同的速度假设test 所能使用的最高速度为

KBytes/stest 所能使用的最高速度为KBytes/s

Step 修改/etc/vsftpd/nf

新增底下一行

user_config_dir=/etc/vsftpd/userconf

Step 新增一个目录/etc/vsftpd/userconf

mkdir /etc/vsftpd/userconf

Step 在/etc/vsftpd/userconf 之下新增一个名为test 的档案

内容增加一行

local_max_rate=

Step 在/etc/vsftpd/userconf 之下新增一个名为test 的档案

内容增加一行

local_max_rate=

Step 重新启动vsftpd

[root@home vsftpd]# /sbin/service vsftpd restart

Shutting down vsftpd: OK ]

Starting vsftpd for vsftpd: OK ]

建置一个防火墙下的ftp server使用PORT FTP mode预设的ftp

port: 以及ftp data port:

启动VSFTPD 之后执行以下两行指令只允许port 以及port 开放

其它关闭

iptables A INPUT p tcp m multiport dport j ACCEPT

iptables A INPUT p tcp j REJECT rejectwith tcpreset

建置一个防火墙下的ftp server使用PORT FTP modeftp port:

以及ftp data port:

Step 执行以下两行指令只允许port 以及port 开放其它关闭

iptables A INPUT p tcp m multiport dport j ACCEPT

iptables A INPUT p tcp j REJECT rejectwith tcpreset

Step 修改/etc/vsftpd/nf

新增底下两行

listen_port=

ftp_data_port=

Step 重新启动vsftpd

[root@home vsftpd]# /sbin/service vsftpd restart

Shutting down vsftpd: OK ]

Starting vsftpd for vsftpd: OK ]

在这边要注意 两个例子中ftp client(如cuteftp)的联机方式不能

够选择passive mode否则无法建立数据的联机也就是读者可以连上ftp

server但是执行lsget 等等的指令时便无法运作

建置一个防火墙下的ftp server使用PASS FTP modeftp port:

以及f               

上一篇:Linux下架设FTP

下一篇:中软Linux办公自动化系统解决方案