vsftpd/focal 3.0.3-12 amd64
lightweight, efficient FTP server written for security.
添加用户
这里以 Ubuntu 20.04 为例
sudo adduser junos
mkdir /home/junos/ftp
chown nobody:nogroup /home/junos/ftp
chmod a-w /home/junos/ftp
mkdir /home/junos/ftp/configs
chown junos:junos /home/junos/ftp/configs
CentOS的方式为:useradd -d /home/junos -g ftp -s /sbin/nologin junos
安装
sudo apt install vsftpd -y
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
/etc/vsftpd.conf 关键配置
listen=YES
#允许用户创建目录
write_enable=YES
#指定下默认权限
local_umask=002
#允许客户端查看目录下的信息,文件列表、大小、创建或修改日期等
dirmessage_enable=YES
#采用本地时区
use_localtime=YES
#FTP数据传输默认端口
connect_from_port_20=YES
#打开日志记录
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=NO
#限制用户只能在home主目录下切换,无法通过根目录进入到其他目录
##限制所有用户
chroot_local_user=YES
##排除一些允许切换到其他根目录的用户(我这里设置NO,即不需要排除)
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd.chroot_list
#设置默认存储目录
user_sub_token=$USER
local_root=/home/$USER/ftp
#允许下面端口通过防火墙,指定动态端口范围,对于开启了防火墙来说很有用,作用于某些客户端采用的passive模式
pasv_min_port=40000
pasv_max_port=50000
#结合hosts.allow和hosts.deny文件允许特定IP连接
tcp_wrappers=YES
#禁止登录的用户列表(默认,设置 userlist_deny=NO 则变为允许登录的用户列表)
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
防火墙放行端口
sudo ufw allow ssh
sudo ufw allow 20,21,990/tcp
sudo ufw allow 40000:50000/tcp
启动服务
systemctl start vsftpd
测试
root@user:~# ftp -p localhost
Connected to localhost.
220 Welcome to Switches FTP service.
Name (localhost:root): junos
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,193,164).
150 Here comes the directory listing.
drwxr-xr-x 2 1000 1000 4096 Apr 28 02:15 configs
226 Directory send OK.
ftp>
这里是指定使用
Passive Mode
,默认是使用pftp(tcp_ftp)的Active Mode
Juniper 配置
[edit system archival configuration]
archive-sites {
ftp://username<:password>@host-address<:port>/url-path;
scp://username<:password>@host-address<:port>/url-path;
http://username @host-address :url-path <password>;
}
transfer-interval interval;
transfer-on-commit;
我这边是 FTP 的配置,示例:
ftp://junos:dpb3XyG6P@10.10.10.100
配置成功的前提是你的 Juniper 设备首先能 ping 通 FTP 主机IP,或直接尝试在该设备上使用 ftp 命令
有两种触发方式:
- transfer-interval interval
定时备份,interval 范围为 15 至 2880 分钟。
- transfer-on-commit
在每次提交候选配置时将其当前活动配置传输到存档站点。
评论区