PDA

Bekijk de volledige versie : Сборка xinetd на WL500gP



GearST
18-10-2006, 16:52
да да дело в том что опт он маунтит, а фтп не пукает =(
а можно без xinetd как-то?
и дай ссылку на мануал про xinetd

imdex
18-10-2006, 17:46
Без xinet можно, наверное, но я не пробовал, у меня заработало и больше не экспериментил.
А вот ссылка (http://www.macsat.com/macsat/content/view/25/29/)

GearST
18-10-2006, 20:25
лана надоели мне эти танцы с бубном попытаюсь сделать через xinetd.
Тока тут попал я на 2 стремных бага =(
1й поменял я пасс(и благополучно забыл =() но не сохранил и не рестартил роутер(менял через веб), было это вчера, сеня торрент слился криво(дальше об энтом), короче по старому логину пассу по ссш захожу без вопросов а в веб немогу =(, как восстановить поменять?
/etc/passwd без именений, рут старый, пароль тож, где он хранит настройки для веба?

далее по торрену танцевали мы с oleo с бубном около transmission запустили, даже с веб интерфейсом правда все криво пашет но не суть, короче, слил он торрент, поставил его на сидирование(раздачу), ну мне он нужен щас, я делаю пуш, он встает в саспендет, но никак не в done +( короче на хараде должно быть 3 файла в torrent/target, а они во первых в work, во 2х самого тяжелого файла нету =( где? как? почему?
:eek:

GearST
19-10-2006, 10:41
c xinetd еще веселей =(

[admin@Router root]$ xinetd -d
06/10/19@13:39:51: DEBUG: 228 {handle_includedir} Reading included configuration file: /opt/etc/xinetd.d/vsftp [file=/opt/etc/xinetd.conf] [line=15]
Service defaults
Instances = 60
CPS = max conn:25 wait:30
Bind = All addresses.
Only from: localhost(HOST) 0.0.0.0/0.0.0.0(NET)
No access: No blocked sites
Logging to syslog. Facility = authpriv, level = info
Log_on_success flags = HOST PID
Log_on_failure flags = HOST

Service configuration: ftp
id = ftp
flags = IPv4
socket_type = stream
Protocol (name,number) = (tcp,6)
port = 21
wait = no
user = 0
Groups = no
Nice = 10
PER_SOURCE = -1
Bind = All addresses.
Server = /opt/sbin/vsftpd
Server argv = vsftpd /opt/etc/vsftpd.conf
Only from: 0.0.0.0/0.0.0.0(NET)
No access: No blocked sites
Logging to syslog. Facility = authpriv, level = info
Log_on_success flags = HOST PID
Log_on_failure flags = HOST

06/10/19@13:39:52: ERROR: 228 {activate_normal} bind failed (Address already in use (errno = 125)). service = ftp
06/10/19@13:39:52: ERROR: 228 {cnf_start_services} Service ftp failed to start and is deactivated.
06/10/19@13:39:52: DEBUG: 228 {cnf_start_services} mask_max = 0, services_started = 0
06/10/19@13:39:52: CRITICAL: 228 {init_services} no services. Exiting...

ступидфтп убит, но кто тогда держит порт 21? и кто держит сокет?

Блин тока что глянул, если убить xinetd и запустить фтп, пускаеться, значит косячит xinetd, что не так? =(

GearST
19-10-2006, 15:23
vsftpd /opt/etc/vsftpd.conf &
[admin@Router root]$ 500 OOPS: could not bind listening IPv4 socket

[1] + Done(1) vsftpd /opt/etc/vsftpd.conf
[admin@Router root]$ sh: turning off NDELAY mode

это если после ребута с криво запущенным xinetd запустить вручную vsftpd

терь оно запустилось вроде с xinetd -d тока при заходе фтп сразу вылетает =(

06/10/20@12:41:51: DEBUG: 268 {handle_includedir} Reading included configuration file: /opt/etc/xinetd.d/vsftp [file=/opt/etc/xinetd.conf] [line=15]
Service defaults
Instances = 60
CPS = max conn:25 wait:30
Bind = All addresses.
Only from: localhost(HOST) 0.0.0.0/0.0.0.0(NET)
No access: No blocked sites
Logging to syslog. Facility = authpriv, level = info
Log_on_success flags = HOST PID
Log_on_failure flags = HOST

Service configuration: ftp
id = ftp
flags = IPv4
socket_type = stream
Protocol (name,number) = (tcp,6)
port = 21
wait = no
user = 0
Groups = no
Nice = 10
PER_SOURCE = -1
Bind = All addresses.
Server = /opt/sbin/vsftpd
Server argv = vsftpd /opt/etc/vsftpd.conf
Only from: 0.0.0.0/0.0.0.0(NET)
No access: No blocked sites
Logging to syslog. Facility = authpriv, level = info
Log_on_success flags = HOST PID
Log_on_failure flags = HOST

06/10/20@12:41:51: DEBUG: 268 {cnf_start_services} Started service: ftp
06/10/20@12:41:51: DEBUG: 268 {cnf_start_services} mask_max = 6, services_started = 1
06/10/20@12:41:51: NOTICE: 268 {main} xinetd Version 2.3.14 started with no options compiled in.
06/10/20@12:41:51: NOTICE: 268 {main} Started working: 1 available service
06/10/20@12:41:51: DEBUG: 268 {main_loop} active_services = 1
06/10/20@12:41:55: DEBUG: 268 {main_loop} select returned 1
06/10/20@12:41:55: DEBUG: 268 {server_start} Starting service ftp
06/10/20@12:41:55: DEBUG: 268 {main_loop} active_services = 1
06/10/20@12:41:55: DEBUG: 269 {exec_server} duping 7
06/10/20@12:41:55: DEBUG: 268 {main_loop} active_services = 1
06/10/20@12:41:55: DEBUG: 268 {main_loop} select returned 1
06/10/20@12:41:55: DEBUG: 268 {check_pipe} Got signal 18 (Continued)
06/10/20@12:41:55: DEBUG: 268 {child_exit} waitpid returned = 269
06/10/20@12:41:55: DEBUG: 268 {server_end} ftp server 269 exited
06/10/20@12:41:55: INFO: 268 {conn_free} freeing connection
06/10/20@12:41:55: DEBUG: 268 {child_exit} waitpid returned = -1
06/10/20@12:41:55: DEBUG: 268 {main_loop} active_services = 1

nickk
03-01-2007, 23:46
Поставил я vsftpd согласно распространенной рекомендации работать через xinetd. И обнаружил что новое соединение создается с ftp секунд 10 если не больше. Причем все это время клиент ждет коннекта с 21 портом.
Решил запустить vsftpd standalone, опустив xinetd вовсе (все равно кроме vsftpd на нем ничего не висело) и прописав listen = yes в vsftpd.conf. И, о чудо, все залетало ;)
Непонятно, с чего xinetd'у так тормозить, рутер только что после перезагрузки (специально для проверки скорости xinetd), соотв в top почти чисто, трафика нету и тп.
xinetd равно как и vsftpd ставил из http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable.

n0isy
04-01-2007, 01:03
Непонятно, с чего xinetd'у так тормозить, рутер только что после перезагрузки

А своп есть? что с памятью?

nickk
05-01-2007, 23:30
А своп есть? что с памятью?

Своп есть, 200 метров файлом на флешке.

В настоящее время:

[admin@(none)]$ free
total used free shared buffers
Mem: 30140 28936 1204 0 1696
Swap: 199992 8504 191488
Total: 230132 37440 192692

Semkaa
15-06-2007, 19:56
Уважаемые гуру помогите пожалуйста с данной проблемой.
Очень нужен xinetd с поддержкой tcp_wrappers.
В документации написано, чтобы данная поддержка работала необходимо скомпилировать данный пакет с опцией --with-libwrap.

Скачал архив с исходниками положил на роутер.

./configure --with-libwrap

checking build system type... mipsel-pc-linux-gnu
checking host system type... mipsel-pc-linux-gnu
checking target system type... mipsel-pc-linux-gnu
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for a BSD-compatible install... /opt/bin/install -c
checking for ranlib... ranlib
checking for main in -lcompat... no
checking for library containing gethostbyname... none required
checking for library containing getnameinfo... none required
checking for library containing inet_ntop... none required
checking for getnameinfo... yes
checking for inet_ntop... yes
checking for difftime... yes
checking for fcvt... no
checking for fcvt in -lm... no
checking for ecvt... no
checking for ecvt in -lm... no
checking for gcvt... yes
checking for strerror... yes
checking for strcasecmp... yes
checking for socket... yes
checking for inet_aton... yes
checking for setenv... yes
checking for strsignal... yes
checking for sys_siglist in -lc... no
checking for gai_strerror... yes
checking for freeaddrinfo... yes
checking for getaddrinfo... yes
checking how to run the C preprocessor... gcc -E
checking for egrep... egrep
checking for ANSI C header files... no
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for sys/types.h... (cached) yes
checking sys/termios.h usability... yes
checking sys/termios.h presence... yes
checking for sys/termios.h... yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking rpc/rpc.h usability... yes
checking rpc/rpc.h presence... yes
checking for rpc/rpc.h... yes
checking rpc/rpcent.h usability... no
checking rpc/rpcent.h presence... no
checking for rpc/rpcent.h... no
checking sys/file.h usability... yes
checking sys/file.h presence... yes
checking for sys/file.h... yes
checking ftw.h usability... yes
checking ftw.h presence... yes
checking for ftw.h... yes
checking machine/reg.h usability... no
checking machine/reg.h presence... no
checking for machine/reg.h... no
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking sys/resource.h usability... yes
checking sys/resource.h presence... yes
checking for sys/resource.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking grp.h usability... yes
checking grp.h presence... yes
checking for grp.h... yes
checking rpc/pmap_clnt.h usability... yes
checking rpc/pmap_clnt.h presence... yes
checking for rpc/pmap_clnt.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/signal.h usability... yes
checking sys/signal.h presence... yes
checking for sys/signal.h... yes
checking crypt.h usability... yes
checking crypt.h presence... yes
checking for crypt.h... yes
checking for stdint.h... (cached) yes
checking stdbool.h usability... yes
checking stdbool.h presence... yes
checking for stdbool.h... yes
checking sys/filio.h usability... no
checking sys/filio.h presence... no
checking for sys/filio.h... no
checking DNSServiceDiscovery/DNSServiceDiscovery.h usability... no
checking DNSServiceDiscovery/DNSServiceDiscovery.h presence... no
checking for DNSServiceDiscovery/DNSServiceDiscovery.h... no
checking for uint16_t... no
checking for uint32_t... no
checking for uint64_t... no
checking for uid_t... no
checking for gid_t... no
checking for socklen_t... no
checking for rlim_t... no
checking for struct addrinfo... no
checking for struct in6_addr... no
checking for struct sockaddr_in6... no
checking for struct sockaddr_storage... no
checking for main in -lcrypt... yes
checking whether to compile in loadavg... no
checking for crypt in -lc... yes
checking for log10 in -lm... yes
checking whether to default to ipv6... ignored
checking whether to use libwrap... yes
checking for request_init in -lwrap... yes
checking for yp_get_default_domain in -lnsl... no
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for getpagesize... yes
checking for working mmap... no
checking for isatty... yes
checking for memcpy... yes
checking for waitpid... yes
checking for sigvec... no
checking for setsid... yes
checking for strftime... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libs/src/misc/Makefile
config.status: creating libs/src/pset/Makefile
config.status: creating libs/src/sio/Makefile
config.status: creating libs/src/str/Makefile
config.status: creating libs/src/xlog/Makefile
config.status: creating libs/src/portable/Makefile
config.status: creating xinetd/Makefile
config.status: creating config.h


make


cd libs/src/portable ; make CC='gcc' CFLAGS='-g -O2 -I../../include' install
make[1]: Entering directory `/opt/source/xinetd-2.3.14/libs/src/portable'
gcc -g -O2 -I../../include -c -o fake-getnameinfo.o fake-getnameinfo.c
In file included from fake-getnameinfo.c:13:
/opt/include/sys/types.h:66: error: two or more data types in declaration specifiers
/opt/include/sys/types.h:66: error: two or more data types in declaration specifiers
/opt/include/sys/types.h:81: error: two or more data types in declaration specifiers
/opt/include/sys/types.h:81: error: two or more data types in declaration specifiers
In file included from /opt/include/netinet/in.h:23,
from fake-getnameinfo.c:14:
/opt/include/stdint.h:52: error: duplicate 'unsigned'
/opt/include/stdint.h:52: error: duplicate 'short'
/opt/include/stdint.h:54: error: duplicate 'unsigned'
/opt/include/stdint.h:54: error: two or more data types in declaration specifiers
/opt/include/stdint.h:61: error: duplicate 'unsigned'
/opt/include/stdint.h:61: error: 'long long long' is too long for GCC
/opt/include/stdint.h:61: error: 'long long long' is too long for GCC
In file included from /opt/include/netinet/in.h:212,
from fake-getnameinfo.c:14:
/opt/include/bits/socket.h:36: error: two or more data types in declaration specifiers
/opt/include/bits/socket.h:36: error: two or more data types in declaration specifiers
In file included from fake-getnameinfo.c:23:
fake-getaddrinfo.h:30: error: redefinition of 'struct addrinfo'
make[1]: *** [fake-getnameinfo.o] Error 1
make[1]: Leaving directory `/opt/source/xinetd-2.3.14/libs/src/portable'
make: *** [libportable] Error 2


Вот такая ошибка. Такое ощущение, что не те библиотечки он подключает. Ради интереса в файле getnameinfo.o исправил #include sys/types.h на /opt/include/asm-mips - ошибка ушла, но далее продвинуться не смог так как не до конца понимаю по какому принципу какие хидер файлы используется компилятор (по крайне мере пробовал через --host явно указывать платформу - тоже не помогло).

Очень прошу помощи ибо данный этап очень сильно и очень давно мешает достичь цели :)

P.S. Если у кого-нибудь уже есть бинарники xinetd с tcp-wrappers так же буду очень благодарен.

P.S.2
Из установленных пакетов стоит optware-devel со всеми зависимостями, а так же build-root и tcp_wrappers (в документации xinetd написано что для компиляции с tcp_wrappers библиотечка libwrap должна быть установлена).

al37919
15-06-2007, 23:01
error: two or more data types in declaration specifiers

error: duplicate ...

По моему опыту --- ошибки не смертельные (и типичные для нативной компиляции) --- скорее всего какой-то тип был объявлен (возможно в виде #define ...) еще в каком-то месте (скорее всего именно в исходнике приложения). Так что надо искать и править. Однако..., я тоже пытался скомпилить приложение с поддержкой tcp_wrappers в результате без успеха...

Я не знаю, почему _все_ приложения в optware/oleg скомпилены без поддержки этого сервиса. Возможно есть на то фундаментальные причины?

Semkaa
16-06-2007, 16:23
al37919 Спасибо!
Я поправил все ошибки (+ почитал доки по c/c++).

И УРА!!!
07/6/16@19:13:01: NOTICE: 7023 {main} xinetd Version 2.3.14 started with libwrap options compiled in.

Вот оно счастье то.
Пошёл тестить как работает hosts.allow.

И ещё вопросик, скажите пожалуйста что за файлик s10xinetd?
После компиляции я удалил пакет xinetd (ipkg remove) и сделал make install.
Соответственно файлик s10xinetd тоже пропал.

alexhemp
16-06-2007, 17:25
Очевидно скрипт для запуска демона.

Странно, что вы зная что такое tcp_wrappers не поняли по названию файла что это :-)

al37919
16-06-2007, 17:26
Поздравляю.
/opt/etc/init.d/S10xinetd --- скрипт, который запускает этот самый xinetd автоматически при загрузке роутера. Так что его неплохо бы обратно положить.

Semkaa
16-06-2007, 17:35
alexhemp
я только недавно стал более детально линкус изучать и только под целевую задачу, так что это нормально...

al37919
я так понял что можно просто в post-boot прописать запуск этого демона, и скрипт не нужен...

al37919
16-06-2007, 17:51
да, можно

Semkaa
16-06-2007, 19:33
опять столкнулся с проблемой, даже не смотря на то, что и vsftpd и xinetd скомпилированны с опциями для поддержки tcp_wrappers всё равно такое ощущение, что они в упор не видят файла hosts.allow :(

Так же никак не могу найти в документации каким образом настройки hosts_allow самого xinetd коррелируются с настройками файла hosts.allow.

Гуру подскажите подалуйста, эти tcp_wrappers пишут куда-нить логи? Просто я даже понятия не имею видит ли xinetd библиотеки libwrap, такое ощущение что нет.

И ещё бОльшей загадкой для меня является ход действий.
В xinetd есть опция server_args - туда надо прописывать путь к конфиг файлу, с которым будет запускаться vsftpd. Но и в hosts.allow есть строчки:


vsftpd: 192.168.1.39: setenv VSFTPD_LOAD_CONF /opt/etc/vsftpd.conf : nice 15
vsftpd: 192.168.1.40: setenv VSFTPD_LOAD_CONF /opt/etc/vsftpd_test.conf : nice 15

То есть демон ftp будет запускаться с разной конфигурацией в зависимости от ip адреса (по крайней мере должен).
Поясните пожалуйста с какой конфигурацией всё таки должен запуститься демон? Приоритетнее server_args или всё таки то что прописано в hosts.allow.

Semkaa
17-06-2007, 18:22
Вобщем наконец-то мне удалось реализовать давнишнюю мечту.
Насколько я помню на форуме этот вопрос обсуждался, но решения не было. Приведу подробно.

Условия:
Роутер Premium.
Прошивка от Олега последняя.
Подключённый диск с смотрированными разделами.
Интернет через vpn.
Очень много пиринговых ресурсов (чтобы были доступны прописываются маршруты).


Задача.
Установить FTP сервер с так называемой per-IP конфигурацией.
То есть чтобы из пиринга и внутренней подсети был анонимный доступ, а из интернета доступ только по логину и паролю.

Решение.
В силу того что с линуксом познакомился только благодаря этой белой коробочки покидала меня судьба по документациям нехило. Дошло аж дело до сборки xinetd с tcp_wrappers. Но как оказалось всё намнооого проще :)

В качестве ftp сервера я выбрал vsftpd (не знаю почему).
Чтобы реализовать заданную задачу необходимо, чтобы данный демон работал через супер демон xinetd - то есть по сути устанавиливаем и его.

Смысл в следующем.
Доступ из пиринга и локалки будет по стандартному 21 порту, соответственно xinetd мониторит 21 порт и если кто-нить ломится по нему то запускает vsftpd со специальным конфигурационным файлом для анонимного доступа.
Доступ из интернета идёт по 2120 порту, xinetd делает всё тоже самое, но только используется другой конфигуационный файлик для запуска svftpd.

Теперь по конфигурациям.
xinetd
/opt/etc/xinetd.conf - тут представлена только дефолтная конфигурация:


defaults
{
#only_from = localhost 192.168.1.0/24
instances = 20
log_type = FILE /tmp/harddisk/allinone/logs/xinetd.log
log_on_success = PID HOST EXIT DURATION
log_on_failure = HOST
cps = 25 30
}
includedir /opt/etc/xinetd.d #в данную папку xinetd будет смотреть на предмет конфигураций сервисов

Далее в дирректории /opt/etc/xinetd.d лежит 2 файла, которые описывают конфигуарацию запуска сервиса ftp в зависимости от интерфейса, по которому происходит коннект:
/opt/etc/xinetd.d/ftp-from-local


service ftp
{
id = vsftpd_local #идентификатор данного сервиса - отображается в логах и если xinetd запущен в режиме дебагинга xinetd -d
disable = no
socket_type = stream
user = root #замените на своего пользователя
server = /opt/sbin/vsftpd
server_args = /opt/etc/vsftpd_from_local.conf #конфиг файл для запуска vsftpd с настройками для пользователей из локальной сети и пиринга (анонимный ftp сервер)
wait = no
nice = 15
instances = 5
interface = 172.26.14.47 #ip адрес интерфеса с которого идёт коннект
}

Далее поинтереснее, конфигуация для интернета
/opt/etc/xinetd.d/ftp-from-inet
Когда в конфигурационный файлах описывается сервис xinetd автоматом смотрит в файлик /etc/services на наличие этого сервиса в списке зарегистрированных, и автоматом берёт указанный там, соответственно если мы сделаем ещё один сервис ftp и укажем другой порт, xinetd будет ругаться. Обойдём этот момент следующим образом.


service vsftp
{
id = vsftpd_inet
type = unlisted #указывает что сервис незарегистрированный (или что-то типа этого)
protocol = tcp
port = 2120
disable = no
socket_type = stream
user = grendaizer
server = /opt/sbin/vsftpd
server_args = /opt/etc/vsftpd_from_inet.conf # конфигурация для запуска vsftpd с настройками для коннекта из интернета
wait = no
nice = 10
instances = 5
interface = 89.111.111.111 #ip адрес интерфейса, в моём случае ppp0.
}

Ну и соответственно обязательно снаружи открыть порт 21 и 2120 в post-firewall.


iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 2120 -j ACCEPT


Ну вот в принципе и всё.
Каким образом установить и настроить vsftpd на форуме описано довольно развёрнуто. Только на формуе соответственно написано как его настроить в standalone конфигурации.

Буду рад если данная информация будет кому-то полезна, так как по себе знаю, что начинать разбираться с незнакомой системой очень сложно и требует очень много сил и времени.

_oz_
16-11-2007, 17:47
Спасибо al37919 - действительно в конце концов борьба с русскими буквами закончилась переформатированием винта на 3 раздела (swap, opt, harddisk), установкой 3-й самбы, сборкой и установкой версии vsftpd с конвертирование имён. Проще, увы, никакого способа не нашлось.

Есть ещё несколько вопросов на которые пока не удалось найти ответов. :)

0) Есть ли возможность заставить Far-plugin WinSCP понимать UTF-8 имена?

1) Если вдруг понадобится подключить диск к XP напрямую - есть ли драйвер или пакет (бесплатный или нет - неважно) который позволит читать и писать на Ext3 файлы c именами в UTF-8? Или чем паковать на XP и чем распаковывать на рутере архивы, чтобы получились UTF-8 имена. 7zip<->unzip и WinRar<->unrar для меня не сработали :( может какие-то ключи не указал?

2) Не написал ли кто скрипт аналогичный кнопке Eject в web-interface? Или может быть кто-нибудь знает что написано в загадочном скрипте eject-usb.sh, запускающемся при нажатии на кнопку Eject? Или, хотя бы, где он находится, что мне его найти не удалось :(?

Update: Это - оптический обман зрения. Нет такого скрипта. Как, по-видимому, и apply.cgi - они в httpd перехватывают несколько специальных имён и вызывают другие радости жизни. В данном случае модуль rmstorage (исходники которого "забыли" приложить к GPL. Равно как и eject_usb1 и eject_usb2.) Скрипт можно не искать, вопрос - переформулируется, так как ни rmstorage ни кнопка мне /opt не демонтируют. :)

Уважаемые Волшебники! Есть ли простое готовое заклинание, способное прибивать всё, что запущено автоматически с /opt?
Неужели ни у кого ещё нет универсального Eject-script повешенного на ez-setup кнопку к примеру? ;-)


4) Есть ли к 3-й самбе web-конфигуратор и если есть - как его поставить? (У меня и со 2-й, даже поставленной самостоятельно не получилось до добраться до того, что должен быть на 901-м порту)

Заранее большое спасибо!

Marks
16-11-2007, 21:14
4) Есть ли к 3-й самбе web-конфигуратор и если есть - как его поставить? (У меня и со 2-й, даже поставленной самостоятельно не получилось до добраться до того, что должен быть на 901-м порту)

Заранее большое спасибо!Вообще-то web-конфигуратор называется SWAT=Samba Web Administration Tool. Запускается он через демон xinetd. Установка
ipkg install xinetd
Далее в файле /opt/etc/xinetd.conf добавляем строки
service swat
{
flags = REUSE
socket_type = stream
protocol = tcp
port = 901
wait = no
user = СВОЙ ЛОГИН
server = /opt/sbin/swat
log_on_failure += USERID
} Строку
only_from = localhost 192.168.ххх.ххх/24 #Меняем на IP АСУСА
Далее
http://IP АСУСА:901

_oz_
17-11-2007, 00:56
Огромное спасибо, Marks, всё заработало.

Я всё swat подкладывал в /opt/etc/xinetd.d - думал его оттуда includedir зацепит. Oн почему-то не цеплял ни так и ни этак, а я ломал голову - что же я и в каком из двух конфигов напортачил. :)

И извините за глупые слова местами - в linuxе - дуб дубом. Исключая мимолётный опыт исправления одного жесткого скриптика лет десять назад, меньше недели ночами с ним ковыряюсь :).

