vsftpd服务器-匿名-本地-虚拟用户
vsftpd配置文件的帮助:
man vsftpd.conf
lftp:是Linux中专有的命令:所以推荐使用
lftp -u user1 192.168.30.250
#指定用户登录 FTP 服务器
其中21是监听端口,20是数据传递端口。
端口:
22 端口:是Linux当中远程管理端口,安全加密,不给普通用户用,只给管理员用
21端口:FTP协议。
23端口:TELENT,远程管理协议,不安全,非明文。
25端口:SMTP,简单邮件管理协议,用于发邮件
53端口:DNS,即有TCP 53端口,也有 UDP 53端口。
69端口:TFTP,简单文件传输协议,
161端口:SNMP简单网络管理协议,主要用来做监控。
深绿:属于UPD端口
蓝色:属于TCP端口
53:即有TCP,也有UPD。
注意: 10000 一万以内的系统预留端口,服务程序预留。超过一万的可以给用户自由使用。
vi /etc/services----把所有的常规端口做了罗列。
chkconfig --list 查看自启动的。
netstat -tlun 查看启动的。
vsftpd服务支持主动模式需要注意配置选项
1、port_enable=yes
2、connect_from_port_20=YES
FTP:(文件传输协议)对外提供共享功能,
在Linux中使用的是 vsftpd ,全称:非常安全ftp
对外提供2个端口:20 21:
20:端口是用来传输数据的,也就是通过ftp下载东西,都是通过ftp的20端口下载到本地的
21:端口是用来传输信任的,验证等。一些控制信息都是通过21端口走的。
工作原理:--这2中模式都是相对于 服务器来说的。默认情况下使用的是 被动连接模式。
数据传输时候有2中模式:
1、主动模式
当客户机向FTP服务器发送连接请求到21,当21端口验证成功后,FTP服务器20端口会主动连接客户机的另一个端口。
2、被动模式
当客户机连接FTP服务器的时候,发送请求到21,并告诉FTP服务器连接的数据连接端口,这时候可以称做被动连接。
FTP:上传方法2种
1、bin(上传一些不可编辑的文件,如:照片)如果用bin上传文档文件可能会产生乱码
2、ascii(如果是可编辑的文本文件,选用这种)
put 文件的路径
dir 查看文件列表
pwd 查看当前位置
cd testdir 进入目录
2-1、不能上传的原因:
2-1-1、ftp配置文件对应的设置是否开启。
2-1-2、用户上传所在目录是否有对应的W权限,或者新建一个目录,所有者和所属组都是ftp。
权限对目录的作用:
1、r:可以查询目录下文件名(ls)
2、w:具有修改目录结构的权限。如:新建文件和目录,删除此目录下文件和目录,重命名次目录下文件和目录,剪切(touch rm mv cp)
3、x:可以进入目录(cd)
2-1-3、如果上2中方法都没有解决,就需要考虑SELinux的问题了
安装 vsftpd 服务:
yum -y install vsftpd
1、可以支持本地用户
2、支持匿名用户
3、支持虚拟用户
设置ftp防火墙规则:
iptables -I INPUT 1 -p tcp --dport 20:21 -j ACCEPT
PAM的管理的vsftpd的配置文件路径:
/etc/pam.d/vsftpd
/etc/vsftpd/vsftpd.conf
帮助查看: man vsftpd.conf
1、是否允许匿名用户登录
登录:---匿名登录到的目录是:/var/ftp/
ftp 192.168.30.250 回车 提示输入:ftp (匿名登录时的用户名) , 没有密码
2、虽然设置了允许本地用户登录,但是会提示无法切换到该用户的家目录,这是因为SELinux的问题,如果关闭可以直接登录成功。如果设置本地用户可以登录ftp,则需要修改SELinux的boolean值
3、设置本地用户是否可以写
4、设置本地用户的最大权限
5、设置匿名用户的一些操作
6、设置从A目录到B目录时,在B目录中显示的欢迎词或警告语、
这个警告语只在ftp命令登录时显示,如果网页登录是不显示的。
7、是否启用ftp日志---及日志的日志文件路径---及日志的存储方式
8、默认端口连接
9、修改ftp匿名上传后文件的所有者
10、设置超时时间:连接后未做任何动作后多长时间断开连接
11、设置一连接时候显示的欢迎词。
12、设置所有默认显示的位置为 根 / ,实际位置仍是用户的家目录。
也就是做 chroot 设置(即:将用户默认登录的所在位置显示为 根目录)
12-1、设置指定用户做chroot:
13、指定匿名用户登录后默认所在目录位置:
14、最下面的设置选项:
14-1、批量允许、拒绝用户登录
切记:添加设置的时候 参数 等号= 值 之间没有空格,否则启动服务会报错。
userlist_enable=YES 是否启用用户列表,默认是启用的。
userlist_deny=YES ---用户列表默认是存在的。(表示是否决绝。YES:是拒绝 NO:不拒绝)
1、凡是在用户列表:user_list 文件中出现的用户,登录ftp服务器都是被拒绝的,没有出现在用户列表 user_list 文件中的用户都是可以登录ftp服务器的
2、如果这个值改为 NO,则只有在用户列表 user_list 文件中的用户才可以登录ftp服务器,否则其他用户登录都是被拒绝的。
userlist_file=/etc/vsftpd/user_list
#用户列表
14-2、为什么出现在 ftpusers 中的用户都是被拒绝的?
因为PAM中 deny(拒绝)这个文件中的用户登录
14-3、限制指定后缀的文件不能上传
14-4、如果出现如下错误需要添加防火墙模块即可
用ftp登录后,使用命令出现的错误
用lftp登录后,使用命令出现的问题
所以需要在 /etc/sysconfig/iptables-config 配置文件中添加对应的模块即可
设置虚拟用户:
1、创建虚拟用户列表文件(在主配置目录下 /etc/vsftpd/),隐藏格式(较为安全)
1-1、创建虚拟用户需要映射的 本机用户
主要作用就是通过这个本机用户映射到ftp服务器
2、生成数据库文件。
db_load -T -t hash -f .vusers.list vusers.db
2-1、修改文件的权限,确保文件的安全
3、手工创建 PAM 认证文件(在pam目录下 /etc/pam.d/vsfptd.vu)
4、修改vsftpd的主配置文件
5、测试登录成功。只是能登录成功,其他操作并不能正确执行
6、创建配置文件(在 /etc/vsftpd/ 下创建),用于存放虚拟用户的配置文件。
6-1、创建虚拟用户的配置文件。
需要注意的是:这个local_root指向的目录所有者必须是vistual(这个本机的虚拟用户)
6-2、创建虚拟用户的"家目录"(其实是:vistual这个本机用户)
6-3、修改主配置文件,添加 虚拟用户配置文件的指向
7、此时就相当于给虚拟用户设置了目录。
如果查看不到文件,关闭SELinux