vsftp
1 yum install vsftpd -y 2 iptables -I INPUT 1 -p tcp --dport 20:21 -j ACCEPT 3 service iptables save
1 vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=YES // 匿名帐户可登陆 2 anon_root=/var/ftp/ // 匿名用户登录目录 默认为 /var/ftp/ 3 local_enable=YES // 本地帐户可以登陆 4 write_enable=YES //用户通过ftp在服务器上是否有写权限 5 local_umask=022 // 创建时默认权限。文件夹=777-umask,文件=666-umask 6 anon_upload_enable=YES // 允许匿名帐户上传 7 anon_mkdir_write_enable=YES // 允许匿名帐户创建文件夹 8 dirmessage_enable=YES // 是否开启 .message 文件信息描述 9 xferlog_enable=YES // 是否启用日志 10 connect_from_port_20=YES // 默认值为YES,指定FTP数据传输连接使用20端口。若设置为NO,则进行数据连接时,所使用的端口由ftp_data_port指定。 11 ftp_data_port=20 //设置PORT方式下FTP数据连接所使用的端口,默认值为20。 12 chown_uploads=YES // 开启匿名帐户上传自动更改所属功能 13 chown_username=bob // 属主改为bob 14 xferlog_file=/var/log/xferlog // 日志存储位置 15 idle_session_timeout=600 //空闲会话超时时间 16 data_connection_timeout=120 // 设置ftp 连接超时时间 17 ascii_upload_enable=YES //以ASCII方式上传 18 ftpd_banner=Welcome to blah FTP service. //欢迎界面 19 chroot_list_enable=YES //开启用户更改根目录功能,默认为禁用更改根 20 chroot_list_file=/etc/vsftpd.chroot_list //该文件中所有用户启用chroot 21 anon_other_write_enable=YES // 允许匿名帐户删除、重命名 22 anon_root=/ftp // 更改匿名帐户根目录,默认为"/var/ftp" 23 local_root=/local // 更改本地帐户根目录为/local,默认为用户主目录 24 userlist_enable=YES // 开启用户列表功能 25 userlist_deny=YES // 用户列表文件中所有帐户全拒绝。NO时,只有列表中用户能登陆 26 deny_file={*.xxx} //限制用户上传的文件类型 27 userlist_file=/etc/vsftpd.user_list // 用户列表文件 28 anon_max_rate=0 // 匿名用户最大传输速率,0为无限 29 local_max_rate=0 // 本地用户最大传输速率,0为无限 30 max_clients=0 // 最大客户端连接数,0为无限 31 max_per_ip=5 //每个ip的最大客户端数目 32 pasv_max_port=0 // 客户端端口最大限制,0为无限制 33 pasv_min_port=0 // 客户端端口最小限制,0为无限制 34 connect_from_port20=YES //使用标准的20端口来连接ftp 35 listen_address=192.168.10.14 //绑定到某个ip,其它ip不能访问 36 anon_upload_enable=YES // 允许上传 37 anon_world_readable_only=YES //允许下载 38 anon_mkdir_write_enable=YES //允许新建目录 39 anon_other_write_enable=YES //拥有其它权限 40 local_root=/var/ftp/ziji //用户的文件夹
41 pasv_enable=YES //开启被动传输模式
42 listen_port=5021 //命令通道端口,默认为21
43 ftp_data_port=5021 //数据通道端口,默认为20
anon_world_readable_only
默认情况下,匿名用户所有上传下载,所使用的用户都是ftp用户的权限,若要上传文件,则需要ftp用户有写的权限,若要下载,则需要ftp用户有读的权限,也就是说一般情况下,ftp用户对文件有读权限就对文件有下载权限了
文件有三种权限,文件所有人,文件所有组,文件的其他人,这个anon_world_readable_only参数意思是,当他为YES时候,文件的其他人必须有读的权限才允许下载,单单所有人为ftp且有读权限是无法下载的,必须其他人也有读权限,才允许下载,这是为安全性的一方面考虑,若为NO则只要ftp用户对文件有读权限即可下载
1.在linux centos6.5 中 允许本地用户登录后 却不能登录解决方法
方法一:将setenforce 设置为0
方法二:修改布尔值
setsebool -P ftp_home_dir on
2.上传文件的方式
bin模式 一般为一些不可编辑的文件
ascii 模式 一般为一些可以编辑的文件
上传命令 put 文件路径
使用匿名用户是登录到/var/ftp/ 这个文件夹的,因为对这个目录没有权限,所以不能上传文件。解决方法:
mkdir /var/ftp/ceshi //创建一个目录
chown ftp:ftp ceshi //更改文件的所有人和所有组
然后修改布尔值:
setsebool -P allow_ftpd_anon_write on
setsebool -P allow_ftpd_full_access on
3.对本地用户进行chroot处理
当只启用 chroot_local_user=YES 时,则对所有用户进行chroot处理
当只启用 chroot_list_enable=YES 时,只对list文件用户进行chroot处理
当同时启用这两个文件时,则除了list文件用户外,剩下的进行chroot处理
4.限制用户登录方法:
启用pam_service_name=vsftpd userlist_enable=YES
方法一: echo 用户名 > ftpusers
方法二: echo 用户名 > user_list
5.添加虚拟用户
① 添加虚拟用户口令文件: touch vsftpd_login.txt
文件里奇数行写用户名 偶数行 写密码
② 生成vsftpd的认证文件:使用db_load -T -t hash命令生成认证文件,“-f”命令选项设置的值是虚拟用户的口令库文件,即vsftpd_login.txt,命令的参数设置为需要生成的认证文件名vsftpd_login.db,该文件必须和口令文件放在一个文件夹下。注意:db_load 在centos6.5中自带,centos5.5总必须安装db4_utils这个软件包才支持。最好对这个文件进行权限更改
③建立虚拟用户所需的PAM配置文件:修改/etc/pam.d/vsftpd文件
将默认配置全部用“#”注释在最后添加
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 -d /var/ftp/user1 user1
⑤在配置文件里添加 user_config_dir=用户配置文件目录
在目录下建立虚拟用户文件 进行配置相应的权限,需要注意的是 需要启用本地用户的登录,这样虚拟用户才可以登录
6.基于ip的虚拟vsftp服务
①添加ip地址: ip addr add 192.168.10.141/24 dev eth0 label eth0:1
②配置文件 cp -p ifcfg-eth0 ifcfg-eth0:1
③对配置文件修改 并重启网卡
④cp -p vsftpd.conf vsftpd2.conf 在配置文件中添加listen_address=IP地址
7.给指定网段用户不同权限
1 vim /etc/hosts.allow 2 vsftpd 192.168.10.*:setenv VSFTPD_LAOD_CONF /etc/vsftpd/a.conf 3 vim /etc/vsftpd/a.conf