zheka_ppp
17-11-2007, 20:10
А у кого-нибдь samba3 (smbd, nmbd) через xinetd работают ?
Вторая запускалась без проблем, а третья в такой же конфигурации xinetd нивкакую. nmbd запускается, а smbd нету, хотя в конфиге xinetd пишется, что якобы сервис запускался и не раз.

Marks
17-11-2007, 20:42
Демон xinetd в запуске самбы участия не принимает :p
В папке /opt/etc/init.d есть файл SXXsamba

# set samba_active=1 to activate samba
samba_active=1
После установки там 0, поэтому самба не активна
А для чего сие надо?
А кстати, вот такой вопрос - для запуска самбы где .conf лежат - в /opt/etc/xinetd.d ?

zheka_ppp
17-11-2007, 22:08
Демон xinetd в запуске самбы участия не принимает :p
В папке /opt/etc/init.d есть файл SXXsamba

# set samba_active=1 to activate samba
samba_active=1
После установки там 0, поэтому самба не активна
А для чего сие надо?
А кстати, вот такой вопрос - для запуска самбы где .conf лежат - в /opt/etc/xinetd.d ?

Marks, я в курсе про S80samba, с ним у меня проблем нет, запускается и работает. Мне хотелось сделать, чтобы она запускалась именно через xinetd, как вот тут http://www.nslu2-linux.org/wiki/Optware/Samba2 описано и работало без проблем с samba2. Ресурсы, типа, экономить :)
Обычно файл конфигурации для samba2 и samba3 из репозитария: /opt/etc/samba/smb.conf
Я делаю копию под другим именем и использую параметр -s при запуске nmnd и smbd напрямую. Чтобы при очередном ipkg upgrade не получить вместо моих настроек настройки по умолчанию из новой версии.

