首页 汽车资讯 时尚资讯 读书心得 大数据 灯饰资讯 农业信息 房产资讯 化工资讯 育儿资讯 科技资讯 戏剧歌舞 趣闻趣事 更多
首页 » 电脑资讯» 内容正文

linux配置ftp服务

发布时间:2020-11-13 11:37:45

  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

  现象1:

  500 OOPS: cannot open user list file

  原因: 不存在文件“/etc/vsftpd.user_list”或文件中不存在该帐户

  解决: # echo username >> /etc/vsftpd.user_list

  现象2:

  530 Permission denied.

  Login failed.

  原因: “/etc/vsftpd.user_list”文件中不存在当前登陆用户

  解决: # echo username >> /etc/vsftpd.user_list

  现象3:

  500 OOPS: cannot open chroot() user list file

  Login failed.

  原因: 不存在文件“/etc/vsftpd.chroot_list”

  解决: # echo username >> /etc/vsftpd.chroot_list

  现象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


外墙涂料品牌晨阳水漆 http://chenyang.com/shuiqi/jiazhuang/duogongneng/
怜怜信息网