目录
1.下载安装vsftpd+tftp+tftp-server
2.配置服务
2.1 配置服务 修改文件 /etc/vsftpd.conf
2.2 配置服务 守护进程 /etc/xinetd.d/tftp
2.3 配置服务 tftp服务器
2.4 配置登录用户
2.4.1 修改selinux
2.4.2 匿名用户登录
2.4.3 新建账户,不能登陆系统,只能登陆ftp
2.4.4修改配置文件
2.4.5 修改完配置文件重启ftp服务
2.4.6验证匿名登陆状况
2.4.7 测试用户登录状况
3.本地验证
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。
ftpd-hpa是tftp服务器
tftp-hpa是tftp客服端
inetd的全称是extended internet daemon,xinetd是新一代的网络守护进程服务程序,又叫超级Internet服务器,提供类似于inetd+tcp_wrapper的功能。
与ubuntu 的区别:
1.centos 上 需要添加防火墙放行。
2.配置文件:
centos | ubuntu | ||
vsftpd | 配置: | 配置: /etc/vsftpd.conf | |
xinetd守护进程 | 配置:/etc/xinetd.d/tftp | 配置: | |
tftp客户端 | 程序安装在/bin 目录下。 | ||
tftp服务器端 | 目录:
| 配置: /etc/default/tftpd-hpa | |
/sbin 和/usr/sbin 目录下均多了一个服务端程序文件in.tftpd。 这两个文件的MD5值是一样的。 | |||
用户权限(匿名 +指定用户) | |||
防火墙设置 |
centos 上 安装完后,在/sbin
和/usr/sbin
目录下均多了一个服务端程序文件in.tftpd
,
# which in.tftpd
/sbin/in.tftpd
# ls /usr/sbin | grep tftp
in.tftpd
1.下载安装vsftpd+tftp+tftp-server
下载:
FileZilla - The free FTP solution
#1.下载安装服务 vsftpd
yum install -y vsftpd
# 配置服务 vsftpd /etc/vsftpd.conf
local_enable=YES
write_enable=YES
#重启+查看
systemctl restart vsftpd.service
ps -ef|grep vsftpd
#开放端口
firewall-cmd --zone=public --add-port=21/tcp --permanent #开放21端口
firewall-cmd --reload #重新加载防火墙配置
firewall-cmd --zone=public --list-ports #查看防火墙端口开放状况
#2. 下载安装 客户端tftp,服务器端tftpd-server, 守护进程xinetd
yum install tftp tftpd-server
yum install xinetd
# 3.配置 客户端+服务器端参数 /sbin /usr/sbin 多了一个服务端程序文件in.tftpd
在 /usr/lib/systemd/system 多了2个文件 tftp.service tftp.socket
# 4.配置 开启 客户端+服务器端 tftp /etc/xinetd.d/tftp
# 在linux下,不管使用的是哪一种super-server,inetd或者xinetd,默认情况下TFTP服务是禁用的,所以要修改文件来开启服务。
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /home/test/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
# tftp的目录文件
server_args = -s /home/test/tftpboot
#3.
#重启tftpd服务
Systemctl start tftp
/etc/init.d/vsftpd restart
2.配置服务
2.1 配置服务 修改文件 /etc/vsftpd.conf
## 以下两行如果注释的话,打开注释
local_enable=YES
write_enable=YES
2.2 配置服务 守护进程 /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram #socket的链接类型是dgram(UDP)
protocol = udp #UDP协议
wait = yes #等待到启动完成
user = root #指定root用户启动服务进程
server = /usr/sbin/in.tftpd #指定服务进程是/usr/sbin/in.tftpd
server_args = -s /home/tang/tftp -c #指定传给该进程的参数
disable = no #no表示启动TFTP服务器
per_source = 11 #表示每一个ip地址上最多可以建立的实例数目
cps = 100 2 #每秒100个入站链接,超过限制,等待2秒
flags = IPv4 #允许IPV4连接
}
2.3 配置服务 tftp服务器
使用yum安装完tftp服务端程序后,在/usr/lib/systemd/system
目录下多了两个文件,tftp.service
和tftp.socket
,他们是tftp服务端的配置文件
# pwd
/usr/lib/systemd/system
# cat tftp.service
[Unit]
Description=Tftp Server
Requires=tftp.socket
Documentation=man:in.tftpd
[Service]
ExecStart=/usr/sbin/in.tftpd -c -p -s /var/lib/tftpboot
StandardInput=socket
[Install]
Also=tftp.socket
# cat tftp.socket
[Unit]
Description=Tftp Server Activation Socket
[Socket]
ListenDatagram=69
[Install]
WantedBy=sockets.target
2.4 配置登录用户
2.4.1 修改selinux
默认情况下,CentOS 的FTP 是不允许实体账号登录取得用户主目录数据的,这是因为 SELinux 的问题。
getsebool -a | grep ftp #查看有关selinux的策略
setsebool -P tftphome_dir=1 #修改规则
2.4.2匿名用户登录
用ftp客户端匿名链接测试:
设置:"主动"
输入:anonymous
成功后 :显示pub这个文件夹。
2.4.3新建账户,不能登陆系统,只能登陆ftp
useradd tangftp -s /sbin/nologin
passwd tangftp
#创建一个目录 /home/ftp
#增加用户rootftp,并设置密码
useradd -d /home/ftp rootftp
passwd rootftp
2.4.4修改配置文件
/etc/vsftpd/vsftpd.conf
anonymous_enable=YES 改为NO
2.4.5 修改完配置文件重启ftp服务
systemctl restart vsftpd.service #重启服务
ps -ef | grep vsftpd #查看进程
2.4.6验证匿名登陆状况
2.4.7 测试用户登录状况
3.本地验证
本地测试:
在/tftpboot目录创建一个 ser.txt 文件,供客户端下载;
在/home/samba/(或其他任意目录都行) 创建cli.txt,用于上传到tftp服务器 ;
在/home/samba/执行tftp客户端,下载 ser.txt,上传cli.txt
touch /home/tang/tftpboot/ser.txt
touch /home/tang/cli.txt
tftp 127.0.0.1
tftp> get ser.txt
tftp> put cli.txt
tftp> q