FTP使用TCP协议
21端口传输控制信息
20端口传输数据
验证信息采用明文传输
匿名用户anonymous
binary模式传输程序、图片等二进制文件
ascii模式舆文本文件
安装vsftpd
1.下载源代码vsftpd-2.0.5.tar.gz
2.编译源程序,可参考帮助文件INSTALL
#tar zxvf vsftpd-2.0.5.tar.gz
#cd vsftpd-2.0.5
#make
#make install
3.安装配置文件
#cp vsftpd.conf /etc
#cp RedHat/vsftpd.pam /etc/pam.d/ftp
4.编缉配置文件/etc/vsftpd.conf
5.启动服务器
#/usr/local/sbin/vsftpd &
配置文件
listen=YES 服务器独立运行
服务器默认配置文件,不允许其他用户登录,只能匿名登录,匿名登录需要先建/var/ftp目录
finger 用户信息查看工具
finger ftp 确认是否有ftp这个用户
为匿名用户可登录,要创建ftp用户和/var/ftp目录
#mkdir /var/ftp
#chown root.root /var/ftp
#chmod og-w /var/ftp
为使vsftpd开机自动进行,在/etc/rc.local添加/usr/local/sbin/vsftpd &
#netstat -tnl 查看本地已启动的服务
vsftpd可以以两种方式运行
让vsftpd独立运行,关闭xinetd的方式
#chkconfig vsftpd off
vsftpd的配置文件
anonymous_enabled=YES #允许匿名登录
local_enable=YES #允许本地用户登录
write_enable=YES #允许客户端写
local_umask=022 #本地用户新建文件的umask值
anon_upload_enable=YES #允许匿名用户上传文件
anon_mkdir_write_enable=YES #允许匿名用户创建目录
dirmessage_enable=YES #允许使用目录的消息
ftpd_banner=Welcome to redhat #登录欢迎词
ls_recure_enable=YES #允许客户端使用ls -R命令
listen=YES #监听模式
修改配置文件后,重新启动vsftpd服务
#killall -9 vsftpd 强行终止
#/usr/local/sbin/vsftpd & 启动
#id redhat 查看redhat用户信息(组id,所属组)
#mkdir /var/ftp/incoming #为匿名用户开放上传incoming目录
#chgrp ftp incoming
#chmod g+w incoming
chroot环境 (用户不能改变主目录,不能查看主目录外的其他目录,可以隐藏主目录的位置)
/etc/vsftpd.conf:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
如果把chroot_local_user=YES,则本地所有的用户都变成chroot环境,它的默认值为NO。
/etc/vsftpd.chroot_list: (锁定主目录的用户列表)
redhat
chiaitlab
#killall -HUP vsftpd
用户控制
#vi /etc/vsftpd.conf添加
userlist_enable=YES 启用用户列表
userlist_file=/etc/ftpusers 定义用户列表文件位置
userlist_deny =YES 拒绝列表的用户
=NO 只允许列表的用户登录
要达到上面同样的效果,还可以修改/etc/pam.d/vsftpd文件。默认为拒绝列表的用户:
auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
只要把上面的deny改成allow就可以允许列表的用户。
#vi /etc/ftpusers
编缉用户列表,将要进行控制的用户添加进去,一行一个用户
#ldd vsftpd 显示依赖的共享库
默认编译安装没有支持PAM模块,通过ldd /usr/sbin/vsftpd看是否在依赖于libpam.so.0,如果有证明服务支持PAM。
通过光盘RPM安装(第二张)
#rpm -ivh vsftpd-2.0.4-1.2.i386.rpm
配置文件及用户列表在/etc/vsftpd目录下
pam服务名 /etc/pam.d/vsftpd
vsftpd在/usr/sbin/vsftpd
ftp默认拒绝id 500以下的用户登录
虚拟账号
对于用DB库存储用户及密码,先看系统是否有相应软件包
#rpm -qa | grep db4
db4-devel 第三张盘
db4 第一张盘
db4-utils 第4张盘
1.建虚拟账号users.txt
tom
123
jack
123
用户密码各占一行
#db_load -T -t hash -f users.txt /etc/vsftpd/vsftpd_login.db
#chmod 600 /etc/vsftpd/vsftpd_login.db
2.修改/etc/pam.d/vsftpd 增加(将其他注释掉,否则有可能会出现虚拟用户无法登陆的错误)
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login
3.建虚拟账号目录
#useradd vuser
!!注意,编译安装vsftpd时,首先检查是否安装了pam-devel(FC5在第4张盘),否则编译选项定义了pam,但依然无法使用pam服务,最好用ldd确定一下
4.编缉/etc/vsftpd/vsftpd.conf
anonymous_enable = NO
local_enable =YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
guest_enable=YES
guest_username=vuser
anon_world_readable_only=NO (用于获得目录列表,安全起见不推荐)
如果登录时出现
500 OOPS: priv_sock_get_result
Connection closed by remote host.
这样的错误。需要升级pam
运行
#yum update pam
Proftpd
#tar jxvf proftpd-1.2.9.tar.gz2
#cd proftpd-1.2.9
#./configure 生成与系统有关的配置文件
#make 编译把源程序编译成二进制文件
#make install
#/usr/local/sbin/proftpd
配置文件:/etc/local/etc/proftpd.conf
vi使用技巧:
yy 复制当前行
p 粘贴
/ 查找
n 查找下一个
查找与查找下一个配合使用
shift+D 在当前行删除光标后的所有字符
#netstat -tnlp 显示进程及ID
为Grub设置密码,防止用户修改或编缉Grub的引导菜单
#grub-md5-crypt 产生一个md5加密的字符串
#grub-md5-crypt >> /etc/grub.conf
#vi /etc/grub.conf
password --md5 $1#123abckdfj343k $1#123abckdfj343k为上面生成的加密字符串
这样在启动时,要编缉引导菜单必须输入密码,在引导菜单最后加上 s ,可进入单用户模式。
find / -perm -002 查找文件权限中其他人具有写权限的文件,0表示用户,组不管
find / -perm +6000 查找文件,不管用户,组其他,只要权限中含有6(读写)即满足要求。
- 表示权限位必须具有的
+ 表示权限位可能有或无
阅读(1205) | 评论(0) | 转发(2) |