Marks
18-11-2007, 10:45
Marks, я в курсе про S80samba, с ним у меня проблем нет, запускается и работает. Мне хотелось сделать, чтобы она запускалась именно через xinetd, как вот тут http://www.nslu2-linux.org/wiki/Optware/Samba2 описано и работало без проблем с samba2. Ресурсы, типа, экономить :)
Обычно файл конфигурации для samba2 и samba3 из репозитария: /opt/etc/samba/smb.conf
Я делаю копию под другим именем и использую параметр -s при запуске nmnd и smbd напрямую. Чтобы при очередном ipkg upgrade не получить вместо моих настроек настройки по умолчанию из новой версии.
Я не про smb.conf, а про
First file: /opt/etc/xinetd.d/netbios-ns

with following content:

service netbios-ns
{
disable = no
socket_type = dgram
protocol = udp
port = 137
user = admin
wait = yes
only_from = localhost YOUR.PRIVATE.SUB.NET/24
server = /opt/sbin/nmbd
}
Second file: /opt/etc/xinetd.d/netbios-ssn

with following content:

service netbios-ssn
{
disable = no
socket_type = stream
protocol = tcp
port = 139
user = admin
wait = no
only_from = localhost YOUR.PRIVATE.SUB.NET/24
server = /opt/sbin/smbd
}
Попробуй засунуть эти строки в xinetd.conf

