vsftpd 安全稳定快速,基于tcp/ip的应用层服务

两个端口 : 命令控制21,数据传输20

分为主动模式和被动模式,相对于ftp server 而言!服务器端的数据传输端口不一定是20!


vsftpd 三种帐号:

匿名帐号(anonymous)                      ftp

系统帐号 (local user)   ===》 系统帐号 (都映射成系统帐号)  系统帐号自身

虚拟帐号(通过DB4,和mysql创建)            自己创建


虚拟主机设置:

基于逻辑网卡来设置


  1.  ifconfig eth0:1  192.168.2.226 netmask 255.255.255.0 up

  2.  killall  vsftpd

3.   vim  /etc/vsftpd/vsftpd.conf

  listen_address=192.168.2.225

4  /usr/sbin/vsftpd  /etc/vsftpd/vsftpd.conf

5  useradd -d /var/myftp -s /sbin/nologin  myftp

6  chown  root /var/myftp

7  cp /etc/vsftpd/vsftpd.conf  /etc/vsftpd/myvsftpd.conf

8  vim  /etc/vsftpd/myvsftpd.conf

  listen_address=192.168.2.226

  ftp_username=myftp

  listen=YES

  ftp_banner=Welcome to my virtual vsftpd server

9  /usr/sbin/vsftpd /etc/vsftpd/myvsftpd.conf


虚拟帐号设置:

两种方法

1  mysql数据库存储 虚拟帐号

2  DB4 存储虚拟帐号


DB4创建虚拟账户方法:

1  vim ftpuser.txt

usr1

pass1

usr2

pass2

usr3

pass3

2  rpm -qa | grep db4

 db_load  -T -t hash -f ./ftpuser.txt  /etc/vsftpd/ftpusr.db

 chmod 600 /etc/vsftpd/ftpusr.db

3 vim /etc/pam.d/vsftpd_login

auth required  /lib|lib64/security/pam_userdb.so  db=/etc/vsftpd/ftpusr

account required /lib|lib64/security/pam_userdb.so db=/etc/vsftpd/ftpusr

4  adduser -d  /var/ftpsite  -s /sbin/nologin  ftp_virt

   chmod 700 /var/ftpsite

5  vim /etc/vsftpd/vsftpd.conf

  guest_enables=YES

  guest_username=ftp_virt

  listen=YES

  pam_service_name=vsftpd_login


6 设置虚拟账户权限

 1  所有虚拟用户的权限一样,这样所用虚拟用户的权限为映射的系统用户的权限,通过修改系统用户权限来设置虚拟用户权限

    vim /etc/vsftpd/vsftpd.conf

    virtual_use_local_privs=YES

2   虚拟用户的权限不一致。方法是为每个虚拟用户都设置配置文件,文件名与用户名相同,且在统一的目录下,统一目录设置方法:

vim  /etc/vsftpd/vsftpd.conf

 user_config_dir=/etc/vsftpd

  1 在/etc/vsftpd 创建2个目录

     mkdir /var/ftp/dir1

     mkdir /var/ftp/dir2

  2 chown ftp_virt /var/ftp/dir1

    chown ftp_virt /var/ftp/dir2

  3  vim /etc/vsftpd/usr1

    local_root=/var/ftp/dir1

     vim /etc/vsftpd/usr2

   local_root=/var/ftp/dir2

     vim  /etc/vsftpd/usr3

      local_root=/var/ftp/dir2

      anon_mkdir_write_enable=YES

      anon_other_write_enalbe=YES

      anon_upload_enable=YES

      anon_world_readable_only=YES

      write_enable=YES


mysql数据库创建虚拟帐号方法:


     


  











root 帐号登录设置: 

1  关闭selinux

2  删除/etc/vsftpd/user_list,/etc/vsftpd/ftpusers 中的root


注意防火墙 

iptables -I INPUT -p tcp --dport 21 -j ACCEPT