1、Linux的FTP的三种登录方式Linux的FTP的三种登录方式:我们登录FTP有三种方式,匿名登录、本地用户登录和虚拟用户登录。匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous。本地用户登录:使用系统用户登录,在/etc/passwd中。虚拟用户登录:这是FTP专有用户,有两种方式实现虚拟用户,本地数据文件和数据库服务器。FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。本文实验的Linux系统是CentOS 5 update2一、本地数据文件方式1.添加虚拟用户口令文件rootCentOS5 /#
2、vi /etc/vsftpd/vftpuser.txt添加虚拟用户名和密码,一行用户名,一行密码,以此类推。奇数行为用户名,偶数行为密码。将刚添加的vftpuser.txt虚拟用户口令文件转换成系统识别的口令认证文件。首先查看系统有没有安装生成口令认证文件所需的软件db4-utils。rootCentOS5 /#rpm qa |grep db4-utilsrootCentOS5 /#rpm ivh db4-utils-4.3.29-9.fc6.i386.rpm下面使用db_load命令生成虚拟用户口令认证文件。rootCentOS5 /#db_load T t hash f /etc/vsft
3、pd/vftpuser.txt /etc/vsftpd/vftpuser.db3.编辑vsftpd的PAM认证文件在/etc/pam.d目录下,rootCentOS5 /#vi /etc/pam.d/vsftpd将里面其他的都注释掉,添加下面这两行:auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuseraccount required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser4.建立本地映射用户并设置宿主目录权限所有的FTP虚拟用户需要使用一个系统用户,这个
4、系统用户不需要密码。rootCentOS5 /#useradd d /home/vftpsite s /sbin/nologin vftpuserrootCentOS5 /#chmod 700 /home/vftpsite5.配置vsftpd.conf(设置虚拟用户配置项)rootCentOS5 /#vi /etc/vsftpd/vsftpd.confguest_enable=YES #开启虚拟用户guest_username=vftpuser #FTP虚拟用户对应的系统用户pam_service_name=vsftpd #PAM认证文件6.重启vsftpd服务rootCentOS5 /#se
5、rvice vsftpd restart7.测试虚拟用户登录FTPC:UserAdministratorftp 192.168.120.240连接到192.168.120.240。220 Welcome to BOB FTP server用户(192.168.120.240(none):markwang331 Please specify the password.密码:230 Login successful.二、数据库服务器(MySQL)方式1.安装MySQL我使用的是Tar包安装的MySQL,版本号:mysql-6.0.8-alpha.tar.gz具体安装方法,请查看我的另一篇文章“部署
6、LAMP+Discuz!7.0”。2.建立本地映射用户并设置宿主目录权限rootCentOS5 /#useradd d /home/vftpsite s /sbin/nologin vftpuserrootCentOS5 /#chmod 700 /home/vftpsite3.配置vsftpd.conf(设置虚拟用户配置项)rootCentOS5 /#vi /etc/vsftpd/vsftpd.confguest_enable=YES #开启虚拟用户guest_username=vftpuser #FTP虚拟用户对应的系统用户pam_service_name=vsftpd #PAM认证文件4.
7、在MySQL中建立用户口令数据库rootCentOS5 /#mysql u root pmysql create database vftpuser; #建立虚拟用户数据库,库名vftpusermysql use vftpuser; #进入vftpuser数据库mysql create table users(name char(16) binary,passwd char(16) binary); #建立虚拟用户口令表,表名usersmysql insert into users (name,passwd) values (bobyuan,password(111); mysql inser
8、t into users (name,passwd) values (markwang,password(111);#建立两个虚拟用户,bobyuan和markwang注:在这里我用这种方法添加的虚拟用户密码都是经过MySQL加密的,加密后的密码pam-mysql不能识别(MySQL和pam-mysql兼容性有些问题),因此本次实验使用明文保存密码。添加明文密码:方法一:单个添加用户mysql insert into users (name,passwd) values (bobyuan, 111);mysql insert into users (name,passwd) values (m
9、arkwang,111);方法二:批量添加用户新建vftpuser.txt文件rootCentOS5 /#vi vftpuser.txt添加用户名和密码,注意字段数据之间要用Tab键隔开。bobyuan 111markwang 111mysqluse vftpuser;mysqlload data local infile “/vftpuser.txt”into table users;mysqlflush privileges;mysql grant select on vftpuser.users to vftpuserlocalhost identified by 111111; #授权
10、vftpuser这个账号可以读取vftpuser数据库的user表5.验证第4步的设置是否成功rootCentOS5 /#mysql u vftpuser pmysqlshow databases;mysqluse vftpuser;mysqlshow tables;mysqlselect * from users;mysqlquit如下图:6.编译MySQL的PAM认证模块查看/lib/security目录下有没有MySQL对应的PAM模块。如果没有则下载pam-mysql安装(我下载的是pam_mysql-0.7RC1.tar.gz。rootCentOS5 /#cd /usr/local/
11、srcrootCentOS5 src#tar zxvf pam_mysql-0.7RC1.tar.gzrootCentOS5 src#cd pam_mysql-0.7RC1rootCentOS5 pam_mysql-0.7RC1# ./configure -with-mysql=/usr/local/mysql/ -with-pam-mods-dir=/lib/security/rootCentOS5 pam_mysql-0.7RC1#makerootCentOS5 pam_mysql-0.7RC1#make install7.编辑vsftpd的PAM认证文件在/etc/pam.d目录下,ro
12、otCentOS5 /#vi /etc/pam.d/vsftpd将里面其他的都注释掉,添加下面这两行:auth required pam_mysql.so user=vftpuser passwd=111111 host=localhost db=vftpuser table=users usercolumn=name passwdcolumn=passwd crypt=0account required pam_mysql.so user=vftpuser passwd=111111 host=localhost db=vftpuser table=users usercolumn=name
13、 passwdcolumn=passwd crypt=0crypt=0:表示口令使用明文方式保存在数据库中crypt=1:表示口令使用UNIX的DES加密方式加密后保存在数据库中crypt=2:表示口令使用MySQL的password()函数加密后保存在数据库中crypt=3:表示口令使用MD5散列值的方式保存在数据库中8.重启vsftpd服务rootCentOS5 /#service vsftpd restart9.测试虚拟用户登录FTPC:UserAdministratorftp 192.168.120.240Connected to 192.168.120.240.220 Welcome
14、 to BOB FTP serverUser (192.168.120.240:(none): bobyuan331 Please specify the password.Password:230 Login successful.ftp quit221 Goodbye.三、虚拟用户高级设置1.virtual_use_local_privs参数当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。当virtual_use_local_privs=YES,
15、write_enable=YES时,虚拟用户具有写权限(上传、下载、删除、重命名)。当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,anon_upload_enable=NO时,虚拟用户只能下载文件,无其他权限。当virtual_use_local_priv
16、s=NO,write_enable=YES,anon_world_readable_only=NO,anon_upload_enable=YES时,虚拟用户只能上传和下载文件,无其他权限。当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,anon_mkdir_write_enable=YES时,虚拟用户只能下载文件和创建文件夹,无其他权限。当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,anon_oth
17、er_write_enable=YES时,虚拟用户只能下载、删除和重命名文件,无其他权限。2.建立各个虚拟用户自身的配置文件rootCentOS5 /#vi /etc/vsftpd/vsftpd.conf添加:user_config_dir=/etc/vsftpd/vsftpd_user_confrootCentOS5 /#mkdir /etc/vsftpd/vsftpd_user_conf编辑bobyuan的配置文件rootCentOS5 /#vi /etc/vsftpd/vsftpd_user_conf/bobyuan添加:anon_world_readable_only=NO #开放bo
18、byuan的下载权限(只能下载)。注意这个地方千万不能写成YES,否则bobyuan将不能列出文件和目录。编辑markwang的配置文件rootCentOS5 /#vi /etc/vsftpd/vsftpd_user_conf/markwang添加:write_enable=YES #开放markwang的写权限anon_world_readable_only=NO #开放markwang的下载权限anon_upload_enable=YES #开放markwang的上传权限anon_mkdir_write_enable=YES #开放markwang创建目录的权限anon_other_wri
19、te_enable=YES #开放markwang删除和重命名的权限四、虚拟用户配置文件(实验)1.所有虚拟用户使用统一配置rootCentOS5 /#vi /etc/vsftpd/vsftpd.confwrite_enable=YESanonymous_enable=NOlocal_enable=YESguest_enable=YESguest_username=vftpuservirtual_use_local_privs=NOpam_service_name=vsftpdanon_world_readable_only=NO #可以下载anon_upload_enable=NO(默认值)
20、 #不能上传anon_mkdir_write_enable=NO(默认值) #不能新建文件夹anon_other_write_enable=NO(默认值) #不能删除和重命名文件ftpd_banner=Welcome to BOB FTP serverxferlog_enable=YESxferlog_file=/var/log/vsftpd.logxferlog_std_format=YESascii_upload_enable=YESascii_download_enable=YEStcp_wrappers=NOsetproctitle_enable=YESlisten_port=21co
21、nnect_from_port_20=YESidle_session_timeout=600data_connection_timeout=120rootCentOS5 /#vi /etc/vsftpd/vsftpd.confwrite_enable=YESanonymous_enable=NOlocal_enable=YESguest_enable=YESguest_username=vftpuservirtual_use_local_privs=NOpam_service_name=vsftpduser_config_dir=/etc/vsftpd/vsftpd_user_confftpd
22、_banner=Welcome to BOB FTP serverxferlog_enable=YESxferlog_file=/var/log/vsftpd.logxferlog_std_format=YESascii_upload_enable=YESascii_download_enable=YEStcp_wrappers=NOsetproctitle_enable=YESlisten_port=21connect_from_port_20=YESidle_session_timeout=600data_connection_timeout=120max_clients=0max_per
23、_ip=3local_max_rate=512000rootCentOS5 /#mkdir /etc/vsftpd/vsftpd_user_conf编辑bobyuan(FTP匿名用户)的配置文件rootCentOS5 /#vi /etc/vsftpd/vsftpd_user_conf/bobyuananon_world_readable_only=NO编辑ftpadmin(FTP匿名管理员)的配置文件rootCentOS5 /#vi /etc/vsftpd/vsftpd_user_conf/ftpadminanon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YESanon_other_write_enable=YES
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1