FTP服务器的配置

 

FTP服务器的安装

1ftp服务器安装后生成的相关文件

/etc/logrotate.d/vsftpd  #实现日志滚动的程序/etc/pam.d/vsftpd  #用户认证配置文件/etc/rc.d/init.d/vsftpd  #服务脚本/etc/vsftpd #配置文件所在目录/etc/vsftpd/ftpusers  #控制哪些用户是否可登陆ftp/etc/vsftpd/user_list  #控制哪些用户是否可登陆ftp/etc/vsftpd/vsftpd.conf  #主配置文件/var/ftp  #匿名用户(被映射为系统用户)共享资源位置

2)安装ftp服务器(安装前配置好yum源以及确保iptables关闭)

#yum install vsftpd –y查看安装vsftp后生成的文件#rpm -ql vsftpd启动vsftpd服务,并查看21端口是否开启# service vsftpd startStarting vsftpd for vsftpd:                                [  OK  ]# ss -tnlp | grep 21LISTEN     0     32                       *:21                       *:*      users:(("vsftpd",2933,3))到此,我们的ftp服务器就安装好了!测试连接访问ftp服务器,发现可以成功使用!# ftp 192.168.3.130lftp 192.168.3.130:~> ls             drwxr-xr-x    2 0       0            4096 Aug 04  2014 pub

基于mysql存储用户信息认证的FTP服务器的配置

1.配置文件相关信息

# 是否允许匿名用户登录。默认值为YES。anonymous=YES|NO# 是否允许匿名用户上传文件(如果设置为YES,则write_enable也必须设置为YES)。默认值为NO。anon_upload_enable=YES|NO# 是否允许匿名用户创建目录(如果设置为YES,则write_enable也必须设置为YES)。默认值为NO。anon_mkdir_write_enable=YES|NO# 是否允许匿名用户删除和重命名文件(如果设置为YES,则write_enable也必须设置为YES)。默认值为NO。anon_other_write_enable=YES|NO# 具体解释请看我的另一篇博文。默认值为YES。anon_world_readable_only=YES|NO# 用于设置匿名用户上传文件的umask值。默认值为077。anon_umask=077 用户限制匿名用户的传输速度(单位:Byte/s)。默认值为0(表示无限制)。anon_max_rate=0# 是否允许匿名用户通过SSL连接(如果设置为YES,则ssl_enable也必须设置为YES)。默认值为NO。allow_anon_ssl=YES|NO# 是否改变匿名用户上传文件后文件的属主。默认值为NO。chown_uploads=YES|NO# 用于设置匿名用户上传文件后文件的属主(只有chown_uploads设置为YES时该参数才生效)。默认值为root。chown_username=root# 是否允许非匿名用户登录。默认值为NO。local_enable=YES|NO# 是否允许用户具有写权限。默认值为NO。write_enable=YES|NO# 是否允许用户下载文件。默认值为YES。download_enable=YES|NO# 用于设置非匿名用户上传文件的umask值。默认值为022。local_umask=022# 是否允许用户在登录到FTP服务器后使用ls -R等比较占用系统资源的命令。默认值为NO。ls_recurse_enable=YES|NO# 是否允许用户使用dir之类的列目录命令。默认值为YES。dirlist_enable=YES|NO# 是否启用用户列表。默认值为NO。userlist_enable=YES|NO# 如果设置为YES,则表示拒绝列表内的用户登录,否则表示只允许列表内的用户登录。默认值为YES。userlist_deny=YES|NO# 用于设置用户列表的路径。默认值为/etc/vsftpd/user_list。userlist_file=/etc/vsftpd/user_list# 是否将本地用户控制在家目录中。默认值为NO。chroot_local_user=YES|NO# 如果设置为YES,则chroot_local_user也必须为YES,表示只有在列表中的用户能离开家目录,如果设置为NO,则表示不启用列表。默认值为NO。chroot_list_enable=YES|NO # 用于设置列表的路径。默认值为/etc/vsftpd/chroot_list。chroot_list_file=/etc/vsftpd/chroot_list# 用于指定所有非匿名用户的根目录,默认情况,FTP会将各用户引导到各自的家目录,如果你希望所有用户登录到同一个根目录,那么你就需要用到该参数了。无默认值。local_root# 用于限制非匿名用户的传输速度(单位:Byte/s)。默认值为0(表示无限制)。local_max_rate=0# 是否允许客户端使用sync等命令。默认值为NO。async_abor_enable=YES|NO# 是否允许上传文件时使用ASCII传输模式。默认值为NO。ascii_upload_enable=YES|NO# 是否允许下载文件时使用ASCII传输模式。默认值为NO。ascii_download_enable=YES|NO# 用于设置回话超时时间(单位:秒)。默认值为300。idle_session_timeout=300# 用于设置数据传输的超时时间(单位:秒)。默认值为300。data_connection_timeout=300# 用于设置被动连接的超时时间(单位:秒)。默认值为60。accept_timeout=60# 用于设置主动连接的超时时间(单位:秒)。默认值为60。connect_timeout=60# 用于限制上传文件的类型,例如deny_file={*.mp3,*.exe}。无默认值。deny_file# 当vsftpd服务器连接多个网络时,如果只希望监听某个网络的请求时,就需要设置该参数了。无默认值。listen_address# 用于设置监听的端口。默认值为21。listen_port=21# 用于设置最大连接数。默认值为2000。max_clients=2000# 用于设置同一台主机的最大连接数。默认值为50。max_per_ip=50# 是否使用本地时间。默认值为NO。use_localtime=YES|NO# 是否启用standalone模式并通过ipv4监听。默认值为NO。listen=YES|NO# 是否启用standalone模式并通过ipv6监听。默认值为NO。listen_ipv6=YES|NO# 是否启用tcp_wrappers访问控制列表。默认值为NO。tcp_wrappers=YES|NO# 是否使用20端口来传输数据。默认值为NO。connect_from_port_20=YES|NO # 用于设置数据传输端口。默认值为20。ftp_data_port=20# 用于设置被动连接时,客户端的数据连接端口的最小值。默认值为0(表示采用随机端口)。pasv_min_port# 用于设置被动连接时,客户端的数据连接端口的最大值。默认值为0(表示采用随机端口)。pasv_max_port# 用于设置vsftpd服务的运行用户。默认值为nobody。nopriv_user=nobody# 是否启用日志记录用户的上传/下载。默认值为NO。xferlog_enable=YES|NO# 是否采用标准日志文件来记录日志。默认值为NO。xferlog_std_format=YES|NO# 用于设置日志文件的路径。默认值为/var/log/xferlog。xferlog_file=/var/log/xferlog# 指定登录到FTP时的欢迎信息。无默认值。ftpd_banner# 是否在用户切换目录时显示欢迎信息,如果设置为YES,则需要在每个需要显示欢迎信息的目录下创建名为.message的文件,并在里面输入欢迎信息才会显示。默认值为NO。dirmessage_enable=YES|NO# 用于设置保存欢迎信息的文件名。默认值为.message。message_file=.message

 

