您的位置:首页 > 编程语言 > PHP开发

搭建FTP服务器

2015-11-14 00:00 781 查看
安装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(读写)即满足要求。

- 表示权限位必须具有的

+ 表示权限位可能有或无
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: