Линуксоиды, настроить TFTP - хочу понять

User avatar
katit
Уже с Приветом
Posts: 23804
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Линуксоиды, настроить TFTP - хочу понять

Post by katit »

http://www.petenetlive.com/KB/Article/0000998" onclick="window.open(this.href);return false;

Инструкция есть и все вроде ясно. Но зачем например в конфиге подставлять "-c"? Что значит "-s" в дефолте? Я блин все перегуглил. Где для tftp сервера найти документацию детальную?
Лучше водки — хуже нет! ©
User avatar
Ion Tichy
Уже с Приветом
Posts: 13339
Joined: 07 Dec 2004 04:00
Location: Москва->CO

Re: Линуксоиды, настроить TFTP - хочу понять

Post by Ion Tichy »

http://linux.die.net/man/8/tftpd
...
--create, -c
Allow new files to be created. By default, tftpd will only allow upload of files that already exist. Files are created with default permissions allowing anyone to read or write them, unless the --permissive or --umask options are specified.

--secure, -s
Change root directory on startup. This means the remote host does not need to pass along the directory as part of the transfer, and may add security. When --secure is specified, exactly one directory should be specified on the command line. The use of this option is recommended for security as well as compatibility with some boot ROMs which cannot be easily made to include a directory name in its request.
...
Оно?
Как же это вы без гравицаппы пепелац выкатываете из гаража? Это непорядок...
User avatar
katit
Уже с Приветом
Posts: 23804
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Re: Линуксоиды, настроить TFTP - хочу понять

Post by katit »

Ага. Оно самое, спасибо! :fr:
Лучше водки — хуже нет! ©
User avatar
katit
Уже с Приветом
Posts: 23804
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Re: Линуксоиды, настроить TFTP - хочу понять

Post by katit »

В продолжение борьбы. Казалось бы. Ситуация простая. Надо сервер чтоб раздавать/провижн телефоны.
Во-первых на ратуре в DHCP добавил опцию 150 и адрес VOIP сервера 192.168.33.31
Теперь телефон при включении честно ломится в TFTP за конфигом. И.. почему-то tftp server ему дает отлуп.

Code: Select all

Jul  2 15:30:13 localhost in.tftpd[5427]: RRQ from 192.168.33.34 filename SEP7081053D862B.cnf.xml
...
Jul  2 15:31:53 localhost in.tftpd[5528]: RRQ from 192.168.33.104 filename SEP7081053D862B.cnf.xml
Jul  2 15:31:53 localhost in.tftpd[5528]: tftpd: read(ack): Connection refused
Первый лог - с другой машины в той-же сетке достал файл без проблем. Вторая-третья строки - телефон ломится и соединение обрубается. Почему...
Лучше водки — хуже нет! ©
User avatar
Ion Tichy
Уже с Приветом
Posts: 13339
Joined: 07 Dec 2004 04:00
Location: Москва->CO

Re: Линуксоиды, настроить TFTP - хочу понять

Post by Ion Tichy »

katit wrote:В продолжение борьбы. Казалось бы. Ситуация простая. Надо сервер чтоб раздавать/провижн телефоны.
Во-первых на ратуре в DHCP добавил опцию 150 и адрес VOIP сервера 192.168.33.31
Теперь телефон при включении честно ломится в TFTP за конфигом. И.. почему-то tftp server ему дает отлуп.

Code: Select all

Jul  2 15:30:13 localhost in.tftpd[5427]: RRQ from 192.168.33.34 filename SEP7081053D862B.cnf.xml
...
Jul  2 15:31:53 localhost in.tftpd[5528]: RRQ from 192.168.33.104 filename SEP7081053D862B.cnf.xml
Jul  2 15:31:53 localhost in.tftpd[5528]: tftpd: read(ack): Connection refused
Первый лог - с другой машины в той-же сетке достал файл без проблем. Вторая-третья строки - телефон ломится и соединение обрубается. Почему...
Попробуйте врубить лог на макс (добавить к сервер.аргс "-vvv"). Вдруг че вылезет...
Как же это вы без гравицаппы пепелац выкатываете из гаража? Это непорядок...
User avatar
katit
Уже с Приветом
Posts: 23804
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Re: Линуксоиды, настроить TFTP - хочу понять

