Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Next Previous Contents

5. Сетевое администрирование

5.1 Почему telnet не пускает пользователя root? Как зайти удаленно с правами root?

telnet (а точнее, login) не пускает root потому, что root может заходить в систему только со специальных защищенных терминалов, перечисленных в /etc/securetty. Обычно там перечислены только виртуальные консоли tty1-ttyN. Другие места считаются небезопасными, потому что пароль, вводимый оттуда, может передаваться по сети открытым текстом (что и происходит в случае использования telnet), а значит его может узнать злоумышленник, "прослушивая" сеть и анализируя "чужие" пакеты.

Ответов на второй вопрос несколько:
  • быстрый и неправильный способ - удалить файл /etc/securetty или прописать в нем псевдотерминалы /dev/ttyP*. Это опасно потому, что дает злоумышленнику возможность не только узнать пароль, но и воспользоваться им для удаленного захода на машину.
  • менее быстрый, но все равно неправильный способ - заходить на машину обычным пользователем, а затем использовать команду su или sudo. И в этом случае оба пароля передаются открытым текстом, со всеми возможными последствиями.
  • самый правильный способ - полностью отключить сервисы telnet, не-анонимный ftp, rsh, rlogin и заменить их на ssh, шифрующий все, что передается через сеть и поддерживающий аутенификацию не только через пароль, но и с использованием криптографии с открытым ключом. Клиент и сервер ssh для Unix можно взять на http://www.openssh.com, про клиенты для Windows написано в разделе "Прочее".

5.2 Hадоело запускать ppp (slip) руками. Хочу чтобы сам звонил, когда надо.

Медленно и печально идем на http://diald.sourceforge.net, сливаем diald, разворачиваем, читаем README, совершаем _минимальные_ телодвижения на предмет конфигурации и инсталляции, и получаем эмулятор выделенной линии. Как только требуется выйти во внешний мир, diald дозванивается до провайдера, устанавливает роутинг и можно работать. Внимание: учтите, что с ядрами 2.2.x нормально работает diald-1.99 и выше. 0.16, лежащий везде, в том числе и в некоторых дистрибутивах, предназначен только для 2.0. (почему-то эта информация пропущена в Changes) Да, еще... Рекомендации лучших линуксоводов: в файле /etc/resolv.conf надо размножить строчки nameserver xxx.xxx.xxx.xxx раза по три, чтобы он по таймауту не отваливался раньше, чем diald дозвонится. Полезно также удалить default route на eth0.

А еще можно так: в diald.rc пишем
ip-up "cp /etc/resolv.conf.connected /etc/resolv.conf"
ip-down "cp /etc/resolv.conf.local /etc/resolv.conf",
где в resolv.conf.connected написано:
search yourdomain
nameserver xxx.xxx.xxx.xxx (я предпочитаю 127.0.0.1)
а в resolv.conf.local написано:
domain yourdomain
Хорошо настроить и использовать локальный DNS-cервер в режиме caching-only. Его можно поднимать и опускать через ip-up и ip-down как сказано чуть выше, или через /etc/ppp/ip-up.local и ip-down.local. Как его настроить: раньше вариант был только один - почитать книжку и настроить таки bind. Теперь есть более простой вариант: к редхату прилагаются готовые настройки для cache-only bind'а (в пакете caching-nameserver) или можно установить демон nscd, который умеет только кешировать DNS-запросы (а также запросы к базе пользователей и групп).

А еще можно сходить посмотреть на http://alexm.here.ru

5.3 Есть ли такая пpогpама для Linux, чтобы в сети Netware обойтись без tcpip - чтобы был только ipx?

Есть mars -- netware server для линукса (эмуляция нетваpевского сеpвеpа) ipx*, ncp*, nw* (из дистpибутива mars) - клиент.

