linuxftp连接数限制
‘壹’ linux ftp如何限制某个用户的传输速率而不是全部本地或匿名用户
9、FTP封杀用户、限制传输速率、限制访问目录、为匿名用户提供下载资源
2015-08-26 07:43:46cnblogs.com天涯越野人点击
Linux下
image
至此成功封杀,解封就直接在/etc/vsftpd.ftpusers 删除yanji,学电脑,重启vsftpd就行
验证同上面一样,不过是可以登录成功。
二、限制本地用户与匿名用户的传输速率
在/etc/vsftpd/vsftpd.conf 主配置文件 的末尾加入以下内容
local_max_rate=200k //设置本地用户最大的传输速率为200kbps
anon_max_rate=10k //设置匿名用户最大的传输速率为10kbps
[root@localhost root]# service vsftpd restart (重启服务)
三、限制本地用户的工作目录
设置根目录,限制浏览其他目录,减少对FTP服务器的危害
[root@localhost root]# vi /etc/vsftpd/vsftpd.conf
把下面前面的 #号去掉
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
image
把yanji 添加进 /etc/vsftpd.chroot_list,限制yanji用户只能在宿主目录之内,减少对系统的破坏
[root@localhost root]# echo yanji >> /etc/vsftpd.chroot_list
[root@localhost root]# service vsftpd restart (重启服务)
最后验证
去Windows中 命令行 或者 Linux中 终端
image
image
四、为匿名用户提供下载资源
为匿名用户提供下载资源(放在pub目录下就行)
[root@localhost root]# cd /var/ftp/pub
[root@localhost pub]# cat > word1.txt
pub
‘贰’ linux中FTP
vi /etc/vsftpd/vsftpd.conf
anonymous_enable = no
local_enable = yes
write_enable = yes
local_umask = 022
userlist_enable = yes
userlist_deny = yes
userlist_file = /etc/vsftpd.user_list
dirmessage_enable = yes
xferlog_enable = yes
connect_from_port_20 = yes
xferlog_std_format = yes
pam_service_name = vsftpd
listen = yes
max_per_ip = 2
tcp_wrappers = yes
banner_file = /etc/vsftpd/welcome.txt
注意,如果vsftpd.conf不存在,自己新建一个
如果welcome.txt不存在,自己新建一个
如果/etc/vsftpd.user_list与/etc/vsftpd.ftpusers不存在,新建一个,其内容两个文件一样,里面每一行都是一个用户名,可以参照/etc/passwd文件,把那些UID小于500的帐号名称写到这两个文件内。如下:
root
bin
....
要限制只有内网用户可以连接的话,用上面的回答那种设置障碍hosts.allow与hosts.deny.
hosts.allow内容为:
vsftpd:192.168.0.0/255.255.255.0
hosts.deny内容为:
vsftpd:all
‘叁’ linux ftp如何配置 文件上传权限
linux ftp 文件上传权限有两种匿名上传和本地上传
1)实现匿名用户的上传下载文件程序代码:
Anonymous_enable=yes 匿名登陆
Connect_form_port_20=yes 启用FTP数据端口的数据连接
Pam_service_name=vsftpd 验证方式
Listen=yes 独立的VSFTPD服务器
Anon_upload_enable=yes 开放上传权限
Anon_mkdir_write_enable=yes 可创建目录的同时可以在此目录中上传文件
Write_enable=yes 开放本地用户写的权限
Anon_other_write_enable=yes
匿名帐号可以有删除的权限加上上面的这段,你就可以实现匿名ftp的上传下载文件了然后你保存文件,用service vsftpd
start来启动vsftp的服务,然后就可以用ftp了注意:确定你的防火墙
iptables上打开21端口,不然在登陆ftp的时候会提示socket错误,拒绝连接。还有就是当你再次编辑vsftp.conf后用
service vsftpd restart重起的时候总是提示你不能关闭vsftp服务,这时候你用service vsftpd
status察看一下他的状态,如果提示你vsftpd被locked
那可能是因为你的vsftpd.conf中配置的有错误,你要重新编辑他,直到能正常重起他为止,一次配置不对,多配置几次就好了
2)实现本地用户上传下
载
程序代码:
新建一个用户
adser 用户名 增加一个用户
passwd 用户名 增加用户的密码
然后看/etc/passwd中最后一行就是你刚才添加的用户信息
然后编辑/etc/vsftpd/vsftpd.conf文件,
Local_enable=yes 允许使用本地用户来登陆ftp
在/etc/vsftpd.ftpuser中可以增加想要阻止登陆ftp的用户
下面有关linux中ftp的设置项:
限制用户只能在自己的目录中
Chroot_list_enable=yes 文件中的名单可以调用
Chroot_list_file=/etc/vsftpd.chroot_list 前提是chroot_local_user=no,在文件中加入用户名vsftpd.conf的参数
程序代码:Anonymous_enable=yes 允许匿名登陆
Dirmessage_enable=yes 切换目录时,显示目录下.message的内容
Local_umask=022 FTP上本地的文件权限,默认是077
Connect_form_port_20=yes 启用FTP数据端口的数据连接
Xferlog_enable=yes 激活上传和下传的日志
Xferlog_std_format=yes 使用标准的日志格式
Ftpd_banner=XXXXX 显示欢迎信息
Pam_service_name=vsftpd 验证方式
Listen=yes 独立的VSFTPD服务器
Anon_upload_enable=yes 匿名用户上传权限
Anon_mkdir_write_enable=yes 创建目录的同时可以在此目录中上传文件
Write_enable=yes 本地用户写的权限
Anon_other_write_enable=yes 匿名帐号可以有删除的权限
Anon_world_readable_only=no 匿名用户浏览权限
Ascii_upload_enable=yes 启用上传的ASCII传输方式
Ascii_download_enable=yes 启用下载的ASCII传输方式
Banner_file=/var/vsftpd_banner_file 用户连接后欢迎信息使用的是此文件中的相关信息
Idle_session_timeout=600(秒) 用户会话空闲后10分钟
Data_connection_timeout=120(秒) 将数据连接空闲2分钟断
Accept_timeout=60(秒) 将客户端空闲1分钟后断
Connect_timeout=60(秒) 中断1分钟后又重新连接
Local_max_rate=50000(bite) 本地用户传输率50K
Anon_max_rate=30000(bite) 匿名用户传输率30K
Pasv_min_port=5000 将客户端的数据连接端口改在
Pasv_max_port=6000 5000—6000之间
Max_clients=200 FTP的最大连接数
Max_per_ip=4 每IP的最大连接数
Listen_port=5555 从5555端口进行数据连接
Local_enble=yes 本地帐户能够登陆
Write_enable=no 本地帐户登陆后无权删除和修改文件
Chroot_local_user=yes 本地所有帐户都只能在自家目录
Chroot_list_enable=yes 文件中的名单可以调用
Chroot_list_file=/etc/vsftpd.chroot_list 前提是chroot_local_user=no
Userlist_enable=yes 在指定的文件中的用户不可以访问
Userlist_deny=yes
Userlist_file=/etc/vsftpd.user_list
Banner_fail=/路径/文件名 连接失败时显示文件中的内容
Ls_recurse_enable=no
Async_abor_enable=yes
one_process_model=yes
Listen_address=10.2.2.2 将虚拟服务绑定到某端口
Guest_enable=yes 虚拟用户可以登陆
Guest_username
‘肆’ linux中ftp的配置管理
vsftpd是UNIX类操作系统上运行的服务器名称,它的名字代表“very secure FTP daemon”,安全性是其设计与开发的一个重要目标。它可运行在Linux、Solaris等系统中,支持很多其他的FTP 服务器不支持的特征:
非常高的安全性需求
带宽限制
良好的可伸缩性
创建虚拟用户的可能性
分配虚拟IP地址的可能性
一、vsftpd的启动
#service vsftpd start
如果允许用户匿名访问,需创建用户ftp和目录/var/ftp
# mkdir /var/ftp
# useradd –d /var/ftp ftp
二、vsftpd的配置
Vsftpd的配置文件存放在/etc/vsftpd/vsftpd.conf 我们可根据实际数要对如下信息进行配置:
1. 连接选项
☆监听地址和控制端口
(1) listen_address=ip address
定义主机在哪个IP 地址上监听FTP请求。即在哪个IP地址上提供FTP服务。
(2) listen_port=port_value
指定FTP服务器监听的端口号。默认值为21。
2. 性能与负载控制
☆超时选项
(1) idle_session_timeout=
空闲用户会话的超时时间,若是超过这段时间没有数据的传送或是指令的输入,则会被迫断线。默认值是300s
(2) accept_timeout=numerical value
接受建立联机的超时设定。默认值为60s
☆负载选项
(1) max_clients= numerical value
定义FTP服务器最大的兵法连接数。当超过此连接数时,服务器拒绝客户端连接。默认值为0,表示不限最大连接数。
(2) max_per_ip= numerical value
定义每个IP地址最大的并发连接数目。超过这个数目将会拒绝连接。此选项的设置将会影响到网际快车、迅雷之类的多线程下载软件。默认值为0,表示不限制。
(3) anon_max_rate=value
设定匿名用户的最大数据传输速度,以B/s为单位。默认无。
(4) local_max_rate=value
设定用户的最大数据传输速度。以B/s为单位。默认无。此选项对所有的用户都生效。
3. 用户选项
vsftpd的用户分为3类:匿名用户、本地用户(local user)及虚拟用户(guest)
☆ 匿名用户
(1) anonymous_enable=YES|NO
控制是否允许匿名用户登录
(2) ftp_username=
匿名用户使用的系统用户名。默认情况下,值为ftp
(3) no_anon_password= YES|NO
控制匿名用户登录时是否需要密码。
(4) anon_root=
设定匿名用户的根目录,即匿名用户登录后,被定位到此目录下。主配置文件中默认无此项,默认值为/var/ftp/
(5) anon_world_readable_only= YES|NO
控制是否只允许匿名用户下载可阅读的文档。YES,只允许匿名用户下载可阅读的文件。NO,允许匿名用户浏览整个服务器的文件系统。
(6) anon_upload_enable= YES|NO
控制是否允许匿名用户上传文件。除了这个参数外,匿名用户要能上传文件,还需要两个条件,write_enable参数为YES;在文件系统上,FTP匿名用户对某个目录有写权限。
(7) anon_mkdir_wirte_enable= YES|NO
控制是否允许匿名用户创建新目录。在文件系统上,FTP匿名用户必须对新目录的上层目录拥有写权限。
(8) anon_other_write_enbale= YES|NO
控制匿名用户是否拥有除了上传和新建目录之外的其他权限。如删除、更名等。
(9) chown_uploads= YES|NO
是否修改匿名用户所上传文件的所有权。YES,匿名用户上传得文件所有权改为另一个不同的用户所有,用户由chown_username参数指定。
(10) chown_username=whoever
指定拥有匿名用户上传文件所有权的用户。
☆本地用户
(1) local_enable= YES|NO
控制vsftpd所在的系统的用户是否可以登录vsftpd。
(2) local_root=
定义本地用户的根目录。当本地用户登录时,将被更换到此目录下。
☆虚拟用户
(1) guest_enable= YES|NO
启动此功能将所有匿名登入者都视为guest
(2) guest_username=
定义vsftpd的guest用户在系统中的用户名。
4. 安全措施
☆用户登录控制
(1) /etc/vsftpd.ftpusers
Vsftpd禁止列在此文件中的用户登录FTP服务器。此机制是默认设置的。
(2) userlist_enable= YES|NO
此选项激活后,vsftpd将读取userlist_file参数所指定的文件中的用户列表。
(3) userlist_file=/etc/vsftpd.user_list
指出userlist_enable选项生效后,被读取的包含用户列表的文件。默认值是/etc/vsftpd.user_list
(4) userlist_deny= YES|NO
决定禁止还是只允许由userlist_file指定文件中的用户登录FTP服务器。userlist_enable选项启动后才能生效。默认值为YES,禁止文中的用户登录,同时不向这些用户发出输入口令的指令。NO,只允许在文中的用户登录FTP服务器。
☆目录访问控制
(1) chroot_list_enable= YES|NO
锁定某些用户在自己的目录中,而不可以转到系统的其他目录。
(2) chroot_list_file=/etc/vsftpd/chroot_list
指定被锁定在主目录的用户的列表文件。
(3) chroot_local_users= YES|NO
将本地用户锁定在主目中。
三、vsftpd服务器的配置实例:
基于IP的虚拟FTP服务器配置
假设服务器有两个IP地址,192.168.1.199和192.168.1.200。vsftpd是建立在192.168.1.199上的。现在在192.168.1.200上再提供一个虚拟FTP服务器。
☆创建虚拟FTP服务器根目录
# mkdir –p /var/ftp2/pub
确保/var/ftp2和/var/ftp2/pub目录的所有者和组均为root,掩码为755
# chmod 755 /var/ftp2 # chmod 755 /var/ftp2/pub
# chown –R root /var/ftp2 # chown –R : root /var/ftp2
☆ 增加虚拟FTP服务器的匿名用户帐号ftp2
# useradd –d /var/ftp2 –M ftp2
☆ 创建虚拟FTP服务器的配置文件
复制原来的vsftpd.conf作为虚拟FTP服务器的配置文件,并修改相关参数
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd2.conf
# vi /etc/vsftpd/vsftpd2.conf
添加或修改参数:
Listen=YES
Listen_address=192.168.1.200
ftp_username=ftp2
anon_root=/var/ftp2
并可参考vsftpd的配置部分的说明做其他配置,如:
•允许匿名用户上传文件
Write_enable=YES
Anon_world_readable_only=NO
Anon_upload_enable=YES
Anon_mkdir_write_enable=YES
创建匿名用户上传文件的目录,并设置权限:
# mkdir /var/ftp/incoming # chmod o+w /var/ftp/incoming
•取消写权限
Write_enable=NO
Anon_upload_enable=NO
Anon_mkdir_write_enable=NO
Anon_other_write_enable=NO
•限制下载速度为80KB/s
Anon_max_rate=8000
•控制并发数,以及每个IP地址的并发数
Max_clients=100
Max_per_ip=3
☆启动虚拟FTP服务器
# /usr/sbin/vsftpd /etc/vsftpd/vsftpd2.comf &
‘伍’ linux ftp服务器拒绝连接
出现此问题的原因为:设置问题造成的。
解决的方法和详细的操作步骤如下:
1、第一步,连接到相应的linux主机,进入linux命令行状态,然后等待输入shell命令,见下图,转到下面的步骤。
‘陆’ 如何在linux上配置ftp 及创建 ftp用户
做一个虚拟账户就解决了:
步骤如下:
1、建立虚拟用户口令库文件
口令库文件中奇数行设置用户名,偶数行设置口令
# vi /etc/vsftpd/logins.txt 注意,一下是4行
upload 这个是帐户名
upload 这个是密码
download
download
2、生成vsftpd的认证文件
# db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db
设置认证文件只对用户可读可写
# chmod 600 /etc/vsftpd/vsftpd_login.db
3、建立虚拟用户所需的PAM配置文件
# vi /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
注意:以上2行中最后的2个文件名vsftpd_login和第2个步骤中的数据库名字必须一致!
4、建立虚拟用户所要访问的目录并设置相应权限
# mkdir /home/ftpsite
# useradd -d /home/ftpsite virtual(用户名)
# chown virtual:virtual /home/ftpsite
# chmod 700 /home/ftpsite/
5、设置vsftpd.conf配置文件
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
6、设置主配置文件
在vsftpd.conf文件中添加用户配置文件目录设置
user_config_dir=/etc/vsftpd_user_conf
# service vsftpd restart
7、建立用户配置文件目录
使用mkdir命令建立用户配置文件目录
# mkdir /etc/vsftpd_user_conf
为虚拟用户建立单独的配置文件,用户配置文件名称与用户名相同
touch /etc/vsftpd_user_conf/upload
touch /etc/vsftpd_user_conf/download
8、每个FTP虚拟用户都可以独立设置其权限
vi /etc/vsftpd_user_conf/upload
anon_world_readable_only=NO 可读可下载
anon_upload_enable=YES 可上传
anon_mkdir_write_enable=YES 可创建和删除文件夹
anon_other_write_enable=YES 可文件改名和删除文件
local_root=/home/ftpsite/upload 指定upload的宿主目录
download_enable=NO 禁止下载
(注意:请先到/home/ftpsite下面去创建upload文件夹)
‘柒’ linux配置FTP访问时间限制。
1.脚本处理,大概思路
从6点到0点,直接开启ftp服务(services vsftp stop 或者直接使用脚本启动)
其他时间直接关闭ftp服务,放到计划任务里面.
2.修改配置文件处理
拷贝一份安装目录下的文件
#cp /usr/share/doc/vsftpd-1.1.3/vsftpd.xinetd /etc/xinetd.d/vsftpd 修改的时候记得做备份
#vim /etc/xinetd.d/vsftpd/
修改参数 disable = no
这个参数没有的话就添加一行
access_time = hour:min-hour:min (添加配置访问的时间限制(注:与vsftpd.conf中listen=NO相对应)
例: access_time = 18:00-00:00 表示只有这两个时间段可以访问ftp而后重启vsftp服务测试一下. 查阅书籍《Linux就该这么学》.
‘捌’ Linux FTP限制
vim /etc/vsftpd/vsftpd.conf 主配置文件
anon_max_rate=0:限制匿名最大传输速率(字节/秒)
local_max_rate=0:限制用户最大传输速率(字节/秒)
max_clients=0:限制并发客户端连接数
max_per_ip=0:限制同一 IP 地址的并发连接数
‘玖’ 求,在linux 中,搭建ftp服务器的方法, 谢谢,
FTP不安全,万不得已情况下,才可使用。
vsftp安全性相对较好
可采用sftp代替FTP
Linux另外常用的FTP:
proftp
vsftp
pureftp
下面以VSFTP为例:
安装方式一:源码包安装
useradd -s /bin/false -d /var/ftp ftpvirtual
cd ......
make
make install
cp vsftpd.conf /etc
/usr/local/sbin/vsftpd & #启动
安装方式二:rpm安装,推荐
rpm -ivh vsftpd-2.0.1-5.i386.rpm
或者 yum install vsftpd
/etc/init.d/vsftpd start
两种方式安装完成后,配置方法都一样,下面开始讲配置。
首先讲主配置文件常见配置
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #禁止匿名登录
local_enable=NO #禁止本地用户登录
write_enable=YES #对本地用户的写权限
local_umask=022 #本地用户文件生成掩码
dirmessage_enable=YES #显示隐藏文件
xferlog_enable=YES #启用上传和下载日志
connect_from_port_20=YES #服务器将启用FTP数据端口的连接请求
xferlog_std_format=YES #服务器将使用标准的ftpd xferlog日志格式
pam_service_name=vsftpd #设置PAM认证服务的配置文件名称
userlist_enable=YES #设置文件中指定的用户是否可以访问vsftpd服务器
listen=YES #FTP服务器将处于独立启动模式
tcp_wrappers=YES #使用tcp_wrappers作为主机访问控制方式
chroot_local_user=YES #将FTP本地用户禁锢在宿主目录中
chroot_list_enable=YES #将用户禁锢在宿主目录中
listen_address=192.168.0.2 #侦听地址
pasv_enable=YES #是否允使用被动模式,默认是允许的。
pasv_min_port=10000 #指定使用被动模式时打开端口的最小值
pasv_max_port=10004 #指定使用被动模式时打开端口的最大值。
max_clients=100 #设置FTP服务器所允许的最大客户端连接数,值为0时表示不限制
max_per_ip=5 #同一IP地址允许的最大客户端连接数,值为0时表示不限制,即线程
local_max_rate=500000 #设置本地用户的最大传输速率,单位为bytes/sec,值为0时表示不限制
anon_max_rate=200000 #设置匿名用户的最大传输速率,单位为bytes/sec,值为0表示不限制
use_localtime=YES #在vsftp之中的时间默认值是显式GMT时间,因此我们会发现上面的时间与我们时寄存取的时间差八小时。改了这一项就好了。
listen_port=10021 改端口
one_process_model=NO yes可增加性能,增加负载,便降低安全,建议NO
nopriv_user=nobody 默认以nobody运行vsftp
对外服务,建议使用stand alone方式启动,性能好。
仅内部人员,建议用super daemon启动,修改如下:
listen=NO
……略
vsftp默认使用GMT时间,建议修改如下:
use_localtime=YES
/etc/vsftpd.ftpusers #保存不允许进行FTP登录的本地用户帐号,提高系统的安全性
/etc/vsftpd.user_list
#禁止vsftpd.user_list中的用户
userlist_enable=YES
userlist_deny=YES
#仅允许vsftpd.user_list中的用户
userlist_enable=YES
userlist_deny=NO
日志:
vsftpd_log_file=/var/log/vsftpd.log
下面开始讲vsftp四种“用户认证”的方式
一、匿名用户 ftp anonymous
/var/ftp 默认主目录
在/etc/vsftpd/vsftpd.conf中:
anonymous_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES #可删除
chmod -R 777 /var/ftp/pub/
修改/var/ftp/pub的SELinux权限
执行以下命令,修改/var/ftp/pub这目录的类型:
chcon -R -t ftpd_anon_rw_t /var/ftp/pub/
anon_root=/var/www/html/ftp #改匿名用户的宿主目录
二、本地用户
默认支持,使用各自的宿主目录。不安全
local_root=/opt #新增这一项,改成其他路径
三、虚拟用户 PAM文件方式 推荐
建立虚拟用户口令库文件
# cat logins.txt
mike
pwabcd
john
pw1234
生成vsftpd的认证文件
db_load -T -t hash -f logins /etc/vsftpd/vsftpd_login.db
chmod 600 /etc/vsftpd/vsftpd_login.db
新创建虚拟用户所需的PAM配置文件
cat /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
新创建虚拟用户的系统用户所要访问的目录并设置相应权限
# useradd -s /bin/false -d /home/ftpsite ftpvirtual
# chmod 700 /home/ftpsite
#设置vsftpd.conf配置文件,支持虚拟用户
guest_enable=YES
guest_username=ftpvirtual
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd/vsftpd_user_conf #添加用户配置文件目录设置
/etc/vsftpd/vsftpd_user_conf/mike (同名),这里没有的设置默认按vsftpd.conf的设置执行
anon_world_readable_only=NO #可以浏览FTP目录和下载文件
anon_upload_enable=YES #用户可以上传文件,等同于 write_enable=yes 允许上传
anon_mkdir_write_enable=YES #具有建立和删除目录的权利
anon_other_write_enable=YES #具有文件改名和删除文件的权限
local_root=/data/userspace #设置虚拟用户登录后的主目录
anon_max_rate=1024000 #以Bytes/s为单位,这里限8Mbit,范围大概在80%到120%之间
四、虚拟用户 mysql认证方式 推荐
1. mysql安装见mysql笔记
2.1 openssl-0.9.8e 源程序预编译时在日志中可能出现md5.h "Present But Cannot Be Compiled的错误,卸载下面某些包可能解决问题。
cyrus-sals-sql cyrus-sasl-ntlm cyrus-sasl-gssapi cyrus-sasl-devel openldap-devel
然后移除系统可能自带的:
mv /usr/bin/openssl /usr/bin/openssl.OFF
mv /usr/include/openssl /usr/include/openssl.OFF
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
配置库文件搜索路径
#echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
#ldconfig -v
2.2 或者安装openssl-0.9.8e的rpm包
3. pam_mysql-0.7RC1.tar.gz
#./configure --with-mysql=/usr/local/mysql --with-openssl=/usr/local/ssl
如果mysql是rpm安装的,则不带--with-mysql参数,如果openssl是rpm安装的,参数为--with-openssl
make;make install
注意pam_mysql.so路径,可能在/usr/lib/security/pam_mysql.so或/lib/security/pam_mysql.so
vi /etc/pam.d/vsftp.mysql #新建,仅两行
auth required /lib/security/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftp table=users usercolumn=name passwdcolumn=passwd crypt=2
account required /lib/security/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftp table=users usercolumn=name passwdcolumn=passwd crypt=2
4.0 准备数据库、表和数据
mysql> create database vsftp;
mysql> grant select on vsftp.* to vsftpd@localhost identified by '123456';
mysql> grant select on vsftp.* to [email protected] identified by '123456';
mysql> use vsftp;
mysql> create table users (
-> id int AUTO_INCREMENT NOT NULL,
-> name char(20) binary NOT NULL,
-> passwd char(48) binary NOT NULL,
-> primary key(id)
-> );
mysql> insert into users(name,passwd) values('hlc',password('hlc'));
mysql> insert into users(name,passwd) values('holly',password('holly'));
5.0 修改主配置文件
vi /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=vsftp
listen=YES
pam_service_name=vsftpd.mysql
以上完成了vsftp的配置,下面是补充:
dirmessage_enable=YES #设置欢迎语 在每个目录下建立.message,写入欢迎语即可。
db_load支持包(前面三个即可):
db4
db4-devel
db4-utils
db4-java
db4-tcl
Linux建议关闭selinux或征对FTP不做任何安全
setsebool -P -ftpd_disable_trans on
setsebool -P -allow_ftpd_full_access on
servie vsftpd restart
或者需要重启服务器
底下列出FTP访问中所出现数字代码的含意。
110 重新启动标记应答。
120 服务在多久时间内ready。
125 数据链路端口开启,准备传送。
150 文件状态正常,开启数据端口。
200 命令执行成功。
202 命令执行失败。
211 系统状态或是系统求助响应。
212 目录的状态。
213 文件的状态。
214 求助的讯息。
215 名称系统类型。
220 新的联机服务ready。
221 服务的控制端口关闭,可以注销。
225 数据链接开启,但无传输动作。
226 关闭数据端口,请求的文件操作成功。
227 进入passive mode。
230 用户登录。
250 请求的文件操作完成。
257 显示目前的路径名称。
331 用户名称正确,需要密码。
332 登入时需要帐户信息。
350 请求的操作需要进一部的命令。
421 无法提供服务,关闭控制连结。
425 无法开启数据链路。
426 关闭联机,终止传输。
450 请求的操作未执行。
451 命令终止:有本地的错误。
452 未执行命令:磁盘空间不足。
500 格式错误,无法识别命令。
501 参数语法错误。
502 命令执行失败。
503 命令顺序错误。
504 命令所接的参数不正确。
530 未登入。
532 储存文件需要账户登入。
550 未执行请求的操作。
551 请求的命令终止,类型未知。
552 请求的文件终止,储存位溢出。
553 未执行请求的的命令,名称不正确。