vsftp虚拟用户形式的实现
1. 编译安装
在make之前编辑 builddefs.h 文件
| # vi builddefs.h |
| #ifndef VSF_BUILDDEFS_H #define VSF_BUILDDEFS_H #define VSF_BUILD_TCPWRAPPERS #undef VSF_BUILD_PAM #define VSF_BUILD_SSL #endif /* VSF_BUILDDEFS_H */ |
2. 虚拟用户形式的实现
2.1 使用pam认证的方式:
2.1.1 用DB存储用户名和密码,查看系统是否有相应软件包:
| # rpm –qa | grep db4 db4-devel-4.2.52-7.1 db4-4.2.52-7.1 db4-utils-4.2.52-7.1 |
2.1.2 建立一个文件,单行为用户名,双行为密码,例如
| # vi /etc/vsftpd_users user1 12345 user2 12345 |
2.1.3 利用上一步建立的文件建立数据库文件并设置文件属性
| # db_load -T -t hash -f /etc/vsftpd_users /etc/vsftpd_login.db # chmod 600 /etc/vsftpd_login.db |
2.1.4 建立pam认证文件/etc/pam.d/ftp(文件名必须为ftp)
| # vi /etc/pam.d/ftp auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login account required /lib/security/pam_userdb.so db=/etc/vsftpd_login |
2.1.5 创建一个用户ftp,在2.1.2中建立的虚拟用户将利用用户ftp的身份登录到其主目录(为实现这一目的需要在修改vsftpd配置文件中的guest_username指令),并为安全起见修改其主目录的属主和权限。
# useradd -d /var/ftp -s /sbin/nologin ftp |
2.1.6 建立每个用户的根目录、配置文件的目录和配置文件,目的:使user1用户的根目录为/var/ftp/user1,并且可以下载、上传、修改 /var/ftp/user1里的文件,而user2用户的根目录为/var/ftp/user2,并且只能下载/var/ftp/user2里面的文件。
| # mkdir /var/vsftpd/user1 /var/vsftpd/user2 # mkdir /etc/vsftpd_user_conf |
| # vi /etc/vsftpd_user_conf/user1 |
| local_root=/var/ftp/user1 write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES |
| # vi /etc/vsftpd_user_conf/user2 |
| local_root=/var/ftp/user2 write_enable=NO anon_world_readable_only=NO anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO |
| # chown ftp:ftp /var/ftp/user1 /var/ftp/user2 # chmod 700 /var/ftp/user1 /var/ftp/user2 |
2.1.7 编写vsftpd配置文件
| listen=YES //使用standalone启动vsftpd listen_port=21 max_clients=100 //可接受的最大连接数 max_per_ip=5 //每个IP最大的连接数 local_max_rate=5120000 //本地用户的传输比率(b/s) tcp_wrappers=YES //支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny) anonymous_enable=NO //禁用匿名账户 local_enable=YES //PAM方式此处必须为YES write_enable=NO //全局控制不可以上传 anon_upload_enable=NO //匿名用户不可以上传 anon_mkdir_write_enable=NO //匿名用户不可以建目录 anon_other_write_enable=NO //匿名用户不可以修改 chroot_local_user=YES //不充许用户更改根目录 guest_enable=YES guest_username=ftp//这两行的意思是采用虚拟用户形式 virtual_use_local_privs=YES //虚拟用户和本地用户权限相同 user_config_dir=/etc/vsftpd_user_conf//定义虚拟用户配置文件目录 pasv_enable=YES //建立资料联机采用passiv方式 pasv_min_port=30000 //建立资料联机所可以使用port 范围的上界,0表示任意。默认值为0。 pasv_max_port=30999 //建立资料联机所可以使用port 范围的下界,0表示任意。默认值为0。 xferlog_enable=YES //开启日志记录 xferlog_file=/var/log/vsftpd.log //日志存放文件位置 idle_session_timeout=600 //空闲连接超时 data_connection_timeout=120 //数据传输超时 accept_timeout=60 //PAVS请求超时 connect_timeout=60 // PROT模式连接超时 |
2.1.8 启动vsftpd服务
| # /usr/local/sbin/vsftpd /etc/vsftpd.conf & |
相关阅读:
- vsftp匿名服务器 (huinux, 2008-11-04)
导入论坛 引用链接 收藏 分享给好友 推荐到圈子 管理 举报
TAG: vsftp