Post by katit »

Уже. Аж -vvvvvv сделал. Все что гуглю на тему firewalls и т.д. Но тут все ОК т.к. Работает и из тойже сетки и из другого сабнета.

Нажел упоминание что Сискотелефоны так глючат. Надо на IP трафик смотреть но что то желание заканчивается, думаю руками настройки ставить да и все :(
Лучше водки — хуже нет! ©
User avatar
xKing
Уже с Приветом
Posts: 1405
Joined: 27 Dec 2010 12:32
Location: Big D

Re: Линуксоиды, настроить TFTP - хочу понять

Post by xKing »

на линуксе сделайте

tcpdump -s0 -w /tmp/trace.pcap udp port tftp

и потом посмотрите этот файл Вайршарком
I wasn't born in Texas, but I got here as fast as I could.
helg
Уже с Приветом
Posts: 4827
Joined: 15 May 2001 09:01

Re: Линуксоиды, настроить TFTP - хочу понять

Post by helg »

katit wrote:Jul 2 15:31:53 localhost in.tftpd[5528]: tftpd: read(ack): Connection refused
Смутительно выглядит. TFTP с рождения - UDP, там connection в привычном нам TCP-смысле, хендшейком, отсутствует. Как может быть "refused" то, чего нету? Подумал бы, что маршрутизация на какой-то стороне сбита. Ну или пакет размера MTU через какой интерфейс не пролезает.
Palych
Уже с Приветом
Posts: 13682
Joined: 16 Jan 2001 10:01

Re: Линуксоиды, настроить TFTP - хочу понять

Post by Palych »

katit wrote:

Code: Select all

Jul  2 15:31:53 localhost in.tftpd[5528]: tftpd: read(ack): Connection refused
Это лог с сервера, не с клиента?
User avatar
katit
Уже с Приветом
Posts: 23804
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Re: Линуксоиды, настроить TFTP - хочу понять

Post by katit »

Да, лог с сервера. Тоже согласен чт "смутительно выглядит". По крайней мере мне. Т.е. соединение происходит, запрос проходит а потом сервер почему то говорит неА. И более детального лога нет. Т.е. наверняка в деталях запроса можно найти разницу, но надо ли ее искать? Ну т.е. поможет ли это мне если дело в дурацком Сиске телефоне? Думаю откатить прошивку на телефоне попробовать..
Лучше водки — хуже нет! ©
User avatar
xKing
Уже с Приветом
Posts: 1405
Joined: 27 Dec 2010 12:32
Location: Big D

Re: Линуксоиды, настроить TFTP - хочу понять

Post by xKing »

а что говорит

iptables --list --line-numbers

?

ну и резултат tcpdump
I wasn't born in Texas, but I got here as fast as I could.
Palych
Уже с Приветом
Posts: 13682
Joined: 16 Jan 2001 10:01

Re: Линуксоиды, настроить TFTP - хочу понять

Post by Palych »

Думаю это tftpd куда-то хочет подключиться, но не может. Может файл на SMB?
lsof -p ...
User avatar
Ion Tichy
Уже с Приветом
Posts: 13339
Joined: 07 Dec 2004 04:00
Location: Москва->CO

Re: Линуксоиды, настроить TFTP - хочу понять

Post by Ion Tichy »

Palych wrote:Думаю это tftpd куда-то хочет подключиться, но не может. Может файл на SMB?
lsof -p ...
Похоже на то. Если заглянуть в https://www.kernel.org/pub/software/net ... .40.tar.gz, файл tftpd.c, строки 1238-1242, то увидим:

Code: Select all

    ...
    n = recv_time(peer, ackbuf, sizeof (ackbuf), 0, &r_timeout);
    if (n < 0) {
        syslog(LOG_WARNING, "tftpd: read(ack): %m");
        goto abort;
    }
    ...
Это единств.место где печатается "tftpd: read(ack): ".
В свою очередь

Code: Select all

/*
 * Receive packet with synchronous timeout; timeout is adjusted
 * to account for time spent waiting.
 */
static int recv_time(int s, void *rbuf, int len, unsigned int flags,
		     unsigned long *timeout_us_p)
{
    ...
Похоже какой-то неправильный клиент попался. И мед у него тоже неправильный.
Как же это вы без гравицаппы пепелац выкатываете из гаража? Это непорядок...
User avatar
katit
Уже с Приветом
Posts: 23804
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Re: Линуксоиды, настроить TFTP - хочу понять

Post by katit »

xKing wrote:а что говорит

iptables --list --line-numbers

?

ну и резултат tcpdump

Ну вот дамп с другого нетворка, просто в терминале запросил файл через тфтп, то что вижу на сервере. Файл пришел. Мой адрес 99.100

Code: Select all

17:44:34.172474 IP 192.168.99.100.56370 > localhost.localdomain.tftp:  35 RRQ "SEP7081053D862B.cnf.xml" netascii
17:44:34.172758 IP localhost.localdomain.38378 > router.domain: 64798+ PTR? 100.99.168.192.in-addr.arpa. (45)
17:44:34.173515 IP localhost.localdomain.45709 > 192.168.99.100.56370: UDP, length 516
17:44:34.193714 IP router.domain > localhost.localdomain.38378: 64798 NXDomain 0/0/0 (45)
17:44:34.208686 IP 192.168.99.100.56370 > localhost.localdomain.45709: UDP, length 4
17:44:34.208766 IP localhost.localdomain.45709 > 192.168.99.100.56370: UDP, length 516
17:44:34.245747 IP 192.168.99.100.56370 > localhost.localdomain.45709: UDP, length 4
17:44:34.245826 IP localhost.localdomain.45709 > 192.168.99.100.56370: UDP, length 516
17:44:34.278612 IP 192.168.99.100.56370 > localhost.localdomain.45709: UDP, length 4
17:44:34.278690 IP localhost.localdomain.45709 > 192.168.99.100.56370: UDP, length 516
17:44:34.312721 IP 192.168.99.100.56370 > localhost.localdomain.45709: UDP, length 4
17:44:34.312799 IP localhost.localdomain.45709 > 192.168.99.100.56370: UDP, length 516
17:44:34.346435 IP 192.168.99.100.56370 > localhost.localdomain.45709: UDP, length 4
17:44:34.346513 IP localhost.localdomain.45709 > 192.168.99.100.56370: UDP, length 516
17:44:34.378759 IP 192.168.99.100.56370 > localhost.localdomain.45709: UDP, length 4
17:44:34.378836 IP localhost.localdomain.45709 > 192.168.99.100.56370: UDP, length 516
17:44:34.412796 IP 192.168.99.100.56370 > localhost.localdomain.45709: UDP, length 4
17:44:34.412874 IP localhost.localdomain.45709 > 192.168.99.100.56370: UDP, length 516
17:44:34.444783 IP 192.168.99.100.56370 > localhost.localdomain.45709: UDP, length 4
Телефон на адресе 33.104, похоже он что-то берет а потом непонятно что..

Code: Select all

17:50:26.796750 IP 192.168.33.104.blackjack > localhost.localdomain.tftp:  51 RRQ "SEP7081053D862B.cnf.xml" octet timeout 10 tsize 0
17:50:26.797977 IP localhost.localdomain.54904 > 192.168.33.104.blackjack: UDP, length 26
17:50:26.799418 IP 192.168.33.104.blackjack > localhost.localdomain.54904: UDP, length 4
17:50:26.799578 IP localhost.localdomain.54904 > 192.168.33.104.blackjack: UDP, length 516
17:50:26.801026 IP 192.168.33.104.blackjack > localhost.localdomain.54904: UDP, length 4
17:50:26.801176 IP localhost.localdomain.54904 > 192.168.33.104.blackjack: UDP, length 516
17:50:26.802227 IP 192.168.33.104.blackjack > localhost.localdomain.54904: UDP, length 4
17:50:26.802398 IP localhost.localdomain.54904 > 192.168.33.104.blackjack: UDP, length 516
17:50:26.803399 IP 192.168.33.104.blackjack > localhost.localdomain.54904: UDP, length 4
17:50:26.803548 IP localhost.localdomain.54904 > 192.168.33.104.blackjack: UDP, length 516
17:50:26.804616 IP 192.168.33.104.blackjack > localhost.localdomain.54904: UDP, length 4
17:50:26.804765 IP localhost.localdomain.54904 > 192.168.33.104.blackjack: UDP, length 516
17:50:26.805806 IP 192.168.33.104.blackjack > localhost.localdomain.54904: UDP, length 4
17:50:26.805954 IP localhost.localdomain.54904 > 192.168.33.104.blackjack: UDP, length 516

.....

17:50:27.421769 IP localhost.localdomain.54904 > 192.168.33.104.blackjack: UDP, length 516
17:50:27.422636 IP 192.168.33.104 > localhost.localdomain: ICMP 192.168.33.104 udp port blackjack unreachable, length 36
17:50:27.664879 IP 192.168.33.104.54321 > 224.168.168.168.6061: UDP, length 8
17:50:27.900983 IP 192.168.33.104 > 224.168.168.168: igmp v2 report 224.168.168.168
17:50:27.914880 IP 192.168.33.104.54321 > 224.168.168.168.6061: UDP, length 8
17:50:28.918850 IP6 fe80::34cd:cce5:6a7d:b840.49820 > ff02::1:3.hostmon: UDP, length 25
17:50:28.922920 IP6 fe80::34cd:cce5:6a7d:b840.54803 > ff02::1:3.hostmon: UDP, length 25
17:50:29.301875 IP 192.168.33.104.55656 > 255.255.255.255.55656: UDP, length 28
17:50:31.804422 ARP, Request who-has 192.168.33.104 tell localhost.localdomain, length 28
17:50:31.805015 ARP, Reply 192.168.33.104 is-at 70:81:05:3d:86:2b (oui Unknown), length 50
17:50:34.052343 IP6 fe80::34cd:cce5:6a7d:b840.62599 > ff02::1:3.hostmon: UDP, length 25

Firewall/iptables - looks OK

Code: Select all

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
2    ACCEPT     all  --  anywhere             anywhere            
3    INPUT_direct  all  --  anywhere             anywhere            
4    INPUT_ZONES_SOURCE  all  --  anywhere             anywhere            
5    INPUT_ZONES  all  --  anywhere             anywhere            
6    ACCEPT     icmp --  anywhere             anywhere            
7    REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
2    ACCEPT     all  --  anywhere             anywhere            
3    FORWARD_direct  all  --  anywhere             anywhere            
4    FORWARD_IN_ZONES_SOURCE  all  --  anywhere             anywhere            
5    FORWARD_IN_ZONES  all  --  anywhere             anywhere            
6    FORWARD_OUT_ZONES_SOURCE  all  --  anywhere             anywhere            
7    FORWARD_OUT_ZONES  all  --  anywhere             anywhere            
8    ACCEPT     icmp --  anywhere             anywhere            
9    REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    OUTPUT_direct  all  --  anywhere             anywhere            

Chain FORWARD_IN_ZONES (1 references)
num  target     prot opt source               destination         
1    FWDI_public  all  --  anywhere             anywhere            [goto] 
2    FWDI_public  all  --  anywhere             anywhere            [goto] 

Chain FORWARD_IN_ZONES_SOURCE (1 references)
num  target     prot opt source               destination         

Chain FORWARD_OUT_ZONES (1 references)
num  target     prot opt source               destination         
1    FWDO_public  all  --  anywhere             anywhere            [goto] 
2    FWDO_public  all  --  anywhere             anywhere            [goto] 

Chain FORWARD_OUT_ZONES_SOURCE (1 references)
num  target     prot opt source               destination         

Chain FORWARD_direct (1 references)
num  target     prot opt source               destination         

Chain FWDI_public (2 references)
num  target     prot opt source               destination         
1    FWDI_public_log  all  --  anywhere             anywhere            
2    FWDI_public_deny  all  --  anywhere             anywhere            
3    FWDI_public_allow  all  --  anywhere             anywhere            

Chain FWDI_public_allow (1 references)
num  target     prot opt source               destination         

Chain FWDI_public_deny (1 references)
num  target     prot opt source               destination         

Chain FWDI_public_log (1 references)
num  target     prot opt source               destination         

Chain FWDO_public (2 references)
num  target     prot opt source               destination         
1    FWDO_public_log  all  --  anywhere             anywhere            
2    FWDO_public_deny  all  --  anywhere             anywhere            
3    FWDO_public_allow  all  --  anywhere             anywhere            

Chain FWDO_public_allow (1 references)
num  target     prot opt source               destination         

Chain FWDO_public_deny (1 references)
num  target     prot opt source               destination         

Chain FWDO_public_log (1 references)
num  target     prot opt source               destination         

Chain INPUT_ZONES (1 references)
num  target     prot opt source               destination         
1    IN_public  all  --  anywhere             anywhere            [goto] 
2    IN_public  all  --  anywhere             anywhere            [goto] 

Chain INPUT_ZONES_SOURCE (1 references)
num  target     prot opt source               destination         

Chain INPUT_direct (1 references)
num  target     prot opt source               destination         
1    REJECT     tcp  --  anywhere             anywhere             multiport dports sip,sip-tls match-set fail2ban-asterisk-tcp src reject-with icmp-port-unreachable
2    REJECT     udp  --  anywhere             anywhere             multiport dports sip,sip-tls match-set fail2ban-asterisk-udp src reject-with icmp-port-unreachable

Chain IN_public (2 references)
num  target     prot opt source               destination         
1    IN_public_log  all  --  anywhere             anywhere            
2    IN_public_deny  all  --  anywhere             anywhere            
3    IN_public_allow  all  --  anywhere             anywhere            

Chain IN_public_allow (1 references)
num  target     prot opt source               destination         
1    ACCEPT     udp  --  anywhere             anywhere             udp dpt:tftp ctstate NEW
2    ACCEPT     ah   --  anywhere             anywhere             ctstate NEW
3    ACCEPT     esp  --  anywhere             anywhere             ctstate NEW
4    ACCEPT     udp  --  anywhere             anywhere             udp dpt:isakmp ctstate NEW
5    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh ctstate NEW
6    ACCEPT     udp  --  anywhere             anywhere             udp dpts:hydap:15100 ctstate NEW
7    ACCEPT     udp  --  anywhere             anywhere             udp dpt:sip ctstate NEW

Chain IN_public_deny (1 references)
num  target     prot opt source               destination         

Chain IN_public_log (1 references)
num  target     prot opt source               destination         

Chain OUTPUT_direct (1 references)
num  target     prot opt source               destination 
Лучше водки — хуже нет! ©
User avatar
katit
Уже с Приветом
Posts: 23804
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Re: Линуксоиды, настроить TFTP - хочу понять

Post by katit »

Palych wrote:Думаю это tftpd куда-то хочет подключиться, но не может. Может файл на SMB?
lsof -p ...
Файл лежит в папке самого tftpd, SAMBA там нет. Похоже клиент неправильный..
Лучше водки — хуже нет! ©

Return to “Вопросы и новости IT”