У меня есть TFTP-сервер на Centos 7.4. Сервер TFTP запущен и работает и работает нормально при попытке доступа к файлу, подключаясь к локальному хосту. Однако, если я попытаюсь получить доступ к TFTP-серверу с другого сервера, у меня будет тайм-аут.
Брандмауэр настроен правильно, и порт доступен.
кот /etc/xinetd.d/tftp
service tftp {
socket_type = dgram
protocol = udp
port = 69
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4 }
кошка /etc/xinetd.conf
defaults
{
log_type = SYSLOG daemon info
log_on_failure = HOST
log_on_success = PID HOST DURATION EXIT
cps = 50 10
instances = 50
per_source = 10
v6only = no
groups = yes
umask = 002
}
includedir /etc/xinetd.d
Доступ по TFTP с использованием localhost с той же машины:
[root@tftp-001 ~]# tftp -v localhost -c get dir.txt
Connected to localhost (::1), port 69
getting from localhost:dir.txt to dir.txt [netascii]
Received 11 bytes in 0.0 seconds [3093 bit/s]
Доступ по TFTP с другого компьютера:
[root@pbx-001 ~]# tftp -v 51.15.xxx.yy -c get dir.txt
Connected to 51.15.xxx.yy (51.15.xxx.yy), port 69
getting from 51.15.xxx.yy:dir.txt to dir.txt [netascii]
Transfer timed out.
хвост -F / var / log / messages покажет следующую строку при доступе с localhost, но ничего при доступе с другой машины.
Oct 21 09:44:55 pbx-001 in.tftpd[11986]: Client ::1 finished dir.txt
Я попытался запустить сканирование порта с другой машины, и кажется, что порт доступен и открыт:
[root@pbx-001 ~]# nmap -sU -p 69 51.15.XXX.YY
Starting Nmap 6.40 ( http://nmap.org ) at 2017-10-21 09:47 UTC
Nmap scan report for ZZZZZZZZZZZZZZZZZZZZZZZZ (51.15.XXX.YY)
Host is up (0.00068s latency).
PORT STATE SERVICE
69/udp open|filtered tftp
Nmap done: 1 IP address (1 host up) scanned in 0.55 seconds
Я также пытался отключить firewalld, но проблема не исчезла.
Мне нужно, чтобы сервер TFTP был доступен для любого компьютера за пределами сети, чтобы настроить несколько сотен телефонов CISCO в разных странах и офисах.
Я могу подключиться к SSH, HTTP и т. Д. На машине, это не проблема, это просто проблема с TFTP.
РЕДАКТИРОВАТЬ 1: Выход iptables -L -n -v это: [root @ tftp-001 ~] # iptables -L -n -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
13425 5433K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
249 14891 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
351 19544 INPUT_direct all -- * * 0.0.0.0/0 0.0.0.0/0
351 19544 INPUT_ZONES_SOURCE all -- * * 0.0.0.0/0 0.0.0.0/0
351 19544 INPUT_ZONES all -- * * 0.0.0.0/0 0.0.0.0/0
3 117 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
221 12353 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 FORWARD_direct all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 FORWARD_IN_ZONES_SOURCE all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 FORWARD_IN_ZONES all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 FORWARD_OUT_ZONES_SOURCE all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 FORWARD_OUT_ZONES all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT 14168 packets, 1284K bytes)
pkts bytes target prot opt in out source destination
14168 1284K OUTPUT_direct all -- * * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD_IN_ZONES (1 references)
pkts bytes target prot opt in out source destination
0 0 FWDI_public all -- + * 0.0.0.0/0 0.0.0.0/0 [goto]
Chain FORWARD_IN_ZONES_SOURCE (1 references)
pkts bytes target prot opt in out source destination
Chain FORWARD_OUT_ZONES (1 references)
pkts bytes target prot opt in out source destination
0 0 FWDO_public all -- * + 0.0.0.0/0 0.0.0.0/0 [goto]
Chain FORWARD_OUT_ZONES_SOURCE (1 references)
pkts bytes target prot opt in out source destination
Chain FORWARD_direct (1 references)
pkts bytes target prot opt in out source destination
Chain FWDI_public (1 references)
pkts bytes target prot opt in out source destination
0 0 FWDI_public_log all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 FWDI_public_deny all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 FWDI_public_allow all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
Chain FWDI_public_allow (1 references)
pkts bytes target prot opt in out source destination
Chain FWDI_public_deny (1 references)
pkts bytes target prot opt in out source destination
Chain FWDI_public_log (1 references)
pkts bytes target prot opt in out source destination
Chain FWDO_public (1 references)
pkts bytes target prot opt in out source destination
0 0 FWDO_public_log all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 FWDO_public_deny all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 FWDO_public_allow all -- * * 0.0.0.0/0 0.0.0.0/0
Chain FWDO_public_allow (1 references)
pkts bytes target prot opt in out source destination
Chain FWDO_public_deny (1 references)
pkts bytes target prot opt in out source destination
Chain FWDO_public_log (1 references)
pkts bytes target prot opt in out source destination
Chain INPUT_ZONES (1 references)
pkts bytes target prot opt in out source destination
351 19544 IN_public all -- + * 0.0.0.0/0 0.0.0.0/0 [goto]
Chain INPUT_ZONES_SOURCE (1 references)
pkts bytes target prot opt in out source destination
Chain INPUT_direct (1 references)
pkts bytes target prot opt in out source destination
Chain IN_public (1 references)
pkts bytes target prot opt in out source destination
351 19544 IN_public_log all -- * * 0.0.0.0/0 0.0.0.0/0
351 19544 IN_public_deny all -- * * 0.0.0.0/0 0.0.0.0/0
351 19544 IN_public_allow all -- * * 0.0.0.0/0 0.0.0.0/0
48 2953 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
Chain IN_public_allow (1 references)
pkts bytes target prot opt in out source destination
77 4004 ACCEPT tcp -- * * [MY_HOME_IP] 0.0.0.0/0 tcp dpt:80 ctstate NEW
2 117 ACCEPT tcp -- * * [MY_HOME_IP] 0.0.0.0/0 tcp dpt:22 ctstate NEW
0 0 ACCEPT udp -- * * [MY_HOME_IP] 0.0.0.0/0 udp dpt:69 ctstate NEW
Chain IN_public_deny (1 references)
pkts bytes target prot opt in out source destination
Chain IN_public_log (1 references)
pkts bytes target prot opt in out source destination
Chain OUTPUT_direct (1 references)
pkts bytes target prot opt in out source destination
[root@tftp-001 ~]#
* РЕДАКТИРОВАТЬ 2 * Я использую firewall-cmd как графический интерфейс, и это результат работы брандмауэр-cmd --zone = общедоступный --list-all:
[root@tftp-001 ~]# firewall-cmd --zone=public --list-all
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: dhcpv6-client
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="[MY_HOME_IP]" port port="80" protocol="tcp" accept
rule family="ipv4" source address="[MY_HOME_IP]" port port="22" protocol="tcp" accept
rule family="ipv4" source address="[MY_HOME_IP]" port port="69" protocol="udp" accept
На данный момент правила вашего брандмауэра разрешают соединения по TFTP (UDP-порт 69) с самого сервера (loopback, через INPUT
правило 2) и от 79.137.39.26
( через IN_public_allow
Правило 3). Вы не указываете IP-адрес клиента, с которого пытаетесь, но при прочих равных условиях вероятность того, что это IP-адрес, составляет лишь один из четырех миллиардов (а учитывая, что количество пакетов по этому правилу равно нулю, оно может быть даже меньше).
Попробуйте добавить правило, разрешающее все TFTP-трафик, например
iptables -I INPUT 1 -p udp --dport 69 -j ACCEPT
и посмотрите, поможет ли это кому-нибудь.
Я столкнулся с этой проблемой и в CentOS 7.7.
Но сама проблема не кажется (насколько мне известно) связанной с CentOS.
Проблема возникла, когда был выпущен RHEL tftp-server 5.2-22. Возврат к 5.2-13 устранил проблему.
Для всех остальных, чтобы понизить версию, используйте:
Для будущих читателей: это может быть связано с клиентами, имеющими брандмауэр с отслеживанием состояния, блокирующий ответы от tftp-сервера. Брандмауэр не будет видеть ответы как установленные или связанные соединения и, следовательно, отбрасывать / блокировать.
Каковы права собственности и разрешения для каталога и файла?
Попробуйте использовать «chmod 777» в каталоге, чтобы проверить, не возникает ли проблема с разрешениями.