Posts Tagged ‘ftp’
Ubuntu 8.04上开启FTP服务 – vsftp的设置
1. sudo apt-get install vsftpd
安装了之后会在/home/下建立一个ftp目录。这时候你可以试着访问下ftp://IP地址。应该可以看到一个空白内容的ftp空间。默认设置下匿名用户可以下载,但不能写入或是上传。而且Ubuntu会默认添加一个名称是ftp的用户,不是很喜欢,用sudo userdel -r ftp 去掉他
useradd –d /var/ftp -s /sbin/nologin user01
把用户目录设为ftp根目录,同时不允许用户使用Shell登录
2. 设置 vsftpd.conf文件 (小心:每一行前都不能有空格,连注释前也不能有,否则程序无法顺利启动!)
现在我们要让匿名用户无法访问,并且得输入linux上的用户密码后才能访问到他们自己目录里的内容。
首先找到设置vsftpd的文件,位置在/etc/vsftpd.conf
修改之前最好先备份下这个文件:sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.old
然后可以改动了:
#支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)
tcp_wrappers=YES
#不让匿名用户使用
anonymous_enable=NO
#本地用户必须可用,否则就没人可以上这个FTP了
local_enable=YES
#可用写操作,必须的
write_enable=YES
#不需要显示某目录下文件信息
#dirmessage_enable=YES
#加点banner提示
ftpd_banner=Hello~~
#锁定用户,禁止用户离开用户主目录
chroot_local_user=YES
#假设系统有nobody这个用户的话,但似乎用处不大,程序还是以root身份运行的
nopriv_user=user01
修改这一行,否则user01不能直接登录的!
pam_service_name=ftp
设置一个list将root, daemon等系统用户封闭,可以参考/etc/ftpusers
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.bannedlist
以下是打开SSL连接方式
# Enable SSL, this will affect all subsequent ssl options
ssl_enable=YES
#
# # Allow SSL for anonymous users
allow_anon_ssl=NO
#
# # Enable to force all non-anonymous logins to use SSL in order to send and receive data
force_local_data_ssl=YES
#
# # Enable to force all non-anonymous logins to use SSL in order to login
force_local_logins_ssl=YES
#
# # Enable TLS v1 protocol connections
ssl_tlsv1=YES
#
# # Enable SSL v2 protocol connections
ssl_sslv2=YES
#
# # Enable SSL v3 protocol connections
ssl_sslv3=YES
————————————
以下是利用PAM模块方式添加Virtual User的步骤:
sudo apt-get install db4.6-util
没有必要用db3了,4.6版本的可以被PAM认识
创建文本文件/etc/vsftpd/vlogin.plainlist
格式如下:
user_id
password
user1
123456
sudo db4.6_load -T -t hash -f /etc/vsftpd/vlogin.plainlist /etc/vsftpd/vlogin.db
sudo chmod 600 /etc/vsftpd/vlogin.db 编辑/etc/pam.d/vsftpd文件 (注意vlogin后面不要加后缀db,否则找不到文件,会出现530 login incorrect错误) 注释掉其他行,在添加以下两行 auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vlogin account required /lib/security/pam_userdb.so db=/etc/vsftpd/vlogin 最后编辑/etc/vsftpd.conf文件 增加 guest_enable=YES guest_username=user01 并修改 pam_service_name=vsftpd 添加 virtual_use_local_privs=YES 这句一定要,否则虚拟用户可以登陆,但是任何写目录动作都会550 permission denied 别忘了,在加一句 chown user01 /var/ftp。 否则密码对了还是连不上 重新启动应该就可而已了。其他更复杂的设置可以看这个设置wiki