_oz_
19-11-2007, 08:40
Попробуй засунуть эти строки в xinetd.conf

А глупый вопрос можно? Почему всё это цепляется xinetd, будучи прописанным непосредственно ему в conf, но не зацепляется includedir, если лежит в разных файлах в xinetd.d
Это косяк xinetd, ещё чей-то или у меня руки кривые? Если дело в руках - объясните, что я делаю не так и в чём может быть дело? Аттрибуты файлов и диров - смотрел, имена файлов не заканчиваются тильдами и не содержат точек.

Спасибо!

zheka_ppp
19-11-2007, 11:15
А глупый вопрос можно? Почему всё это цепляется xinetd, будучи прописанным непосредственно ему в conf, но не зацепляется includedir, если лежит в разных файлах в xinetd.d
Это косяк xinetd, ещё чей-то или у меня руки кривые? Если дело в руках - объясните, что я делаю не так и в чём может быть дело? Аттрибуты файлов и диров - смотрел, имена файлов не заканчиваются тильдами и не содержат точек.


_oz_, у меня все заработало через includedir
Marks, вторая самба у меня запускалась с ключиком -i, а третья так не захотела почему-то. Убрал ключик - все заработало :)

/opt/etc/xinetd.conf


defaults
{
only_from = localhost 192.168.1.0/24
instances = 60
log_type = SYSLOG authpriv info
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}

