linux 配置 ftp服务

Redhat9 配置FTP


2、编辑/etc/vsftpd/vsftpd.conf文件
修改端口


Step1. 修改/etc/vsftpd/vsftpd.conf 
`新增底下一行 
listen_port=2121 
Step2. 重新启动vsftpd 
[root@home vsftpd]# /sbin/service vsftpd restart 
Shutting down vsftpd: OK ] 
Starting vsftpd for vsftpd: OK ] 
特定使用者peter、john 不得变更目录 
使用者的预设目录为/home/username,若是我们不希望使用者在ftp 时能够 
切换到上一层目录/home,则可参考以下步骤。 
Step1. 修改/etc/vsftpd/vsftpd.conf 
将底下三行 
#chroot_list_enable=YES 
# (default follows) 
#chroot_list_file=/etc/vsftpd.chroot_list 
改为 
chroot_list_enable=YES 
# (default follows) 
chroot_list_file=/etc/vsftpd/chroot_list  //需新增此文件
Step2. 新增一个档案: /etc/vsftpd/chroot_list 
内容增加两行: 
peter 
john 
Step3. 重新启动vsftpd 
[root@home vsftpd]# /sbin/service vsftpd restart 
Shutting down vsftpd: OK ] 
Starting vsftpd for vsftpd: OK ] 
若是peter 欲切换到根目录以外的目录,则会出现以下警告: 
ftp>; cd /home 
550 Failed to change directory. 
取消anonymous 登入 
若是读者的主机不希望使用者匿名登入,则可参考以下步骤。 
Step1. 修改/etc/vsftpd/vsftpd.conf 
将 
anonymous_enable=YES 
改为 
anonymous_enable=NO 


安排欢迎话语 
若是我们希望使用者在登入时,能够看到欢迎话语,可能包括对该主机的 
说明,或是目录的介绍,可参考以下步骤。 
首先确定在/etc/vsftpd/vsftpd.conf 当中是否有底下这一行 
dirmessage_enable=YES 
RedHat9 的默认值是有上面这行的。 
接着,在各目录之中,新增名为.message 的档案,再这边假设有一个使用 
者test1,且此使用者的根目录下有个目录名为abc,那首先我们在/home/test1 
之下新增.message,内容如下: 
Hello~ Welcome to the home directory 
This is for test only... 
接着,在/home/test1/abc 的目录下新增.message,内容如下: 
Welcome to abc‘s directory 
This is subdir... 
那么,当使用者test1 登入时,会看到以下讯息: 
230- Hello~ Welcome to the home directory 
230- 
230- This is for test only... 
230- 
若是切换到abc 的目录,则会出现以下讯息: 
250- Welcome to abc‘s directory 
250- 
250- This is subdir ... 


对于每一个联机,以独立的process 来运作 
一般启动vsftp 时,我们只会看到一个名为vsftpd 的process 在运作,但若 
是读者希望每一个联机,都能以独立的process 来呈现,则可执行以下步骤。 
Step1. 修改/etc/vsftpd/vsftpd.conf 
新增底下一行 
setproctitle_enable=YES 
Step2. 重新启动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 2090 1 0 16:41 pts/0 00:00:00 vsftpd: LISTENER 
nobody 2120 2090 0 17:18 ? 00:00:00 vsftpd: 192.168.10.244: 
connected 
test1 2122 2120 0 17:18 ? 00:00:00 vsftpd: 192.168.10.244/test1: 
IDLE 
nobody 2124 2090 0 17:19 ? 00:00:00 vsftpd: 192.168.10.244: 
connected 
test2 2126 2124 0 17:19 ? 00:00:00 vsftpd: 192.168.10.244/test2: 
IDLE 
root 2129 1343 0 17:20 pts/0 00:00:00 grep ftp 
[root@home vsftpd]# 
限制传输档案的速度:本机的使用者最高速度为200KBytes/s,匿名登入 
者所能使用的最高速度为50KBytes/s 
Step1. 修改/etc/vsftpd/vsftpd.conf 
新增底下两行 
anon_max_rate=50000 
local_max_rate=200000 
Step2. 重新启动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 对于速度的限 
制,范围大概在80%到120%之间,也就是我们限制最高速度为100KBytes/s, 
但实际的速度可能在80KBytes/s 到120KBytes/s 之间,当然,若是频宽不足 
时,数值会低于此限制。 
建置一个防火墙下的ftp server,使用PORT FTP mode:预设的ftp 
port:21 以及ftp data port:20 
启动VSFTPD 之后执行以下两行指令,只允许port 21 以及port 20 开放, 
其它关闭。 
iptables -A INPUT -p tcp -m multiport --dport 21,20 -j ACCEPT 
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset 
将vsftpd 并入XINETD 
若是读者希望将vsftpd 并入XINETD 之中,也就是7.x 版的预设设定,那 
么读者可以执行以下步骤。 
Step1. 修改/etc/vsftpd/vsftpd.conf 
将 
listen=YES 
改为 
listen=NO 
Step2. 新增一个档案: /etc/xinetd.d/vsftpd 
内容如下: 
service vsftpd 

disable = no 
socket_type = stream 
wait = no 
user = root 
server = /usr/sbin/vsftpd 
port = 21 
log_on_success += PID HOST DURATION 
log_on_failure += HOST 

Step3. 重新启动xinetd 
[root@home vsftpd]# /sbin/service xinetd restart 
Stopping xinetd: OK ] 
Starting xinetd: OK ] 
3、常见错误
ftp客户连接常见故障现象
现象0:
> ftp: connect :连接被拒绝
原因: 服务没启动
解决: # chkconfig vsftpd on<Enter>


现象1:
500 OOPS: cannot open user list file
原因: 不存在文件“/etc/vsftpd.user_list”或文件中不存在该帐户
解决: # echo username >> /etc/vsftpd.user_list<Enter>


现象2:
530 Permission denied.
Login failed.
原因: “/etc/vsftpd.user_list”文件中不存在当前登陆用户
解决: # echo username >> /etc/vsftpd.user_list<Enter>


现象3:
500 OOPS: cannot open chroot() user list file
Login failed.
原因: 不存在文件“/etc/vsftpd.chroot_list”
解决: # echo username >> /etc/vsftpd.chroot_list<Enter>


现象4:
500 OOPS: missing value in config file
Connection closed by remote host.
原因: “=”等号前值有问题,或只有一个空格
解决: 修正相应的值即可,可能过 diff 来比较查找


现象5:
500 OOPS: bad bool value in config file
Connection closed by remote host.
原因: “=”等号后值有问题
解决: 将“=”等号后值确认修改


现象6:
500 OOPS: unrecognised variable in config file
Connection closed by remote host.
原因: 参数前有空格
解决: 将参数前空格删除


现象7、
确认存在“local_enable=YES”,但本地用户无法登陆
原因: 验证参数被误删除
解决: 添加“pam_service_name=vsftpd”


现象8、
500 OOPS: chdir
500 OOPS: child died
Connection closed by remote host.
原因: 用户主目录没有权限或没有主目录
解决: 正确设置用户主目录权限


553 Could not create file.


要解决这个问题只要:
1. setsebool -P ftpd_disable_trans 1
2. service vsftpd restart


1、设置selinux
vi /etc/sysconfig/selinux
将其中的SELINUX=enforcing改为SELINUX=disabled
2、设置如下
setsebool -P allow_ftpd_full_access 1


chmod -R 765 /etc/home




1、 查看 SELinux 的状态: sestatus -b | grep ftp


2、 在出现的结果中可以看到


 ftp_home_dir off


tftpd_disable_trans off


之类。我们现在只要把其中之一设置为on就可以啦。


3、 setsebool -P ftpd_disable_trans on 或者 setsebool -P ftp_home_dir on


4、 重启vsftpd: service vsftpd restart





























linux 配置 ftp服务,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。