下面是 “linux下用Proftpd搭建ftp服务器及配置方法”的完整攻略。
安装Proftpd
在Linux中安装Proftpd的方式有多种,常见的两种方式是使用包管理器进行安装,或者从源代码编译安装。
使用包管理器进行安装
以Debian/Ubuntu为例,使用以下命令进行安装:
sudo apt-get update
sudo apt-get install proftpd
从源代码编译安装
从Proftpd的官网http://www.proftpd.org/下载最新的源代码。将源代码解压后,进入源代码所在目录,执行以下命令进行编译安装:
./configure
make
sudo make install
配置Proftpd
配置Proftpd基础参数
安装完成后,需要进行Proftpd的配置。Proftpd的相关配置文件位于/etc/proftpd/
目录下。
首先设置Proftpd的基础参数,可以编辑/etc/proftpd/proftpd.conf
文件,例如:
ServerName "FTP Server"
ServerType standalone
DefaultServer on
Port 21
Umask 022
MaxInstances 30
以上参数的含义如下:
ServerName
:FTP服务器的名称,可以是任意字符串。ServerType
:FTP服务器运行的方式,有standalone和inetd两种方式。standalone是独立的进程运行方式,inetd是在inetd守护进程下运行。DefaultServer
:指定当前FTP服务器是否为默认的服务器,可以是on或off。Port
:FTP服务器监听的端口号。Umask
:所有上传的文件的权限,即默认值。MaxInstances
:运行服务器的最大进程数。
配置用户和用户组
在Proftpd中,用户和用户组分别配置在/etc/proftpd/ftpusers
和/etc/proftpd/ftpgroups
中。其中,ftpusers文件中配置的用户不能登录FTP服务器,而ftpgroups文件中配置的组不能访问FTP服务器。
# 添加用户
sudo useradd -d /home/username -m -s /bin/bash username
# 设置密码
sudo passwd username
# 将用户添加到ftpusers文件中,禁止登录
sudo echo "username" >> /etc/proftpd/ftpusers
# 添加用户组
sudo groupadd ftpgroup
# 将用户组添加到ftpgroups文件中,禁止访问FTP服务器
sudo echo "ftpgroup" >> /etc/proftpd/ftpgroups
配置FTP根目录
在Proftpd中,FTP根目录默认为/srv/ftp/
,可以通过编辑/etc/proftpd/proftpd.conf
文件进行修改,例如:
DefaultRoot /home/your_directory
配置FTP用户
在Proftd中,用户的用户名和密码不需要与系统用户一致,可以单独设置。
PassivePorts 15000 16000 # 指定被动端口范围为15000-16000
# 添加用户
sudo ftpasswd --passwd --name=username --uid=username --gid=ftpgroup --home=/home/ftpusers --shell=/sbin/nologin
# 设置密码
sudo ftpasswd --file=/etc/proftpd/ftpd.passwd --name=username --change-password
示例说明1
下面以创建FTP用户并授权为例说明。
首先创建一个新用户:
sudo useradd -m ftpuser
sudo passwd ftpuser
然后将这个用户添加到/etc/proftpd/ftpusers
文件中,禁止其登录FTP服务器:
sudo echo "ftpuser" >> /etc/proftpd/ftpusers
接着,在/etc/proftpd/proftpd.conf
文件中添加以下参数:
DefaultRoot ~ # 设置FTP根目录为用户家目录
RequireValidShell off # 禁用要求有效shell验证
最后,为这个用户添加FTP账号和FTP密码:
sudo ftpasswd --passwd --name=ftpuser --uid=ftpuser --gid=nogroup --home=/home/ftpuser --shell=/sbin/nologin
sudo ftpasswd --file=/etc/proftpd/ftpd.passwd --name=ftpuser --change-password
这样,ftpuser
用户就可以通过FTP连接服务器了,并且只能访问FTP根目录下的文件。
示例说明2
以下示例将向你展示如何设置FTP服务器的匿名访问权限。
首先,在/etc/proftpd/proftpd.conf
文件中添加以下参数:
AllowOverwrite off # 禁止匿名用户的文件上传
AuthUserFile /dev/null # 将认证用户文件设为null
AuthPAM off # 禁用PAM认证
RequireValidShell off # 禁用要求有效shell验证
然后,创建/etc/proftpd/ftpusers
文件,并在其中添加以下内容:
# 允许anonymous用户登录
anonymous
ftp
接着,创建FTP根目录:
sudo mkdir /var/ftp
sudo chown ftp:ftp /var/ftp
sudo chmod 1777 /var/ftp
最后,重启Proftpd服务器并测试匿名访问:
sudo systemctl restart proftpd
打开FTP客户端,输入服务器地址和用户名,不需要输入密码,即可访问FTP服务器。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux下用Proftpd搭建ftp服务器及配置方法 - Python技术站