vsftpd是一个UNIX类系统上运行的服务器,它使用FTP协议进行文件传输,以下是在Linux上编译安装vsftpd的步骤:
1、安装必要的依赖包
在开始编译之前,需要先安装一些必要的依赖包,在Ubuntu或Debian上,可以使用以下命令安装:
```bash
sudo aptget update
sudo aptget install y buildessential libssldev zlib1gdev
```
2、下载vsftpd源码
从vsftpd的官方网站下载最新的源码包,然后解压到/usr/local/src目录下:
```bash
wget https://security.appspot.com/mirrors/sourceforge.net/project/vsftpd/files/vsftpd/3.0.3/vsftpd3.0.3.tar.gz
tar zxvf vsftpd3.0.3.tar.gz C /usr/local/src
cd /usr/local/src/vsftpd3.0.3
```
3、编译和安装vsftpd
使用以下命令进行编译和安装:
```bash
./configure prefix=/usr/local/vsftpd sysconfdir=/etc/vsftpd withssl=/usr/local/ssl enablepam withpam_ssl_auth withcrypto_ipsec withdebug withdbgpkg=no
make && sudo make install
```
4、创建vsftpd用户和组
为了安全起见,我们需要创建一个专门的用户和组来运行vsftpd服务:
```bash
sudo groupadd ftpgroup
sudo useradd g ftpgroup d /home/ftpuser s /sbin/nologin ftpuser
```
5、配置vsftpd
编辑vsftpd的配置文件:
```bash
echo "listen=YES" | sudo tee a /etc/vsftpd/vsftpd.conf
echo "anonymous_enable=NO" | sudo tee a /etc/vsftpd/vsftpd.conf
echo "local_enable=YES" | sudo tee a /etc/vsftpd/vsftpd.conf
echo "write_enable=YES" | sudo tee a /etc/vsftpd/vsftpd.conf
echo "chroot_local_user=YES" | sudo tee a /etc/vsftpd/vsftpd.conf
echo "allow_writeable_chroot=YES" | sudo tee a /etc/vsftpd/vsftpd.conf
echo "force_dot_files=YES" | sudo tee a /etc/vsftpd/vsftpd.conf
echo "pasv_min_port=40000" | sudo tee a /etc/vsftpd/vsftpd.conf
echo "pasv_max_port=50000" | sudo tee a /etc/vsftpd/vsftpd.conf
echo "pasv_address=192.168.1.100" | sudo tee a /etc/vsftpd/vsftpd.conf
```
6、启动并设置开机自启动
使用以下命令启动vsftpd服务,并设置为开机自启动:
```bash
sudo systemctl start vsftpd.service
sudo systemctl enable vsftpd.service
```
在配置本地用户登录过程中,我们需要做以下几个步骤:
1、创建本地用户
我们需要在系统中创建一个本地用户,我们创建一个名为testuser
的用户:
```bash
sudo adduser testuser
```
2、设置密码
为新创建的用户设置密码:
```bash
sudo passwd testuser
```
3、创建用户目录
为新创建的用户创建一个家目录:
```bash
sudo mkdir /home/testuser/Documents /home/testuser/Downloads /home/testuser/Music /home/testuser/Pictures /home/testuser/Public /home/testuser/Templates /home/testuser/Videos
```
4、修改用户目录权限
修改用户目录的权限,使得新创建的用户能够访问这些目录:
```bash
sudo chown testuser:testuser /home/testuser/* R
```
5、配置PAM
编辑PAM配置文件,添加对本地用户的认证:
```bash
echo "auth required pam_shells.so" | sudo tee a /etc/pam.d/commonauthaclocal > /dev/null || true; echo "account required pam_unix.so" | sudo tee a /etc/pam.d/commonaccountaclocal > /dev/null || true; echo "password required pam_unix.so" | sudo tee a /etc/pam.d/commonpasswordaclocal > /dev/null || true; echo "session required pam_limits.so" | sudo tee a /etc/pam.d/commonsessionaclocal > /dev/null || true; echo "session [success=1 default=ignore] pam_succeed_if.so service="!~*" quiet use_uid" | sudo tee a /etc/pam.d/commonsessionaclocal > /dev/null || true; echo "session [default=1] pam_umask.so" | sudo tee a /etc/pam.d/commonsessionaclocal > /dev/null || true; echo "session optional pam_xauth.so auto" | sudo tee a /etc/pam.d/commonsessionaclocal > /dev/null || true; echo "@include commonaccount" | sudo tee a /etc/pam.d
```