- 浏览: 2158579 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (401)
- Agile (16)
- Apache Commons (3)
- Architecture (8)
- DB.MongoDB (5)
- DB.Mysql (3)
- DB.Oracle (34)
- DirectoryService (1)
- DotNet (1)
- English (3)
- Groovy (0)
- Html (28)
- Java (67)
- Java.Aixs (7)
- Java.Cache (2)
- Java.jPBM (1)
- Java.Resin (6)
- Java.Spring (4)
- Java.Struts2 (5)
- Java.Tomcat (16)
- Javascript (45)
- Javascript.Google Map (2)
- Javascript.Jquery (8)
- Life (15)
- Maven&Ant (4)
- Network (5)
- OS.Linux (45)
- OS.Windows (10)
- OS.Windows.Office (1)
- PlayFramework (15)
- Python (28)
- Reading notes (11)
- Security (13)
- Server.Apache (3)
- Server.Nginx (7)
- Test (6)
- Tool (15)
- Work.Solution (15)
- Other (20)
- SSO&CAS&Identity (13)
最新评论
-
hutuxiansheng123:
防火墙、Iptables、netfilter/iptables、NAT 概述 -
dacoolbaby:
非常棒的正则表达式,非常适用。万分感谢。
用python分析nginx的access日志 -
loot00:
您好! 我也遇到了相同的错误信息。我是用f_link_lob ...
LOB variable no longer valid after subsequent fetch -
feihangchen:
@OnApplicationStop public clas ...
Play framework 1.2.3 Jobs定时任务、异步任务、引导任务、触发任务、关闭任务 -
洞渊龙王:
谢谢了
www.w3.org被qiang导致logback报错:Connect reset
1, 安装:yum install vsftpd
2, 设置vsftp开机自启动:chkconfig --level 35 vsftpd on
3, 启动vsftpd守护进程:Service vsftpd start
4, 开启iptables防火墙21端口-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT ,然后重启service iptables restart
5, 截止到现在:
6, 匿名用户上传下载
7, 由于默认情况下,匿名ftp用户的PASV模式访问被防火墙阻塞,启用PASV模式访问
8,禁用匿名用户,启用系统本地用户
9,禁用匿名用户,启用虚拟FTP用户
10,ssl加密的vsftp(vsftp with OpenSSL)参考:加密ssl vsftp、ftp隐式加密&显式加密
11,vsftp配置用户磁盘配额(磁盘限额参考:Virtualbox下为CentOS增加新硬盘、Linux添加新硬盘、vsftp配置用户磁盘配额(磁盘限额)
vsftpd日志:默认情况下,vsftp在/var/log/xferlog文件中记录Wu-ftpd格式的日志(它会记录上传和下载的动作)。通过设置dual_log_enable和log_ftp_protocol,可以启用vsftp自己的日志,默认日志文件/var/log/vsftpd.log,其中会记录所有的ftp命令日志,看到的内容和FTP客户端FileZilla中显示的内容一致!所以调试错误的时候,貌似也没有开启的必要。ftp登录或者操作出问题的时候,主要看返回的错误代码是多少,然后找可能的原因。如553 Could not create file.
常见ftp错误代码:
2, 设置vsftp开机自启动:chkconfig --level 35 vsftpd on
3, 启动vsftpd守护进程:Service vsftpd start
4, 开启iptables防火墙21端口-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT ,然后重启service iptables restart
5, 截止到现在:
- a. Vsftpd配置文件:/etc/vsftpd/vsftpd.conf
- b. 系统用户ftp(默认无密码)已经可以作为vsftp的匿名用户来使用。
- c. 从/etc/passwd中的值ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin可以看出:根目录 /var/ftp/, 禁止控制台登陆,也就是该用户只能进行ftp访问。
- d. anon_upload_enable=YES,anon_mkdir_write_enable=YES被注释掉,即默认匿名用户不可上传文件,也不可以在服务器上创建目录。
- e. port_enable=YES,即默认情况下,FTP PORT主动模式被启用
- f. connect_from_port_20=YES,即默认情况下,FTP PORT主动模式进行数据传输时使用20端口(ftp-data)。YES使用,NO不使用。
- g. ftp_data_port=port number,设定ftp数据传输端口(ftp-data)值。默认值为20。此参数用于PORT FTP模式。
- h. pasv_enable=YES,即默认情况下,FTP PASV被动模式被启用。但是由于防火墙设置的原因,默认情况下,FTP PASV被动模式使用FTP会失败。
- i. listen=YES,即默认情况下,vsftpd以单例模式监听IPv4 socket端口。该命令不能和listen_ipv6同时使用。因此如果要同时启用对IPv4和IPv6的支持的话,必须同时运行2份vsftpd,每份vsftpd包含自己的配置文件(一个监听IPv4,一个监听IPv6)
- j. windows cmd下使用命令 ftp serverip,然后在弹出的提示画面中输入用户名“ftp”就能正常登录到ftp服务器。执行命令ls,从服务器端返回的如下信息:“200 PORT command successful. Consider using PASV.150 Here comes the directory listing.”中我们就可以看出,这个ftp连接执行在PORT主动模式下
- k. 使用Winscp、FileZilla连接时,会发现ftp用户能正常登录,但是list命令执行超时。这是因为默认情况下,这些客户端的FTP都运行在PASV被动模式下,而vsftp服务器由于没有对PASV端口范围及相应的iptables防火墙做设置,数据传输的连接被阻塞导致命令执行超时。当客户端强制启用PORT主动模式连接后,就能正常使用ftp功能。
- l. FileZilla强制启用FTP PORT主动访问方式:Edit->Setting->Connection->Ftp->Transfer Mode->Select “Active” and uncheck “Allow fall back to other transfer mode on failure”
- m. Winscp强制启用FTP PORT主动访问方式:在Winscp的login登录界面中,选择ftp,然后勾上“Advanced options”,选中左边导航中的Connection栏目,然后在弹出画面上不选中“Passive Mode”。
6, 匿名用户上传下载
- a. anonymous_enable=YES
- b. anon_upload_enable=YES
- c. anon_mkdir_write_enable=YES
- d. 目录权限设置:修改/var/ftp/pub的目录权限为744,并把目录的owner和group都改成ftp(ftp用户必须有可执行x权限,否则在执行ftp命令CWD pub时,会报错误:Response: 550 Failed to change directory. Error: Failed to retrieve directory listing。匿名用户下载是使用的是nobody这个用户,所以权限相应的other这个位置要有R权限才能被下载。)
- e. chown ftp.ftp /var/ftp/pub
- f. chmod 744 /var/ftp/pub
- g. /var/ftp使用默认的权限755以及默认的owner、group:root
- h. 如下关闭selinux,否则上传文件时报错误553 Could not create file. Error: Critical file transfer error。也可以不关闭selinux,在selinux中设置ftp例外,参考:
- i. /etc/selinux/config文件中的SELINUX=enforcing,改成SELINUX=permissive,机器reboot(如果不想重启机器,也可以执行命令setenforce 0;setenforce 1 设置SELinux 成为enforcing模式;setenforce 0 设置SELinux 成为permissive模式。)
- j. 上传后的文件不能被直接下载,如果需要可以直接被下载,要设置匿名用户上传文件时的掩码anon_umask=073
- k. 匿名用户重命名,删除权限设置anon_other_write_enable=YES
- l. no_anon_password=YES #匿名用户登录时不询问口令
7, 由于默认情况下,匿名ftp用户的PASV模式访问被防火墙阻塞,启用PASV模式访问
- a. pasv_enable=YES,即默认情况下,FTP PASV被动模式被启用。
- b. pasv_min_port=30000 ,设定在PASV模式下,建立数据传输所可以使用port范围的下界和上界,0 表示任意(1024 – 65535端口)。默认值为0。把端口范围设在比较高的一段范围内,比如30000-31000。
- c. pasv_max_port=31000
- d. 防火墙设置:-A INPUT -m state --state NEW -m tcp -p tcp --dport 30000:31000 -j ACCEPT ######同时可以用参数-s 192.168.0.0/16来限制客户端IP范围,以这种方式增加安全性。
- e. netstat -ap | grep ftp 查看服务器端ftp数据传输时使用的端口: tcp 1455572 0 192.168.0.1:30661 192.168.0.2:63731 ESTABLISHED 1746/vsftpd(下载)
tcp 0 57032 192.168.0.1:30886 192.168.0.2:63750 ESTABLISHED 1785/vsftpd(上传)
8,禁用匿名用户,启用系统本地用户
- a. anonymous_enable=NO 禁止匿名用户登录 local_enable=YES 允许本地用户登录
- b. write_enable=YES #本地用户可以上传(全局控制) 删除,重命名
- c. local_umask=022 #本地用户上传文件的umask,上传文件默认权限644(666-022),上传文件夹默认权限755(777-022)
- d. 关闭selinux,否则上传文件时报错误553 Could not create file. Error: Critical file transfer error。也可以不关闭selinux,在selinux中设置ftp例外,参考:
- e. userlist_enable=yes 启用/etc/vsftpd/user_list列表
- f. userlist_deny=no 只允许/etc/vsftpd/user_list列表中的用户登录(ftpusers限制仍然起作用)
- g. chroot_list_enable=NO,chroot_local_user=YES,所有的用户均不能切换到其他目录。
- h. useradd –d /ftp –s /bin/false prj 添加本地系统的ftp用户prj,并设置用户home目录,禁止shell登录,设置密码passwd prj。默认创建的/ftp目录owner是prj,权限700。
- i. 把用户prj加到user_list列表文件中
- j. user_config_dir=/etc/vsftpd/userconf #设置用户的单独配置文件,用哪个帐户登陆就用哪个帐户命名,实现不同用户不同权限(1,文件格式、属性和主配置文件一致 2,文件名没有.conf后缀 3,这里的属性会覆盖主配置文件相应的属性 4,并不是所有属性放这里都会起作用)
- k. 建立目录/etc/vsftpd/userconf,并创建ftp用户名想对应的文件prj,在文件中用local_root属性指定prj用户登录后进入的目录。还可以设置属性:cmds_allowed,local_umask=022, local_max_rate限速等
- l. 编辑/etc/pam.d/vsftp文件,注释掉auth required pam_shells.so(这个语句的意思是只有包含shell的用户才能登录)
- m. ftpd_banner定制ftp登录时的欢迎信息
- n. max_clients=100 #FTP的最大连接数
- o. max_per_ip=5 #每IP的最大连接数
- p. vsftpd服务器重启
9,禁用匿名用户,启用虚拟FTP用户
- a. anonymous_enable=NO 禁止匿名用户登录
- b. local_enable=YES 允许本地用户登录,虽然虚拟用户不是操作系统用户,但是最终还是关联到虚拟宿主用户身上,因此,这里属性还是要设置为yes
- c. pam_service_name=vsftpd #设置PAM使用的名称,默认值为/etc/pam.d/vsftpd。
- d. guest_enable=YES 启用虚拟用户登录
- e. guest_username=ftp #这里设置虚拟用户的宿主用户。默认值为ftp。
- f. virtual_use_local_privs=YES/NO #当该参数激活(YES)时,虚拟用户与其宿主用户有相同的权限。 当此参数关闭(NO)时,虚拟用户与匿名用户有相同的权限。默认情况下此参数是关闭的(NO)。
- g. 用db_load生成虚拟用户数据库
- h. 修改pam.d下的vsftpd文件,修改用户认证方式
- i. …
10,ssl加密的vsftp(vsftp with OpenSSL)参考:加密ssl vsftp、ftp隐式加密&显式加密
11,vsftp配置用户磁盘配额(磁盘限额参考:Virtualbox下为CentOS增加新硬盘、Linux添加新硬盘、vsftp配置用户磁盘配额(磁盘限额)
// 匿名用户设置 anonymous_enable=YES no_anon_password=YES anon_root=/var/ftp anon_umask=073 anon_max_rate= anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable chown_uploads chown_username // 本地用户设置 anonymous_enable=NO write_enable=YES userlist_enable=yes userlist_deny=no chroot_list_enable=NO chroot_local_user=YES user_config_dir=/etc/vsftpd/userconf // 本地用户设置 - 各用户独立设置属性 local_root local_umask=022 local_max_rate
vsftpd日志:默认情况下,vsftp在/var/log/xferlog文件中记录Wu-ftpd格式的日志(它会记录上传和下载的动作)。通过设置dual_log_enable和log_ftp_protocol,可以启用vsftp自己的日志,默认日志文件/var/log/vsftpd.log,其中会记录所有的ftp命令日志,看到的内容和FTP客户端FileZilla中显示的内容一致!所以调试错误的时候,貌似也没有开启的必要。ftp登录或者操作出问题的时候,主要看返回的错误代码是多少,然后找可能的原因。如553 Could not create file.
- xferlog_enable=yes/no //是否启用 xferlog 日志格式
- xferlog_std_format=yes/no //是否采用标准格式记录日志
- xferlog_file=/path/to/logfile //xferlog 日志文件所在位置,默认为/var/log/xferlog
- dual_log_enable=yes/no //是否采用VSFTPd自己的日志记录方式
- log_ftp_protocol=yes/no //是否记录所有的ftp命令日志
- syslog_enable=yes/no //是否将日志信息写入系统日志/var/log/messages中
常见ftp错误代码:
- Connect 连接被拒绝: 可能原因是vsftpd服务没被启动
- 530 Permission denied: 可能原因是userlist_enable=YES并且/etc/vsftpd/user_list中包含要登录的ftp用户名 即user_list禁止了该用户的登录、或者可能是没有指定userlist_file=/etc/vsftpd/user_list
- 530 Login incorrect: 可能原因是登录的ftp用户名被包含在禁止登录列表/etc/vsftpdftpusers中 | 同时要确保用户名、密码是正确的 | 也可能是配置文件中少了一行pam_service_name=vsftpd | 检查/etc/pam.d/vsftpd 文件里面lib的路径 | 编辑/etc/pam.d/vsftp文件,注释掉auth required pam_shells.so(这个语句的意思是只有包含shell的用户才能登录)
- 530 Non-anonymous sessions must use encryption.:服务器的强制,非匿名用户必须使用加密连接
- 500 OOPS: cannot open user list file:可能原因是不存在文件“/etc/vsftpd/user_list”或文件中不存在该帐户,解决:解决: cho username >> /etc/vsftpd/user_list
- 500 OOPS: cannot open chroot() user list file | 500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list:可能原因是不存在文件“/etc/vsftpd/chroot_list”
- 500 OOPS: missing value in config file: 可能原因是配置文件“=”等号前值有问题,或只有一个空格
- 500 OOPS: bad bool value in config file: 可能原因是配置文件=”等号后值有问题
- 500 OOPS: unrecognised variable in config file: 可能原因是参数前有空格
- 500 OOPS: chdir, 500 OOPS: child died, 500 OOPS: chroot:可能原因是用户主目录没有权限或没有主目录,或者还是selinux影响的
- 500 OOPS: vsftpd: both local and anonymous access disabled!匿名用户和本地用户登录都被禁用
- GnuTLS error -12: A TLS fatal alert has been received.:received.:Filezilla最新版本认为vsftpd默认的加密算法"DES-CBC3-SHA"不够安全而拒绝连接导致的。有两种办法解决该问题,一是降级你的Filezilla客户端版本到3.5.3以下,二是更改服务器端vsftpd的配置。增加属性:ssl_ciphers=HIGH
- ECONNREFUSED - Connection refused by server: 当启用隐式ssl连接,用filezilla、winscp客户端连接时报错,因为vsftpd此时服务器端的端口还是21,但是客户端确以990来连接。修改客户端连接时使用的参数或者服务器的通过参数listen_port设置端口为990,问题解决
发表评论
-
openssl 非对称加密DSA,RSA区别与使用介绍(转)
2012-10-26 16:42 14195在日常系统管理工作中,需要作一些加解密的工作,通过openss ... -
Virtualbox下为CentOS增加新硬盘、Linux添加新硬盘、vsftp配置用户磁盘配额(磁盘限额)
2012-09-27 16:29 4264增加新磁盘: 1,关闭CentOS系统(如果不关闭cento ... -
加密ssl vsftp、ftp隐式加密&显式加密
2012-09-27 14:30 9428FTP over SSL (Implicit)隐式ssl与FT ... -
(转)vsftp详细配置、/etc/vsftpd/vsftpd.conf
2012-09-26 15:26 12270匿名用户权限控制: ano ... -
(转)sshd_config配置 详解
2012-09-25 16:05 7464转自:sshd_config配置 详解 # 1. 关于 S ... -
sftp配置
2012-09-25 09:34 20810限制sftp用户(必须是操作系统用户)的访问权限 不设置Chr ... -
ftp、sftp、scp、ssh、openssh
2012-09-24 10:11 21467FTP(File Transfer Protocol) ... -
Linux time命令、dd命令、测试硬盘读写速度、磁盘备份恢复
2012-09-12 10:08 6167time命令常用于测量一个 ... -
NFS安装配置及常见问题、/etc/exports配置文件、showmount命令
2012-09-11 09:25 932401,服务器端软件:安装nfs-utils和portmap(rp ... -
网络文件系统(Network File System,NFS)、NFS安全配置相关、NFS相关端口及防火墙设置
2012-09-10 14:35 1739网络文件系统(Network File System,NFS ... -
(转)udev、给硬盘分配固定设备名(符号链接)
2012-09-10 13:45 8253man udev - 动态设备管理 為什麼採用 udev(s ... -
linux网络配置相关命令、虚拟网络接口eth0:0
2012-09-06 10:11 32157网络接口(interface)是网络硬件设备在操作系统中的表示 ... -
linux网络配置相关文件
2012-09-05 16:35 1932网络接口(interface)是网 ... -
Linux man命令、帮助文档Section
2012-09-05 14:34 4766linux man的常用用法: man section cmd ... -
Linux安装源码包
2012-09-04 14:39 6468在linux下面安装一个源码包是最常用的,笔者在日常的管理工作 ... -
(转)如何查看Linux 硬件配置信息、dmesg命令、Linux版本
2012-08-31 14:06 2901转自:如何查看Linux 硬件配置信息 机器中所有可用网卡及 ... -
Linux常见设备及相应/dev/xxx文件名、Mount Point、挂载点、Mount命令、fstab、挂载分区
2012-08-31 11:18 11702Linux 中的设备有2种类型 ... -
VirtualBox 4.1安装CentOS6 Server版 - 问题记录、Linux Mount点
2012-08-31 09:51 76361,CentOS系统下载页面htt ... -
x86,I386,i686, x86_64, x64,amd64、Windows Linux AIX下查看CPU位数和操作系统位数、rpm包名
2012-08-29 11:12 12462a2ps-4.13b-57.2.el5.i386.rpm ... -
Yum install man、Yum仓库(CentOS-Base.repo)、本地yum仓库
2012-08-28 15:27 13527CentOS版本查看: cat /etc/*release* ...
相关推荐
1. **禁用匿名访问**:设置 `anonymous_enable` 为 `NO`,确保只有经过认证的用户才能访问 FTP 服务器。 ```ini anonymous_enable=NO ``` 2. **启用本地用户访问**:设置 `local_enable` 为 `YES`,允许系统上...
总结,通过以上步骤,我们不仅安装了VSFTP服务器,还配置了安全性设置,如禁用匿名访问、限制用户在自己的主目录内操作以及设置了被动模式端口。此外,我们还创建了一个用户并测试了FTP服务。确保始终关注安全性和...
- `pasv_min_port`和`pasv_max_port`:设置被动模式的端口范围。 - `user_config_dir=/etc/vsftpd/vconf`:虚拟用户配置文件的路径。 - `pam_service_name=vsftpd`:PAM认证模块的配置文件名。 - `userlist_...
6. **被动模式**:启用被动模式并设置被动模式下的端口号范围。 ```ini pasv_enable=YES pasv_min_port=38001 pasv_max_port=38005 ``` 7. **反向域名解析**:关闭反向域名解析以提高性能。 ```ini reverse_...
总结来说,安装和配置VSFTP在CentOS 6.3上的过程涉及多个步骤,包括安装软件包、配置防火墙规则、修改VSFTP配置文件以及创建和设置用户权限。通过这些步骤,我们可以创建一个安全且功能齐全的FTP服务器,供用户验证...
- **数据连接**:`connect_from_port_20=YES`启用标准FTP数据连接,`pasv_enable=YES`允许被动模式连接,适用于防火墙后的环境。 - **虚拟用户和组**:配置虚拟用户需要结合PAM和口令文件,涉及多个步骤,包括创建...
### vsftp+ssl配置文档详解 #### 一、前言 在网络安全日益受到重视的今天,采用加密方式传输数据已经成为一种普遍做法。FTP作为一种常用的数据传输协议,在安全性方面也不断得到加强。通过与SSL/TLS协议相结合,...
2. 对匿名用户设置严格的权限,避免他们访问敏感目录。 3. 定期更新Vsftpd到最新版本,以获取安全补丁。 4. 使用PAM和Chroot机制增强用户隔离。 通过以上配置,你可以根据需求构建一个安全且易于管理的FTP服务器...
6. `pasv_min_port`和`pasv_max_port`,设置被动模式端口范围,如61001到62000。 7. 配置防火墙规则,允许FTP服务的端口通过,如60001-61000和20、21。 完成配置后,需要更新防火墙设置,使用`sudo service ...
此外,`pasv_enable=YES`和`pasv_min_port`及`pasv_max_port`设置可以确保FTP在防火墙后的连接性,通过设置PASV模式的数据端口范围。 为了进一步提高安全性,可以禁用不安全的命令,如`write_enable=NO`关闭写权限...
例如,禁止匿名用户登录(`anonymous_enable=NO`),允许本地用户写入文件(`write_enable=YES`),并设定用户根目录(`chroot_local_user=YES`)。完整的配置文件内容如下: ```conf anonymous_enable=NO write_...
例如,设置欢迎消息、本地目录、匿名用户行为等。下面是一些关键配置: 1. 设置本地目录指向创建的`ftpfile`: ```bash local_root=/ftpfile/ ``` 2. 允许匿名用户登录: ```bash anonymous_enable=YES ``` ...
3. 设置FTP服务器的匿名用户权限,禁止删除文件。 4. 创建并配置普通用户账户,赋予写权限。 5. 配置虚拟用户,确保只有特定用户能访问特定目录。 6. 在客户端进行连接测试,验证FTP服务的正常运行。 通过这个实验...
在Linux系统中,VSFTPD (Very Secure FTP Daemon) 是一款...例如,你可以禁止匿名访问,只允许特定用户连接,或者限制用户的上传下载速度等。通过熟练掌握VSFTPD的配置,你将能够构建出一个既安全又高效的FTP服务器。
3. **PASV模式**:通过设置`pasv_enable=YES`和合适的`pasv_min_port`与`pasv_max_port`,可以强制客户端在更安全的被动模式下进行连接。 **用户管理** VSFTP可以集成到系统用户数据库,如`/etc/passwd`。你也可以...
pasv_min_port=30000 pasv_max_port=30999 ``` 之后,同样更新iptables规则: ``` -A INPUT -m state --state NEW -p tcp -m tcp --dport 30000:30999 -j ACCEPT ``` 重启VSFTPD服务: ``` [root@bogon~]#...