Посмотрите Caldera Open Linux ( http://www.caldera.com) - компания Caldera владеет исходными текстами Novell и переносит их на Linux. Netware for Linux - http://www.calderasystems.com/support/docs/netware/.

Не забудьте про IPX-HOWTO: http://linuxdoc.org/HOWTO/IPX-HOWTO.html

5.4 Пpинтеpы расшаpены чеpез самбу, но после отпечатывания стpаницы (или задания) пpобpасывается N листов впустую. HP пpокpучивает один лист, а Epson два. Как лечить?

PRINTCAP / Begin
 my_favourite_printer:\
 lp=/dev/lp1:\
 sd=/var/spool/lpd/my_favourite_printer:\
 sh:lf=/dev/tty10:ff=:
PRINTCAP / End

5.5 Как подружить Самбу и 1С ?

(Zahar Kiselev, 2:5030/382)

Вот что достаточно сделать чтобы работало:

Взять с ftp.kernel.org ядро, которое умеет "на ходу" менять лимиты на количество открытых файлов. Hасколько я знаю, начиная с 2.2.10 это работает, как делается - сказано в том числе и в этом faq.

1С отличается совершенно неприличными аппетитами по части количества открываемых файлов - надо ставить из расчета где-то 800 на каждого виндового пользователя, потому что есть особо "продвинутые", которые две-три копии 1С у себя на компе запускают.

Взять Самбу например 2.0.5a - это последняя, которая работала у меня. Важно, чтобы она понимала параметр в smb.conf "ole locking compatibility"(надеюсь теперь не наврал в написании), установить его в "no". Внимание! До меня доходили сведения, что в какой-то даже более новой чем 2.0.5а Самбе этого параметра нет.

Остальное настроить в соответствии с любой из многочисленных рекомендаций по установке Самбы, главное - не запрещать ей работать с блокировками(я знаю одного человека, который до этого додумался). Запускать надо не через inetd, а как отдельный демон, вернее у Самбы их два - smbd и nmbd.

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

Есть еще одна мелкая особенность - Самба при работе хочет создать файлики browse.dat, wins.dat - так вот надо поставить права так, чтобы она могла их читать в том числе и тогда, когда работает от имени виндового пользователя - иначе могут быть большие таймауты при выполнении команды net use в виндах, и может не работать столь любимое многими чайниками "сетевое окружение".

Если после очередного падения 1С винды говорят что база заблокирована - то можно подкрутить в конфиге Самбы параметр, отвечающий за принудительное снятие "зависших" блокировок(см man). Поставить например три минуты, меньше не стоит, тогда через три минуты в базу можно будет войти. Рекомендуется также поставить keepalive-таймаут, чтобы соединения не висели бесконечно. Желательно при помощи файрволла закрыть для доступа "снаружи" те два порта, через которые Самба работает. Причем не только на Линукс, а на всю сеть.

А теперь - совет тем, кто хочет избавиться от проблем, вызванных наличием 1С у него в сети. Hадо запускать 1С на NT-сервере, причем желательно sql-версию, она менее критична к сбоям (не повреждаются данные), а доступ осуществлять с линуксовых машин через Citrix Meta Frame. При этом ситуация меняется "до наоборот" - вместо одного линукса и кучи виндов вокруг - получаются _одни_ винды(и те NT), а вокруг куча Линукс-терминалов, причем можно их бездисковыми сделать, загружая с линукс-сервера.

Если не хотите линуксы (а напрасно) - citrix-клиент есть и под винды. Для сомневающихся - работа 1С в терминальном режиме проверена в боевой обстановке. Результат положительный. Доступ я пробовал осуществлять и с Линукса и с win95.

5.6 PPP сервер/клиент с поддержкой callback, соединение с NT/2000 сервером и прочие проблемы при настройке ppp

Про клиент pppd + callback можно прочесть файл README.cbcp в дистрибутиве pppd.

Про все остальное - читайте http://www.nitek.ru/~igor/pppd/ или http://nitek.east.ru/~igor/pppd/.

5.7 Имеется сеть из PC + Linux, телефонная линия на Linux-e. Хотелось бы: с любого рабочего места отправить факс. Какой софт под Linux для этого существует в природе ?

hylafax - есть все, что в подобных случаях может понадобиться и сказано, где взять "клиентов" под DOS, Windows, etc. HО! принимать по одной линии (тел) и факсы и фидо не получится. :( Можно использовать mgetty, но факс-сервер придется делать самому, как делать можно подглядеть в hylafax. :)

5.8 Как настроить PPTP на Linux ?

http://www.moretonbay.com/vpn/pptp.html

5.9 Как настроить SSL на smtp, pop3?

Нужно найти (например, на freshmeat) программу stunnel. Она прописывается в конфиге inetd примерно так:
spop3 stream tcp nowait root /usr/sbin/stunnel /usr/sbin/popa3d
ssmtp stream tcp nowait root /usr/sbin/stunnel /usr/sbin/sendmail
Victor Wagner предупреждает о подводном камне:

Желательно в качестве argv[0] запускаемому демону указать что-то отличное от его имени файла. А то, если программа собрана с поддержкой tcpwrappers и используется hosts.allow/hosts.deny для разрешения доступа без ssl только из локалки, то при совпадении argv[0] не-ssl-ного и ssl-ного демона, и с SSL будут не пускать откуда нельзя.

5.10 Имеется сетка из машин под NT, Win95, и DOS, в ней же есть Linux с диалапным PPP к провайдеру. Как сделать так, чтобы все пользователи из локалки могли ходить по интернету?

Нужно настроить маскарадинг. Предположим, что внутренняя локалка имеет адреса 192.168.0.0 (как и положено по RFC-1918). Тогда :
#!/bin/sh

/sbin/insmod ip_masq_autofw
/sbin/insmod ip_masq_user
/sbin/insmod ip_masq_cuseeme
/sbin/insmod ip_masq_ftp
/sbin/insmod ip_masq_irc
/sbin/insmod ip_masq_mfw
/sbin/insmod ip_masq_portfw
/sbin/insmod ip_masq_quake
/sbin/insmod ip_masq_raudio
/sbin/insmod ip_masq_vdolive

/sbin/ipchains -F

/sbin/ipchains -P forward DENY

/sbin/ipchains -A forward -j MASQ -s 192.168.0.0/16 -d 0.0.0.0/0
Если Linux имеет адрес 192.168.0.1, то этот ip должен быть определен на хостах внутренней сети как default gateway.

Также полезно прочитать HOWTOs:

Firewall http://linuxdoc.org/HOWTO/Firewall-HOWTO.html

IPCHAINS http://linuxdoc.org/HOWTO/IPCHAINS-HOWTO.html

IP-Masquerade http://linuxdoc.org/HOWTO/IP-Masquerade-HOWTO.html

Русская дока есть на http://www.fima.net/masquerade.html

В 2.0 ядрах вместо ipchains используется ipfwadm, в 2.4 - netfilter, про который также есть HOWTO на http://netfilter.kernlenotes.org

Если ничего не работает - проверьте, что находится в /proc/sys/net/ipv4/ip_forward :
$ echo "1" > /proc/sys/net/ipv4/ip_forward
(в Red Hat 6.2 и выше - не забудьте поправить /etc/sysctl.conf)

Утилиты для графического управления firewall-ом : fBuilder http://www.innertek.com/ Mason http://users.dhp.com/~whisper/mason/

5.11 Как настроить socks5 ?

Cофт лежит на http://www.socks.nec.com

Предположим, что у вас есть машина с двумя интерфейсами (PPP/Ethernet или Ethernet/Ethernet). На внутреннем Ethernet-e адрес : 192.168.0.1. Самый простой вариант - аутентификация клиентов локалки только по адресу.

/etc/socks5.conf
permit - - 192.168.0. - - -
set SOCKS5_BINDINTFC 192.168.0.1:1080
set SOCKS5_NOIDENT
ICQ 99/2000 работает. Подробнее 'man socks5', 'man socks5.conf', http://www.socks.nec.com. [там есть FAQ]

5.12 Как вырезать баннеры из веб-страниц?

Простейший способ - занесение соответствующих хостов - поставщиков рекламы в /etc/hosts с фиктивными ip адресами.

Более сложный, но и более гибкий - при помощи прокси-сервера Squid. Чаще всего для фильтрации используют ACL (Access Control List) типа "url_regex" (squid.conf, раздел ACCESS CONTROLS) типа:
acl Reclama_Banners url_regex ^http://www1\.reklama\.ru/cgi-bin/banner/*
http_access deny Reclama_Banners
Или из файла :
acl Banners url_regex "/etc/squid/banners"
http_access deny Banners
В /etc/squid/banners вписываешь своих врагов (в виде регулярных выражений), например:
^http://banners\.rambler\.ru/advert/.*\.gif
^http://kulichki.rambler.ru/reklama/banners/.*\.gif
^http://www.*\.yandex\.ru/cgi-bin/banner/*
^http://www1\.reklama\.ru/cgi-bin/banner/*
^http://www\.reklama\.ru/cgi-bin/banner/*
^http://www\.reklama\.ru/cgi-bin/href/*
^http://www\.100mb\.net/images/ban/banner.*\.gif
^http://www\.bizlink\.ru/cgi-bin/irads\.cgi.*
^http://www\.linkexchange\.ru/cgi-bin/rle\.cgi
^http://www\.linkexchange\.ru/users/.*/goto\.map
^http://www\.netcq\.com/banners/banner\.gif
^http://1000\.stars\.ru/cgi-bin/1000\.cgi
Еще лучше с задачей фильтрации справляется специальная программа-фильтр squidguard http://www.squidguard.org, ставится в дополнение к squid.

Более полный список баннеродержателей можно получить на http://pail.pu.ru/

Можно сделать Transparent Proxy http://www.lexa.ru/lexa/transparent-proxy.html

Transparent Proxy MiniHOWTO: http://www.tldp.org/HOWTO/mini/TransparentProxy.html

Можно поставить редиректор squirm http://www.senet.com.au/squirm/, его задача - подменять одни URLs другими.

5.13 Как сделать авторизацию пользователей Squid через учетные записи Windows?

http://www.artmagic.ru/labs/sqlandwin.shtml


Next Previous Contents