includedir /opt/etc/xinetd.d


/opt/etc/xinetd.d/swat


service swat
{
port = 901
socket_type = stream
wait = no
only_from = localhost 192.168.1.0/24
user = admin
server = /opt/sbin/swat
log_on_failure += USERID
disable = no
}


/opt/etc/xinetd.d/netbios-ns


service netbios-ns
{
disable = no
socket_type = dgram
protocol = udp
port = 137
user = admin
wait = yes
only_from = localhost 192.168.1.0/24
server = /opt/sbin/nmbd
server_args = -l /opt/var/log/samba -s /opt/etc/samba/smb-my.conf
}


/opt/etc/xinetd.d/netbios-ssn


service netbios-ssn
{
disable = no
socket_type = stream
protocol = tcp
port = 139
user = admin
wait = no
only_from = localhost 192.168.1.0/24
server = /opt/sbin/smbd
server_args = -l /opt/var/log/samba -s /opt/etc/samba/smb-my.conf
}

_oz_
19-11-2007, 12:07
_oz_, у меня все заработало через includedir

Значит есть надежда что дело в моих кривых руках... Вот только понять бы что я такого ими наделал. :( Отвёз своего пингвина (кое-как настроенного) родным в Зеленоград, сегодня привезут ещё один такой же - буду окучивать с нуля, аккуратно наблюдая за результатами.

lynx
02-03-2008, 12:58
На делюксе или 700Ge кто-нибудь настраивал?

lynx
03-03-2008, 12:25
700gE прошитый 1.7.0.8 от KFurge
Проблема в xinetd, которому нужен /etc/protocols, его там нету :(
Пробовал (безуспешно) создать symlink - operation not permitted.
Идеи закончились:(

al37919
03-03-2008, 12:47
универсальный способ такой:
1) создаем директорию на внешнем носителе
2) копируем туда содержимое /etc
3) монтируем новую директорию поверх /etc

