FTP服务器的配置node
一FTP服务器的安装mysql
1)ftp服务器安装后生成的相关文件sql
/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 start Starting vsftpd for vsftpd: [ OK ] # ss -tnlp | grep 21 LISTEN 0 32 *:21 *:* users:(("vsftpd",2933,3)) 到此,咱们的ftp服务器就安装好了! 测试链接访问ftp服务器,发现能够成功使用! # ftp 192.168.3.130 lftp 192.168.3.130:~> ls drwxr-xr-x 2 0 0 4096 Aug 04 2014 pub
二基于mysql存储用户信息认证的FTP服务器的配置vim
1.配置文件相关信息bash
# 是否容许匿名用户登陆。默认值为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服务器session
node2:192.168.3.12,做为mysql服务器app
2).实验步骤:
1、安装所须要的程序
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 3306 LISTEN 0 50 *:3306 *:* users:(("mysqld",2764,10))
2、建立虚拟用户帐号
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 -p Enter 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,选择tom和jerry登陆,而后分别上传、建立文件,观察成功与否结果