2.配置流程

1).实验须知:

      node1:192.168.3.11,作为ftp服务器

         node2:192.168.3.12,作为mysql服务器

 

2).实验步骤:

   一、安装所需要的程序

      1.在node1安装vsftpd 和连接mysql的模块pam_mysql       #yum install vsftpd pam_mysql  -y       2.在node2上安装mysql,并启动mysql服务       #yum install mysql-servermysql-devel  -y       # service mysqld start       # ss -tnlp | grep 3306LISTEN     0     50                       *:3306                     *:*      users:(("mysqld",2764,10))

 

    二、创建虚拟用户账号

    1.在node2上准备数据库及相关表     #mysql      >CREATE DATABASE vsftpd;      >use vsftpd;      >GRANT SELECT ON vsftpd.* TOvsftp@'192.168.3.%' IDENTIFIED BY 'tanjie123';      >FLUSH PRIVILEGES;   在node1主机上测试是否授权是否成功,能否成功连接  # mysql -uvsftp -h192.168.3.12 -pEnter password:Welcome to the MySQL monitor.  Commands end with ; or \g.……………….. mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || test               || vsftpd             |+--------------------+3 rows in set (0.00 sec) 2.在node2上添加测试的虚拟用户    在node2上创建用户表,并插入用户数据      >CREATE TABLE users (       id INT UNSIGNED NOT NULLAUTO_INCREMENT PRIMARY KEY,         name VARCHAR(50) BINARY NOT NULL,         password CHAR(48) BINARY NOTNULL);      >DESC users;     >INSERT INTO users(name,password) VALUES('tom',password('tanjie123')),('jerry',password('tanjie'));     >select * from  users;+----+-------+-------------------------------------------+| id | name  | password                                  |+----+-------+-------------------------------------------+|  1 | tom  | *DD9360964DF8A7220B7D9725AFE323C5587B635F ||  2 | jerry |*D3D009DE1810BBFD11427A1BED30C9B22564DD4D |+----+-------+-------------------------------------------+2 rows in set(0.00 sec)

 

  三 配置vsftpd

     

  1.在node1建立pam认证所需文件       #vim /etc/pam.d/vsftpd.mysql       添加如下:              auth required pam_mysql.souser=vsftp passwd=tanjie123 host=192.168.3.12 db=vsftpd table=users usercolumn=namepasswdcolumn=password crypt=2              account required pam_mysql.souser=vsftp passwd=tanjie123 host=192.168.3.12 db=vsftpd table=usersusercolumn=name passwdcolumn=password crypt=2        2.在node1修改配置文件       先建立系统账号,用户名为vuser,家目录为/var/ftproot vuser,并给予/var/ftproot目录其他用户可读、可执行权限       #useradd -s /sbin/nologin  -d /var/ftproot vuser       #chmod go+rx /var/ftproot       #vim /etc/vsftpd/vsftp.conf       在文件里添加如下2项,并修改pam_service_name为vsftpd.mysql:              guest_enable=YES              guest_username=vuser              pam_service_name=vsftpd.mysql         #service vsftpd restart

 

   node2上测试访问,输入tom,密码tanjie123

    #ftp 192.168.3.11

   

   .配置虚拟用户具有不同的访问权限

     

1.在配置文件中添加vsftpd虚拟用户使用配置文件目录,然       #vim vsftpd.conf              添加一项:              user_config_dir=/etc/vsftpd/vusers创建虚拟用户使用配置文件目录,并在目录里面创建tom和jerry俩文件,更改配置,使得tom能上传、创建、删除文件,而jerry不能上传、创建、删除文件       #mkdir /etc/vsftpd/vusers       #cd vusers       #vim tom              anon_upload_enable=YES              anon_mkdir_write_enable=YES              anon_other_write_enable=YES       #vim jerry              anon_upload_enable=NO              anon_mkdir_write_enable=NO              anon_other_write_enable=NO重启服务       #service vsftpd restart

 

   node2上,用ftp登录192.168.3.11,选择tomjerry登录,然后分别上传、创建文件,观察成功与否结果