Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.141.244.201] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Есть Gentoo Base System release 1.12.9 на ней установлен pure-ftpd, вот его конфиг:
# Config file for /etc/init.d/pure-ftpd ##Comment variables out to disable its features, or change the values in it... ## ## This variable must be uncommented in order for the server to start ## IS_CONFIGURED="yes" ## FTP Server,Port (separated by comma) ## ## If you prefer host names over IP addresses, it's your choice: ## SERVER="-S ftp.rtchat.com,21" ## IPv6 addresses are supported. ## !!! WARNING !!! ## Using an invalid IP will result in the server not starting, ## but reporting a correct start! ## SERVER="-S 192.168.0.1,21" ## By default binds to all available IPs. SERVER="-S 21" ## Number of simultaneous connections in total, and per IP ## MAX_CONN="-c 50" MAX_CONN_IP="-C 15" ## Start daemonized in background ## DAEMON="-B" ## Don't allow uploads if the partition is more full then this var ## DISK_FULL="-k 95%" ## If your FTP server is behind a NAT box, uncomment this ## #USE_NAT="-N" ## Authentication mechanisms (others are 'pam', ...) ## ## Further infos can be found in the README file. AUTH="-l mysql:/etc/pureftpd/mysql.conf" ## Change the maximum idle time (in minutes) ## ## If this variable is not defined, it will default to 15 minutes. TIMEOUT="-I 2" ## Facility used for syslog logging ## ## If this variable is not defined, it will default to the 'ftp' facility. ## Logging can be disabled with '-f none'. #LOG="-f <facility>" ## Charset conversion support *experimental* ## ## Only works if USE "charconv" is enabled (only Pure-FTPd >=1.0.21). ## Set the charset of the filesystem. CHARCONV="--fscharset utf-8 --clientcharset cp1251" ## If you want to process each file uploaded through Pure-FTPd, enter the name ## of the script that should process the files below. ## man pure-uploadscript to learn more about how to write this script. # UPLOADSCRIPT="/path/to/uploadscript" ## Misc. Others ## MISC_OTHER="-A -j -Z -M -s -u 20 -b -U 113:002" # Temporary settings while system under hackers attack #MISC_OTHER="-A -j -Z -e -M -s -u 20 -b -U 113:002" # # Use these inside $MISC_OTHER # More can be found on "http://download.pureftpd.org/pub/pure-ftpd/doc/README" # # -A [ chroot() everyone, but root ] # -e [ Only allow anonymous users ] # -E [ Only allow authenticated users. Anonymous logins are prohibited. ] # -i [ Disallow upload for anonymous users, whatever directory perms are ] # -j [ If the home directory of a user doesn't exist, auto-create it ] # -M [ Allow anonymous users to create directories. ] # -R [ Disallow users (even non-anonymous ones) usage of the CHMOD command ] # -x [ In normal operation mode, authenticated users can read/write # files beginning with a dot ('.'). Anonymous users can't, for security reasons # (like changing banners or a forgotten .rhosts). When '-x' is used, authenticated # users can download dot-files, but not overwrite/create them, even if they own # them. ] # -X [ This flag is identical to the previous one (writing # dot-files is prohibited), but in addition, users can't even *read* files and # directories beginning with a dot (like "cd .ssh"). ] # -D [ List files beginning with a dot ('.') even when the client doesn't # append the '-a' option to the list command. A workaround for badly # configured FTP clients. ] # -G [ Disallow renaming. ] # -d [ Send various debugging messages to the syslog. ONLY for DEBUG ] # -F <fortune file> [ Display a fortune cookie on login. Check the README file ] # -H [ By default, fully-qualified host names are logged. The '-H' flag avoids host names resolution. ] На этом pure-ftpd заведены пользователи, так вот под одним пользователем со своего компьютера я прекрасно захожу в папку pure-ftpd принадлежащую этому пользователю, а с другого компьютера этим же пользователем (у этого компьютера другой внешний ip, не тот который на компьютере с которого я прекрасно захожу) зайти не могу, причём сервер третьим пакетом начинает закрывать соединение. Дело не доходит даже до проверки логина и пароля. На iptables доступ для этого компьютера открыт! сейчас приведу вывод команды tcpdump - это для компьютера с которого нормально захожу: сервер пусть будет 11.11.11.11 клиент 22.22.22.22 15:52:39.397767 IP 22.22.22.22.1234 > 11.11.11.11.21: S 474479167:474479167(0) win 29200 <mss 1460,sackOK,timestamp 6628672 0,nop,wscale 7> 0x0000: 4590 003c df7f 4000 3406 bcbc 5f45 a534 E..<..@.4..._E.4 0x0010: c113 e462 2533 0015 1c47 fa3f 0000 0000 ...b%3...G.?.... 0x0020: a002 7210 ca8b 0000 0204 05b4 0402 080a ..r............. 0x0030: 0065 2540 0000 0000 0103 0307 .e%@........ 15:52:39.397790 IP 11.11.11.11.21 > 22.22.22.22.1234: S 3398055926:3398055926(0) ack 474479168 win 5792 <mss 1460,sackOK,timestamp 453334982 6628672,nop,wscale 6> 0x0000: 4500 003c 0000 4000 4006 90cc c113 e462 E..<..@.@......b 0x0010: 5f45 a534 0015 2533 ca8a 37f6 1c47 fa40 _E.4..%3..7..G.@ 0x0020: a012 16a0 b09f 0000 0204 05b4 0402 080a ................ 0x0030: 1b05 57c6 0065 2540 0103 0306 ..W..e%@.... 15:52:39.412750 IP 22.22.22.22.1234 > 11.11.11.11.21: . ack 1 win 229 <nop,nop,timestamp 6628688 453334982> 0x0000: 4590 0034 df80 4000 3406 bcc3 5f45 a534 E..4..@.4..._E.4 0x0010: c113 e462 2533 0015 1c47 fa40 ca8a 37f7 ...b%3...G.@..7. 0x0020: 8010 00e5 f515 0000 0101 080a 0065 2550 .............e%P 0x0030: 1b05 57c6 ..W. 15:52:39.414146 IP 11.11.11.11.21 > 22.22.22.22.1234: P 1:214(213) ack 1 win 91 <nop,nop,timestamp 453334986 6628688> 0x0000: 4510 0109 603d 4000 4006 2fb2 c113 e462 E...`=@.@./....b 0x0010: 5f45 a534 0015 2533 ca8a 37f7 1c47 fa40 _E.4..%3..7..G.@ 0x0020: 8018 005b 6f24 0000 0101 080a 1b05 57ca ...[o$........W. 0x0030: 0065 2550 3232 302d 2d2d 2d2d 2d2d 2d2d .e%P220--------- 0x0040: 2d20 5765 6c63 6f6d 6520 746f 2050 7572 -.Welcome.to.Pur 0x0050: 652d 4654 5064 205b 7072 6976 7365 705d e-FTPd.[privsep] 0x0060: 205b 544c 535d 202d 2d2d 2d2d 2d2d 2d2d .[TLS].--------- 0x0070: 2d0d 0a32 3230 2d59 6f75 2061 7265 2075 -..220-You.are.u 0x0080: 7365 7220 6e75 6d62 6572 2031 206f 6620 ser.number.1.of. 0x0090: 3530 2061 6c6c 6f77 6564 2e0d 0a32 3230 50.allowed...220 0x00a0: 2d4c 6f63 616c 2074 696d 6520 6973 206e -Local.time.is.n 0x00b0: 6f77 2031 353a 3532 2e20 5365 7276 6572 ow.15:52..Server 0x00c0: 2070 6f72 743a 2032 312e 0d0a 3232 3020 .port:.21...220. 0x00d0: 596f 7520 7769 6c6c 2062 6520 6469 7363 You.will.be.disc 0x00e0: 6f6e 6e65 6374 6564 2061 6674 6572 2032 onnected.after.2 0x00f0: 206d 696e 7574 6573 206f 6620 696e 6163 .minutes.of.inac 0x0100: 7469 7669 7479 2e0d 0a tivity... 15:52:39.429294 IP 22.22.22.22.1234 > 11.11.11.11.21: . ack 214 win 237 <nop,nop,timestamp 6628704 453334986> 0x0000: 4590 0034 df81 4000 3406 bcc2 5f45 a534 E..4..@.4..._E.4 0x0010: c113 e462 2533 0015 1c47 fa40 ca8a 38cc ...b%3...G.@..8. и т.д. и вот для компьютера с которого не могу зайти: сервер 11.11.11.11 клиент 33.33.33.33 17:18:30.931779 IP 33.33.33.33.1234 > 11.11.11.11.21: S 1003791188:1003791188(0) win 8192 <mss 1460,nop,wscale 8,nop,nop,sackOK> 0x0000: 4500 0034 05df 4000 7b06 d297 2eac 532b E..4..@.{.....S+ 0x0010: c113 e462 fadd 0015 3bd4 a354 0000 0000 ...b....;..T.... 0x0020: 8002 2000 4da7 0000 0204 05b4 0103 0308 ....M........... 0x0030: 0101 0402 .... 17:18:30.931799 IP 11.11.11.11.21 > 33.33.33.33.1234: S 236703472:236703472(0) ack 1003791189 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 6> 0x0000: 4500 0034 0000 4000 4006 1377 c113 e462 E..4..@.@..w...b 0x0010: 2eac 532b 0015 fadd 0e1b cef0 3bd4 a355 ..S+........;..U 0x0020: 8012 16d0 79bc 0000 0204 05b4 0101 0402 ....y........... 0x0030: 0103 0306 .... 17:18:30.934982 IP 33.33.33.33.1234 > 11.11.11.11.21: . ack 1 win 256 0x0000: 4500 0028 05e0 4000 7b06 d2a2 2eac 532b E..(..@.{.....S+ 0x0010: c113 e462 fadd 0015 3bd4 a355 0e1b cef1 ...b....;..U.... 0x0020: 5010 0100 d05d 0000 0000 0000 0000 P....]........ 17:18:30.952367 IP 11.11.11.11.21 > 33.33.33.33.1234: F 1:1(0) ack 1 win 92 0x0000: 4500 0028 3019 4000 4006 e369 c113 e462 E..(0.@.@..i...b 0x0010: 2eac 532b 0015 fadd 0e1b cef1 3bd4 a355 ..S+........;..U 0x0020: 5011 005c d100 0000 P..\.... 17:18:30.958407 IP 33.33.33.33.1234 > 11.11.11.11.21: . ack 2 win 256 0x0000: 4500 0028 05e1 4000 7b06 d2a1 2eac 532b E..(..@.{.....S+ 0x0010: c113 e462 fadd 0015 3bd4 a355 0e1b cef2 ...b....;..U.... 0x0020: 5010 0100 d05c 0000 0000 0000 0000 P....\........ 17:18:30.958824 IP 11.11.11.11.21 > 33.33.33.33.1234: R 1:1(0) ack 2 win 0 0x0000: 4500 0028 05e2 4000 7b06 d2a0 2eac 532b E..(..@.{.....S+ 0x0010: c113 e462 fadd 0015 3bd4 a355 0e1b cef2 ...b....;..U.... 0x0020: 5014 0000 d158 0000 0000 0000 0000 P....X........ и всё! как видно сервер вот в этой строке: 17:18:30.952367 IP 11.11.11.11.21 > 33.33.33.33.1234: F 1:1(0) ack 1 win 92 Сервер начинает закрывать сетевое соединение. В логаг pure-ftpd ТИШИНА! Вопрос номер один, как в pure-ftpd включить подробнейшее логирование? И вопрос номер два, я не пойму кто начинает закрывать сетевое соединение pure-ftpd или ядро, на iptables ТОЧНО ОТКРЫТО! Во всех запрещающих списках на сервере просмотрел, нигде запретов для этого клиента нет. Клиент пробовал из разных программ - тотал, клиенты ftp разные, far и т.д. За любую помощь буду благодарен! |
Сообщ.
#2
,
|
|
|
Скажите, а вот эти данные при трехстороннем рукопожатии - откуда берутся?
17:18:30.931779 IP 33.33.33.33.1234 > 11.11.11.11.21: S 1003791188:1003791188(0) win 8192 <mss 1460,nop,wscale 8,nop,nop,sackOK> Цитата 0x0000: 4500 0034 05df 4000 7b06 d297 2eac 532b E..4..@.{.....S+ 0x0010: c113 e462 fadd 0015 3bd4 a354 0000 0000 ...b....;..T.... 0x0020: 8002 2000 4da7 0000 0204 05b4 0103 0308 ....M........... 0x0030: 0101 0402 При троекратном рукопожатии данные вообще не пересылаются - это закон TCP. Стандартный протокол данные соединения-рассоединения не поддерживает. А они у вас во всех трех сегментах рукопожатия имеются... Ну это к слову, так сказать. Различие во втором ответе клиента на сегмент S от сервера ОК Клиент2 15:52:39.412750 IP 22.22.22.22.1234 > 11.11.11.11.21: . ack 1 win 229 <nop,nop,timestamp 6628688 453334982> (какие то данные) Сброс Клиент2 17:18:30.934982 IP 33.33.33.33.1234 > 11.11.11.11.21: . ack 1 win 256 (какие то данные, но меньшего размера)... Именно после этого сервер посылает приглашение к закрытию с флагом F, а после шлет грубый Reset (флаг R) |
Сообщ.
#3
,
|
|
|
Ничего я не понял. Как в первом так и во втором случае есть данные во время рукопожатия, но почему то в первом случае всё нормально, а во втором сервер закрывает соединение. Вот почему не понятно.
|
Сообщ.
#4
,
|
|
|
Ну в общем то понятно наверно.
В правильном варианте клиент шлет вот столько данных в своем аск, Цитата 0x0000: 4590 0034 df80 4000 3406 bcc3 5f45 a534 E..4..@.4..._E.4 0x0010: c113 e462 2533 0015 1c47 fa40 ca8a 37f7 ...b%3...G.@..7. 0x0020: 8010 00e5 f515 0000 0101 080a 0065 2550 .............e%P 0x0030: 1b05 57c6 ..W. а при сбросе вот столько - меньше: Цитата 0x0000: 4500 0028 05e0 4000 7b06 d2a2 2eac 532b E..(..@.{.....S+ 0x0010: c113 e462 fadd 0015 3bd4 a355 0e1b cef1 ...b....;..U.... 0x0020: 5010 0100 d05d 0000 0000 0000 0000 P....]........ Видимо именно это серверу и не нравится... Что это за данные? откуда они берутся??? |
Сообщ.
#5
,
|
|
|
а вообще данные должны быть в syn или ask?
|
Сообщ.
#6
,
|
|
|
По закону - нет.
При рукопожатии никаких данных быть не должно. Так пишется во всех описаниях процедуры рукопожатия. Но в принципе в функциях создания сокета и функции connect() это предусматривается в последних спецификациях как винды так и никсов...но реализации такого я не видел еще. Смущает именно тот факт что вначале именно клиент тупо шлет данные в сегменте S. Но: Цитата TCP Fast Open (TFO) Загрузка страницы может означать скачивание сотен ее составляющих с разных хостов. Это может потребовать создания браузером десятков новых TCP-соединений, каждое из которых будет давать задержку из-за хэндшейка. Стоит ли говорить, что это может ухудшить скорость загрузки такой страницы, особенно для мобильных пользователей. TCP Fast Open (TFO) – это механизм, который позволяет снизить задержку за счет того, что позволяет отправку данных внутри SYN-пакета. Однако и у него есть свои ограничения: в частности, на максимальный размер данных внутри SYN-пакета. Кроме того, только некоторые типы HTTP-запросов могут использовать TFO, и это работает только для повторных соединений, поскольку использует cookie-файл. Использование TFO требует явной поддержки этого механизма на клиенте, сервере и в приложении. Это работает на сервере с ядром Linux версии 3.7 и выше и с совместимым клиентом (Linux, iOS9 и выше, OSX 10.11 и выше), а также потребуется включить соответствующие флаги сокетов внутри приложения. Специалисты компании Google определили, что TFO может снизить сетевую задержку при HTTP-запросах на 15%, ускорить загрузку страниц на 10% в среднем и в отдельных случаях – до 40%. |
Сообщ.
#7
,
|
|
|
Да это просто дамп всего IP-пакета, там и ip заголовок указан и tcp-заголовок.
ТС могу предложить wireshark в помощь, чтобы точно разобраться в том, какие данные передаются и в чем отличие между двумя сессиями. |
Сообщ.
#8
,
|
|
|
wireshark с графическим интерфейсом, а у меня иксов нет, это шлюз на котором pure-ftpd запущен, графики там никакой нет.
Я думаю что данные в читаемом или человеко-разбираемом вивде и tcpdump-пом можно посмотреть, только как? И ещё в этой gentoo какой то не такой конфиг pure-ftpd как там включить подробнейшее логирование, тогда может если pure-ftpd что то напишет, по этой информации разобраться. Но как включить это подробнейшее логирование я в интернете так и не нашёл. |
Сообщ.
#9
,
|
|
|
У tcpdump есть параметр -W кажется, в этом случае все отобранные фильтром пакеты записываются в бинарный файл. Обязательно еще укажите -S (кажется), чтобы записывался пакет целиком, а не его некоторая начальная часть. После этого бинарный файл можно смотреть wireshark уже на desktop-машине.
/etc/conf.d/pure-ftpd - это в дженте конфиг запуска демона pure-ftpd, через который можно передать параметры командной строки. главные настройки pure-ftpd смотрите в /etc/pure-ftpd или как-то так. |
Сообщ.
#10
,
|
|
|
Если кто знает как при помощи wireshark сохранить информацию в человека-читаемом виде.
Я уже открыл эти файлы в wireshark-е вижу информацию, почему сервер закрывает соединение не пойму, хотел информацию выложить на форуме но как её сохранить в человеко-читаемом виде пока не получается. Добавлено wireshark показал следующее, во втором пакете где нормально, в опции options есть timestamps, а вот где не нормально во втором пакете в options этого timestamps нету. Это в протоколе tcp В третьем пакете (после которого начинает закрываться соединение) в протоколе tcp там где нормально есть options, а вот там где не нормально (где после этого пакета начинает закрываться соединение) options нет вообще. Третий пакет это пакет от клиента, то есть клиент не пишет эту options. В остальном всё идентично, только пакеты где не нормально на 8 байт короче. Эта информация не внесла ясности. |
Сообщ.
#11
,
|
|
|
Попытаюсь выложить в фотках.
Прикреплённый файлwm111.jpg (92,42 Кбайт, скачиваний: 346) |
Сообщ.
#12
,
|
|
|
Айпишники закрасил. Слева это нормальное соединение, справа том где не нормально, которое закрывается.
Прикреплённый файлwm222.jpg (131,81 Кбайт, скачиваний: 355) Прикреплённый файлwm3.jpg (101,1 Кбайт, скачиваний: 353) Прикреплённый файлwm444.jpg (154,55 Кбайт, скачиваний: 336) Прикреплённый файлwm555.jpg (145,25 Кбайт, скачиваний: 338) |
Сообщ.
#13
,
|
|
|
продолжение
Прикреплённый файлwm666.jpg (147,72 Кбайт, скачиваний: 327) Прикреплённый файлwm777.jpg (156,23 Кбайт, скачиваний: 340) Прикреплённый файлwm888.jpg (163,11 Кбайт, скачиваний: 351) Прикреплённый файлwm999.jpg (132,81 Кбайт, скачиваний: 350) Прикреплённый файлwm1000.jpg (135,99 Кбайт, скачиваний: 344) |
Сообщ.
#14
,
|
|
|
Да, то что нет опций, это было видно.
Именно после получения АСК от клиента - последний сегмент рукопожатия - сервер ни с того ни с сего вдруг шлет FIN, а потом RST. Вариант есть 1. Хендшейк проходит и на сервере заявка переходим в очередь полностью установленных соединений, после чего на сервере срабатывает accept(), но аксепт хитрый - в виндовсе он работает так: Цитата SOCKET WSAAPI WSAAccept ( IN SOCKET sd, OUT struct sockaddr FAR * addr, IN OUT LPINT addrlen, IN LPCONDITIONPROC lpfnCondition, IN DWORD dwCallbackData); Здесь: • addr - необязательный указатель на буфер (структуру), где должен храниться адрес подключаемого объекта; формат адреса определяется типом протокола, заданным при создании сокета; • addrlen - необязательный указатель на целую переменную, которая определяет длину аргумента addr; • lpfnCondition - адрес необязательный процедуры, которая на основе анализа некоторых условий (например, нежелательный IP-адрес) возвращает CF_ACCEPT для приема, CF_REJECT для отказа обслуживания запроса или CF_DEFER для отложенного анализа. На основе анализа возврата WSAAccept() принимает решение о дальнейшей обработке, или о создании группы сокетов, или подключает сокет к уже существующей группе. Например, надо отказаться от обслуживания запроса. Функция анализа возвращает CF_REJECT и WSAAccept() в свою очередь возвращает INVALID_SOCKET с кодом ошибки WSAECONNREFUSED. Режим вызова процедуры, адресованной lpfnCondition, осуществляется установкой опции прослушивающего сокета SO_CONDITIONAL_ACCEPT (тип - BOOL). Использование этого режима снижает нагрузку на сеть и повышает устойчивость сервера против атак. • DwCallbackData - параметр, возвращаемый приложению. Этот параметр не интерпретируется WinSock. Т.е о чем речь? хендшейк проходит, но на сервере срабатывает процедура проверки, которую клиент не проходит, и соединение рвется. Какие там условия - хз...это условный аксепт срабатывает...может серверу порт не нравится, может IP не нравится... |
Сообщ.
#15
,
|
|
|
ещё продолжение
Прикреплённый файлwm11.jpg (133,23 Кбайт, скачиваний: 340) Прикреплённый файлwm12.jpg (142,63 Кбайт, скачиваний: 378) Прикреплённый файлwm13.jpg (169,93 Кбайт, скачиваний: 372) Прикреплённый файлwm14.jpg (166,5 Кбайт, скачиваний: 271) Прикреплённый файлwm15.jpg (161,68 Кбайт, скачиваний: 343) Прикреплённый файлwm16.jpg (121,65 Кбайт, скачиваний: 370) Прикреплённый файлwm17.jpg (125,67 Кбайт, скачиваний: 360) Прикреплённый файлwm18.jpg (147,48 Кбайт, скачиваний: 344) Прикреплённый файлwm19.jpg (147,77 Кбайт, скачиваний: 354) Прикреплённый файлwm20.jpg (145,38 Кбайт, скачиваний: 347) Прикреплённый файлwm21.jpg (156,98 Кбайт, скачиваний: 364) Прикреплённый файлwm22.jpg (159,38 Кбайт, скачиваний: 349) Прикреплённый файлwm23.jpg (117,93 Кбайт, скачиваний: 367) Прикреплённый файлwm24.jpg (178,61 Кбайт, скачиваний: 375) Прикреплённый файлwm25.jpg (140,98 Кбайт, скачиваний: 345) Прикреплённый файлwm26.jpg (160,92 Кбайт, скачиваний: 356) Прикреплённый файлwm27.jpg (145,6 Кбайт, скачиваний: 375) Прикреплённый файлwm28.jpg (158,18 Кбайт, скачиваний: 357) Добавлено Думаю этой информации будет достаточно для анализа. Но думаю что это не поможет, надо включить подробнейшее логирование pure-ftpd, но как это сделать не знаю. У меня файла /etc/pure-ftp.conf вообще нет. Добавлено Т.е о чем речь? хендшейк проходит, но на сервере срабатывает процедура проверки, которую клиент не проходит, и соединение рвется. Какие там условия - хз...это условный аксепт срабатывает...может серверу порт не нравится, может IP не нравится... А как же узнать что серверу не нравится? Не понятно это pure-ftp не хочет отвечать или сама система и до pure-ftp дело даже не доходит? При том логировании которое сейчас включено, при нормальном конекте в логи пишет информацию, при не нормальном в логагх вообще ничего. |