Vsftpd:修订间差异
来自Ubuntu中文
跳到导航跳到搜索
第226行: | 第226行: | ||
<pre>/var/ftp</pre> | <pre>/var/ftp</pre> | ||
==虚拟路径== | ==虚拟路径== | ||
比如我的ftp的默认目录是/ | 比如我的ftp的默认目录是/srv/ftp,我想把/mnt/LinG/WinSoft文件夹,映射到/srv/ftp目录中,我就如下操作 | ||
命令: | 命令: | ||
<pre>#mount --bind [原有的目录] [新目录]</pre> | <pre>#mount --bind [原有的目录] [新目录]</pre> | ||
先创建文件夹 | 先创建文件夹 | ||
<pre>sudo mkdir / | <pre>sudo mkdir /srv/ftp/WinSoft</pre> | ||
执行mount命令 | 执行mount命令 | ||
<pre>sudo mount --bind /mnt/LinG/WinSoft / | <pre>sudo mount --bind /mnt/LinG/WinSoft /srv/ftp/WinSoft</pre> | ||
[[Category:服务器]] | [[Category:服务器]] |
2010年7月2日 (五) 17:22的版本
vsftpd,ftp服务端
安装
安装
sudo apt-get install vsftpd
查看是否打开21端口
qii@ubuntu:/srv/ftp$ netstat -tnl 激活Internet连接 (仅服务器) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
登录
ftp localhost
输入Ubuntu的用户名、密码登录
ls
会显示home目录的文件
文件结构
匿名用户根路径
/srv/ftp
配置文件
/etc/vsftpd.conf
查阅配置文件详细信息
man 5 vsftpd.conf
设定log保存位置,默认如下
xferlog_file=/var/log/vsftpd.log
基本操作-重启
sudo service vsftpd restart
/etc/vsftpd.conf
# Example config file /etc/vsftpd.conf # Run standalone? vsftpd can run either from an inetd or as a standalone # daemon started from an initscript. listen=YES # # Run standalone with IPv6? # Like the listen parameter, except vsftpd will listen on an IPv6 socket # instead of an IPv4 one. This parameter and the listen parameter are mutually # exclusive. #listen_ipv6=YES # # Allow anonymous FTP? (Disabled by default) anonymous_enable=NO # # Uncomment this to allow local users to log in. local_enable=NO # # Uncomment this to enable any form of FTP write command. #write_enable=YES # # Default umask for local users is 077. You may wish to change this to 022, # if your users expect that (022 is used by most other ftpd's) #local_umask=022 # # Uncomment this to allow the anonymous FTP user to upload files. This only # has an effect if the above global write enable is activated. Also, you will # obviously need to create a directory writable by the FTP user. #anon_upload_enable=YES # # Uncomment this if you want the anonymous FTP user to be able to create # new directories. #anon_mkdir_write_enable=YES # # Activate directory messages - messages given to remote users when they # go into a certain directory. dirmessage_enable=YES # # If enabled, vsftpd will display directory listings with the time # in your local time zone. The default is to display GMT. The # times returned by the MDTM FTP command are also affected by this # option. use_localtime=YES # # Activate logging of uploads/downloads. xferlog_enable=YES # # Make sure PORT transfer connections originate from port 20 (ftp-data). connect_from_port_20=YES # # If you want, you can arrange for uploaded anonymous files to be owned by # a different user. Note! Using "root" for uploaded files is not # recommended! #chown_uploads=YES #chown_username=whoever # # You may override where the log file goes if you like. The default is shown # below. #xferlog_file=/var/log/vsftpd.log # # If you want, you can have your log file in standard ftpd xferlog format. # Note that the default log file location is /var/log/xferlog in this case. #xferlog_std_format=YES # # You may change the default value for timing out an idle session. #idle_session_timeout=600 # # You may change the default value for timing out a data connection. #data_connection_timeout=120 # # It is recommended that you define on your system a unique user which the # ftp server can use as a totally isolated and unprivileged user. #nopriv_user=ftpsecure # # Enable this and the server will recognise asynchronous ABOR requests. Not # recommended for security (the code is non-trivial). Not enabling it, # however, may confuse older FTP clients. #async_abor_enable=YES # # By default the server will pretend to allow ASCII mode but in fact ignore # the request. Turn on the below options to have the server actually do ASCII # mangling on files when in ASCII mode. # Beware that on some FTP servers, ASCII support allows a denial of service # attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd # predicted this attack and has always been safe, reporting the size of the # raw file. # ASCII mangling is a horrible feature of the protocol. #ascii_upload_enable=YES #ascii_download_enable=YES # # You may fully customise the login banner string: #ftpd_banner=Welcome to blah FTP service. # # You may specify a file of disallowed anonymous e-mail addresses. Apparently # useful for combatting certain DoS attacks. #deny_email_enable=YES # (default follows) #banned_email_file=/etc/vsftpd.banned_emails # # You may restrict local users to their home directories. See the FAQ for # the possible risks in this before using chroot_local_user or # chroot_list_enable below. #chroot_local_user=YES # # You may specify an explicit list of local users to chroot() to their home # directory. If chroot_local_user is YES, then this list becomes a list of # users to NOT chroot(). #chroot_local_user=YES #chroot_list_enable=YES # (default follows) #chroot_list_file=/etc/vsftpd.chroot_list # # You may activate the "-R" option to the builtin ls. This is disabled by # default to avoid remote users being able to cause excessive I/O on large # sites. However, some broken FTP clients such as "ncftp" and "mirror" assume # the presence of the "-R" option, so there is a strong case for enabling it. #ls_recurse_enable=YES # # Debian customization # # Some of vsftpd's settings don't fit the Debian filesystem layout by # default. These settings are more Debian-friendly. # # This option should be the name of a directory which is empty. Also, the # directory should not be writable by the ftp user. This directory is used # as a secure chroot() jail at times vsftpd does not require filesystem # access. secure_chroot_dir=/var/run/vsftpd/empty # # This string is the name of the PAM service vsftpd will use. pam_service_name=vsftpd # # This option specifies the location of the RSA certificate to use for SSL # encrypted connections. rsa_cert_file=/etc/ssl/private/vsftpd.pem
匿名用户
先备份
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.old
打开
sudo vi /etc/vsftpd.conf
允许匿名访问
# Allow anonymous FTP? (Disabled by default) anonymous_enable=YES
允许匿名上传
anon_upload_enable=YES
认证FTP配置
设定vsftp认证系统用户,并允许他们上传文件,编辑 /etc/vsftpd.conf:
local_enable=YES write_enable=YES
重启vsftp
sudo service vsftpd restart
系统用户登录ftp便进入他们的home目录
Chroot
限制登录用户访问其他目录,改之前登录显示的路径比如是 /home/qii ,改之后则是 /。
chroot_local_user=YES
可指定一组用户限制
chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list
随后创建列表
sudo vi /etc/vsftpd.chroot_list
一行一个用户名 重启vsftp
sudo service vsftpd restart
/etc/ftpusers文件
该文件内的用户一律禁止ftp连接,默认列表包括了root, daemon, nobody等。需要禁止某个用户,添加进来便是。
限制
限制连接数
前者为服务器最大支持连接数,后者为每个ip允许最多连接数。
max_clients=数字 max_per_ip=数字
限制下载速度
单位是字节,所以需要换算。比如我想让匿名用户和vsFTP上的用户都以80KB下载,所以这个数字应该是1024x80=81920
anon_max_rate=数字 #匿名用户下载速度 local_max_rate=数字 #普通用户下载速度
欢迎信息
dirmessage_enable=YES
然后编辑各用户home目录下的.message
vi .message
qii@ubuntu:~$ cat .message 欢迎来到vsftpd
qii@ubuntu:~$ ftp localhost Connected to localhost. 220 (vsFTPd 2.2.2) Name (localhost:qii): qii 331 Please specify the password. Password: 230-欢迎来到vsftpd 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>
若是匿名用户,就放到
/var/ftp
虚拟路径
比如我的ftp的默认目录是/srv/ftp,我想把/mnt/LinG/WinSoft文件夹,映射到/srv/ftp目录中,我就如下操作 命令:
#mount --bind [原有的目录] [新目录]
先创建文件夹
sudo mkdir /srv/ftp/WinSoft
执行mount命令
sudo mount --bind /mnt/LinG/WinSoft /srv/ftp/WinSoft