В результате имеем /etc в rw режиме

lynx
03-03-2008, 13:00
Спасибо, работает :)

CrazyDemon
27-09-2008, 11:04
Заставлял работать vsftpd и samba3 и после этого перестали обрабатываться скрипты в /opt/etc/init.d. Если запускать вручную, то всё запускается а при загрузке само нет. Есть подозрение, что это произошло после прочтения и применения темы [How To] Install and Configure a WORKING Samba 3 (Vista included) (http://wl500g.info/showthread.php?t=10761&highlight=samba3) в которой говориться
ipkg remove xinetd

chem-vgasu
10-10-2009, 20:11
Здравствуйте,
Вот такая у меня ошибка на роутер D-Link DIR-320 с прошивкой Олега 1.9.2.7-d-r655:

[admin@PhanDIR root]$ ipkg install xinetd
Installing xinetd (2.3.14-8) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/xinetd_2.3.14-8_mipsel.ipk
Configuring xinetd
Warning: the current only_from configuration in /opt/etc/xinetd.conf is
only_from = localhost 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
change to your subnet accordingly and tighten security!
/opt/etc/init.d/S10xinetd: line 14: /opt/sbin/xinetd: not found
postinst script returned status 127
ERROR: xinetd.postinst returned 127
Successfully terminated.

А:

[admin@PhanDIR root]$ ls -l /opt/sbin/xinetd
-rwxr-xr-x 1 admin root 195092 Jul 11 2008 /opt/sbin/xinetd

У меня USB флэшку (ext3 форматированна с помощью mke2fs -j) монтировал под /opt.


[admin@PhanDIR root]$ dmesg | tail
USB Mass Storage support registered.
vlan1: Setting MAC address to 00 90 4c c0 00 00.
VLAN (vlan1): Underlying device (eth0) has same MAC, not checking promiscious mode.
vlan1: add 01:00:5e:00:00:01 mcast address to master interface
kjournald starting. Commit interval 5 seconds
EXT3 FS 2.4-0.9.19, 19 August 2002 on sd(8,1), internal journal
EXT3-fs: recovery complete.
EXT3-fs: mounted filesystem with ordered data mode.
printer.c: usblp0 Device ID string [99/max 1552]='MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;FWVER:20051028;'
printer.c: Parsing USBLPID...

За ранее спасибо за помощь.

SkyDance
11-10-2009, 19:24
Между любыми записями в syslog по 90 секунд (или больше). Такое ощущение, будто xinetd куда-то пытается ломиться по сети, чего-то ждет, не дожидается и забивает на сие действо.
Так крайне некомфортно - запуск самбы длится 10 минут :eek:

Сеть (внутренняя, LAN - 172.16.0.0, mask 255.255.255.224).

xinetd.conf содержит (из не-комментов):

defaults
{
only_from = localhost 172.16.0.0/28
instances = 60
log_type = SYSLOG authpriv info
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}

Запускаю /opt/sbin/xinetd
Первая запись в syslog (что xinetd вообще взлетел) появляется через 90 секунд. Что я делаю не так?

SkyDance
11-10-2009, 19:32
Да, сразу отмечу, если запустить его как
/opt/sbin/xinetd -d
т.е. в дебаг-режиме, то он тупит секунд 30, потом вываливает

70/1/1@04:06:30: DEBUG: 436 {handle_includedir} Reading included configuration file: /opt/etc/xinetd.d/netbios-ssn [file=/opt/etc/xinetd.conf] [line=15]

То есть тупит он на старте, еще до чтения конфигов. Куда же он ломится, гад такой?

ryzhov_al
31-01-2012, 09:21
Кто нибудь использует xinetd? Поделитесь конфигами для различных сервисов.

Ясно ведь, что 99% времени запущенные сетевые сервисы не используются, но при этом висят в памяти и отъедают ресурсы памяти\процессора. В моём случае простаивающие сервисы, запуск которых потенциально можно вынести в xinetd образовали следующий список. В порядке возрастания занимаемой private памяти:

telnetd: mapped: 1376K writeable/private: 208K shared: 0K
vsftpd: mapped: 1012K writeable/private: 208K shared: 0K
dropbear: mapped: 1208K writeable/private: 216K shared: 0K
tftpd-hpa: mapped: 1044K writeable/private: 392K shared: 0K
nmbd: mapped: 1840K writeable/private: 448K shared: 0K
smbd: mapped: 2044K writeable/private: 464K shared: 0K

lighttpd: mapped: 7016K writeable/private: 1060K shared: 4K
ushare: mapped: 33012K writeable/private: 26416K shared: 0K

При том, что сам xinetd занимает:

xinetd: mapped: 1168K writeable/private: 232K shared: 0K
Стоит ли игра свеч?

Насколько я понимаю, за сервисами из прошивки в первой части списка следит watchdog, поэтому прибивать их бесполезно? Понимаю, что их можно отключить в web-интерфейсе, но тогда к ним не будут формироваться конфиги, что делает мероприятие по переносу запуска сервисов в xinetd довольно тяжким мероприятием.

ЗЫ. Поверхностное гугление подсказывает (http://redmine.lighttpd.net/issues/1584) невозможность выноса lighttpd из памяти. А жаль.

lly
31-01-2012, 09:56
Насколько я понимаю, за сервисами из прошивки в первой части списка следит watchdog, поэтому прибивать их бесполезно?
watchdog следит только за httpd, wimax/3g, mjpg_streamer. Остальное можно выносить.
Но с точки зрения безопасности рекомендуется sshd(dropbear) оставлять standalone. Ну и как повлияет на производительность samba вынос под inetd (насколько это реально с версией 2.0.10?), тоже вопрос.

pilers
31-01-2012, 10:07
Применял xinetd для запуска samb'ы 3 версии (samba в прошивке не дружит с xinetd) и swat. Конфиги для сервисов, самого xinetd и файл запуска xinetd в прикрепленном архиве.

ryzhov_al
31-01-2012, 11:32
samba в прошивке не дружит с xinetdПочему (http://www.nslu2-linux.org/wiki/Optware/Samba2)?

Asgard
31-01-2012, 12:21
Применял xinetd для запуска samb'ы 3 версии (samba в прошивке не дружит с xinetd) и swat. Конфиги для сервисов, самого xinetd и файл запуска xinetd в прикрепленном архиве.

Не подскажете для чего в netbios-ssn используется строка:

flags = NODELAY

pilers
31-01-2012, 14:16
Почему (http://www.nslu2-linux.org/wiki/Optware/Samba2)?

У меня не запустилась, сам себе я подумал, что поддержка запуска через xinet в САМБ'е прошивки не реализована, а углубленными исследованиями не занимался.


Не подскажете для чего в netbios-ssn используется строка:
flags = NODELAY
Вот здесь (http://lantan.chat.ru/xinetd.conf.html) описание конфига xinetd, там все параметры подробно описаны. Скорее всего какие-то эксперименты я проводил, т.к. SAMBA 3 мне все время в логе писала непонятные сообщения (в профильной теме задавал безответные вопросы).
Вот что значит этот флаг:

flags
Используется любая комбинация следующих флагов:
...........
...........
NODELAY
Если служба является tcp сервисом и флаг NODELAY установлен, тогда флаг TCP_NODELAY устанавливается для сокета. Если сервис не tcp, опция не имеет эффекта.
В примерах конфига для сервиса netbios-ssn этого параметра нет.

dis8848
01-02-2012, 15:43
Проверяйте работоспособность, r345 (http://code.google.com/p/wl500g-repo/source/detail?r=345)Друзья, а не ткнёт ли кто носом - где почитать про настройку xinetd?
Поставить - поставилось нормально, ругани при установке не было, но sane с ним пока подружить не получилось.

pilers
01-02-2012, 17:07
...где почитать про настройку xinetd?

Руководство по XINETD (http://lantan.chat.ru/xinetd.html)
Руководство по XINETD.CONF (http://lantan.chat.ru/xinetd.conf.html) И там и там по-русски.
P.S. Попался пример файла запуска сервиса sane:

service sane
{
port = 6566
socket_type = stream
wait = no
user = saned
group = saned
server = /usr/sbin/saned
}

Asgard
02-02-2012, 18:39
Почему (http://www.nslu2-linux.org/wiki/Optware/Samba2)?
Ту Самбу 2 не удалось заставить корректно отображать кириллицу, хотя настройки кодировки использовал те же что и для встроенной

#Указываем кодировку под Samba 2
client code page = 866
coding system = utf8




У меня не запустилась, сам себе я подумал, что поддержка запуска через xinet в САМБ'е прошивки не реализована, а углубленными исследованиями не занимался.
Удалось запустить Самбу из прошивки с помощью xinet допилив netbios-ns и netbios-ssn

netbios-ns

service netbios-ns
{
disable = no
socket_type = dgram
protocol = udp
port = 137
user = root
wait = yes
only_from = 127.0.0.1 192.168.1.0

#Samba 2
server = /usr/sbin/nmbd
server_args = -l /opt/var/log/log -s /opt/etc/samba/smb2.conf

#Samba 3
# server = /opt/sbin/nmbd
# server_args = -l /opt/var/log -s /opt/etc/samba/smb3.conf
}

netbios-ssn

service netbios-ssn
{
disable = no
flags = NODELAY
socket_type = stream
protocol = tcp
port = 139
user = root
wait = no
only_from = 192.168.1.0

#Samba 2
server = /usr/sbin/smbd
server_args = -l /opt/var/log/smbd.log -s /opt/etc/samba/smb2.conf

#Samba 3
# server = /opt/sbin/smbd
# server_args = -l /opt/var/log -s /opt/etc/samba/smb3.conf
}

ryzhov_al
05-02-2012, 10:49
pilers, Asgard, спасибо. Удалось вынести под xinetd прошивочные сервисы telnet, ftp и samba.

0. Перечисленные сервисы оставляем включенными в web-интерфейсе для того, чтобы к ним формировались правильные конфиги.

1. Устанавливаем необходимые пакеты и формируем дефолтный конфигурационный файл:
$ opkg install xinetd
$ cat /opt/etc/xinetd.conf
defaults
{

}
includedir /opt/etc/xinetd.d
2. Формируем конфиги для каждого из сервисов в папке /opt/etc/xinetd.d:
$ cat /opt/etc/xinetd.d/ftp
service ftp
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
server_args = /etc/vsftpd.conf
}

$ cat /opt/etc/xinetd.d/netbios-ns
service netbios-ns
{
disable = no
socket_type = dgram
protocol = udp
user = root
wait = yes
server = /usr/sbin/nmbd
}

$ cat /opt/etc/xinetd.d/netbios-ssn
service netbios-ssn
{
disable = no
flags = NODELAY
socket_type = stream
protocol = tcp
user = root
wait = no
server = /usr/sbin/smbd
}

$ cat /opt/etc/xinetd.d/telnet
service telnet
{
disable = no
socket_type = stream
user = root
wait = no
server = /usr/sbin/telnetd
server_args = -i
}3. Не забываем убить встроенные сервисы при старте xinetd. У меня используются скрипты rc.unslung. Обратите внимание на правку конфига vsftpd:
$ cat /opt/etc/init.d/S99xinetd
#!/bin/sh
/usr/bin/killall smbd
/usr/bin/killall nmbd
/usr/bin/killall telnetd
/usr/bin/killall vsftpd
/bin/sed -i 's/^listen=yes//g' /etc/vsftpd.conf

ENABLED=yes
PROCS=xinetd
ARGS="-pidfile /opt/var/run/xinetd.pid -f /opt/etc/xinetd.conf -filelog /opt/var/log/xinetd.log"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func


Буду время от времени дополнять пост конфигами для запуска внешних сервисов.
tftp-сервер:
$ cat /opt/etc/xinetd.d/tftpservice tftp
{
disable = no
socket_type = dgram
wait = yes
user = root
server = /opt/sbin/tftpd-hpa
server_args = -s /opt/share/pxe-boot
}

Asgard
06-02-2012, 14:27
3. Не забываем убить встроенные сервисы при старте xinetd. У меня используются скрипты rc.unslung. Обратите внимание на правку конфига vsftpd:
Думаю строчку прошивочного конфига с переводом vsftpd в бэкграунд также можно удалить.

З.Ы. Хотя я решил остановиться на vsftpd из репозитория - по весу они с прошивочным вроде не сильно разнятся, а тот все же обновляется.

ryzhov_al
06-02-2012, 14:33
Думаю строчку прошивочного конфига с переводом vsftpd в бэкграунд также можно удалить.Да. Я забыл сказать, что привёл минимально необходимые для работы конфиги и правки.
У меня, скажем, различными опциями заполнена секция defaults в /opt/etc/xinetd.conf.

Кстати, dropbear в прошивке, насколько я понял, собран без необходимой фичи (-i) и не может запускаться из-под xinetd. Ну и ладно, согласимся (http://www.wl500g.info/showpost.php?p=244434&postcount=37) c lly.