Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Организация небольшой сети на linux Fedora Core3

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4

Открыть новую тему     Написать ответ в эту тему

Dimez



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1) Это всё конечно хорошо, но статей по сборке файрвола, настройке сквида - море(на том же opennet.ru)
 
2) Ставить многочисленные сервисы на файрволе - нехорошо, ибо, если поломают, порушат всю работу сети.

Всего записей: 351 | Зарегистр. 06-07-2003 | Отправлено: 18:22 16-12-2004
Dr_Spectre



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
1) Это всё конечно хорошо, но статей по сборке файрвола, настройке сквида - море(на том же opennet.ru)  

 
ИМХО автор преследует более глобальную цель которую и высказал в теме топика

Цитата:
Организация небольшой сети на linux Fedore Core3  

 

Цитата:
 2) Ставить многочисленные сервисы на файрволе - нехорошо, ибо, если поломают, порушат всю работу сети.

 
во первых профи-хакеры не смотрят обычно на "маленькие" серверы поэтому максимум какойнибудь китаец просканит 22 порт или ftp брутфорсом
во-вторых как пел буйнов "мои финансы поют романсы" поэтому сервер в конторе обычно один
в-третьих правильно построенная система защиты не зависит от количества сервисов на сервере (для всех на сервере открыты только днс и web остальное только для определенных и поэтому сервисов и не так уж много через которые могут сломать)

----------
Со всеми регардами - Alexei Dmitriev aka Dr.Spectre
Чтобы добиться успеха в этом мире, одной глупости недостаточно, к ней нужны еще хорошие манеры.
(c) Вольтер

Всего записей: 1554 | Зарегистр. 15-12-2001 | Отправлено: 21:43 16-12-2004 | Исправлено: Dr_Spectre, 21:48 16-12-2004
Borgia



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Организация Небольшой сети на  linux Fedore Core3  
Часть пятая конфигурирование Файрвола  (IPTABLES)
 
 
 
 
 
 Теперь как сказал  Dr_Spectre    ,, надо указать что трафик с помощью файрвола завернуть на squid иначе прозрачность работать не будет ,,
Вообщем мы подошли к теме файрвола . Тема имхо очень обширная и серьезная -требует серьезных знаний  я врядли смогу осветить ее  достаточно глубоко и профессионально . В контесте жэ нашей задачи  
,, Организация небольшой сети на linux Fedore Core3 ,,  и всвязи с тем что вся эта статья расчитана как раз  не на  профи (включая и меня). Я решил пока ограничится  теми возможностями которые предостовляет  визард ,, setup ,,  Наберите эту команду в консоле и в окне визарда выберете опцию FIREWALL CONFIGURATION  .  Дальше   отметьте опцию   ,,enable,,  и выбираите  ,,Customize,,  
Здесь я выбрал так -  
Trusted devices -   отметил eth1 eth2 ( то есть  я доверяю всему трафику с нашх подсетей)
Allow incoming -  отметил  SSH , WWW, SMPT(mail)  , FTP  ( SSH можно не отмечать если вы не будете подключаться  по протоколу SSH к своему серверу из вне.  например  для внесения каких то изменений на сервере из дома. Также  можно не отмечать  WWW, SMPT(mail)  , FTP если вы -  не собираетесь давать доступ на ваши WWW, FTP сервера из вне , а почтовый сервер сервер будете организовывать только для локалки)
Other ports - добавил imap:tcp  , https:tcp ( вполне возможно что эти параметры не окончательны)
 
Имхо  вполне нормально для безопастности нашей сети . То что воспользовались визардом а не вручную вводили правила для IPTABLES  это не говорит что от этого наша сеть стала более дырявее.
Просто визард не предостовляет той гибкости и тех возможностей которые можно сделать вручную.
(Если кто то хочет дополнить как вручную ввести эти правила для нашей сети пишите. Кстати меня очень заинтересовал продукт FIREHOLL , образно говоря эта надстроика над IPTABLES, которая позволяет создавать рули более понятным или можно сказать обьектно ориентированным языком . Может кто знаком или хочет написать об этом для нашей сети - очень буду рад)
 
И так возвращаемся к нашим задачам . Нам нужно добавить несколько правил в наш файрвол .
что все запросы из наших подсетей в интернет  подхватывал  файрвол и перенаправлял на прокси .
Для начала несколько команд которые нам понадобятся для работы с файрвол  (IPTABLES )
Запустить сервис , остановить, перезапустить.
 
service iptables start
service iptables stop
 service iptables restart
 
Проверить состояние на данный момент запущен или  нет  
service iptables status
И так исходим из того что сервис у нас запущен и отконфигурирован как писалось выше. В консоле из под рута вводим правило для подсети  192.168.20.0
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 \-j REDIRECT --to-ports 3128
правило для подсети  192.168.30.0
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 \-j REDIRECT --to-ports 3128
и только рокси серверу разрешаем выход в интернет на 80 порт
 iptables -A OUTPUT -j ACCEPT -m state --state NEW -o eth0 \-p tcp --dport 80
 
Теперь проверяем с клиентов в подсетях как это работает, самое быстрое  зайти в интернет через браузер и скачать что нибудь через wget.  
И если все работает то самое время сохранить те изменения которые мы ввели в IPTABLES  
service iptables save  
На этом в теме о файрволе пока все пишите дополняите и как я уже сказал выше если кто опишет создание правил в файрволе через FIREHOLL  для нашей сети ( или просто ) буду очень признателен.
 
 
Добавлено
Dimez
 
я понимаю что статей море,  но цель статьи деиствительно немного другая , цель которую я преследую это дать возможность новичку в линуксе или просто не опытному пользователю , возможность взять конкретный дистрибутив и построить небольшую сеть с обычными распространнеными сервисами . показать что это не так уж сложно и для этого не надо быть гуру. Проити весь путь построения сети на конкретном дистрибутиве. Отдельных статей по отдельным темам деиствительно много но в этом и есть одна из проблем в линуксе что команда в федоре и команда в сусе может отличаться  а также расположение конкретных фаилов  или папок , и если для гуру это не проблема то для неискушенного пользователя это да проблема .
Ну и если немножко пофлеймить то  
показать что есть альтернатива  виндовс , конечно со своими + - . что для организации небольшой сети не обязательно покупать или устанавливать win server- 2003, exchange, ISA или десяток других более дешевых прог (зачастую поставить и настроить которые не менее сложнее чем тоже самое в линуксе а иногда и более муторнее)  бесплатность здесь тоже играет роль  - имхо если это не очень актуально для росии то есть страны где это актуально (или просто жизненые принципы) Да и не всегда люди имеют предстовление вообще что есть альтернатива. Плюс я считаю что есть вещи для которых линукс подходит имхо лучше чем то же решение на видовс.  
Ну и как я уже сказал взять конкретный дистрибутив и по этой статье построить сеть без лишних поисков и заморочек,( а дальше если им это подойдет они уже сами потихоньку смогут углубляться и настраивать )  
Жалко конечно что не так много людей читают и интересуются линукс у нас на форуме   мне очень конечно хотелось бы, что бы  люди  люди больше задавали вопросы  то с чем они столкнулись или дополняли статью своими мнениями  так статья была  бы более расширенной и углубленной.   В конце я собираюсь все написаное и дополненое здесь полать Lynx  и буду  просить администрацию  поместить это как доку  на руборде.
Присоединяитесь Dimez
 
Ну и конечно огромная благодарность всем тем кто помогает и находит время для поправок и моих вопросов.
с уваж . Borgia

Всего записей: 545 | Зарегистр. 25-08-2001 | Отправлено: 13:49 17-12-2004 | Исправлено: Borgia, 15:29 17-12-2004
Borgia



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Core3  
Часть седьмая конфигурирование FTP server  (vsftpd)
 
 
Ну вот мы наконец добрались до FTP . Вобщем здесь нужно определяться , что нужно для нашей сети  
всем сделать анонимный доступ  
всем вход через username, password
часть юзеров  username, password, часть юзеров анонимный доступ
 
 
Вот и задумался над одним вариантом , а как например сделать так  
аннонимный доступ открыть только внутри чтоб снаружи нельзя было зайти . Снаружи только через username ,password. Может есть у кого идеи как организовать это в VSFTPD  ?  
 
 

Всего записей: 545 | Зарегистр. 25-08-2001 | Отправлено: 22:47 19-12-2004
Dr_Spectre



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 Вот и задумался над одним вариантом , а как например сделать так
аннонимный доступ открыть только внутри чтоб снаружи нельзя было зайти . Снаружи только через username ,password. Может есть у кого идеи как организовать это в VSFTPD ?
 

 
повесить два разных сервера с разными конфигами на разные ip
1 директива listen_address в конфигах  
2 копируем /etc/rc.d/init.d/vsftpd в  /etc/rc.d/init.d/vsftpd_local например
3 правим в файле /etc/rc.d/init.d/vsftpd_local пут к конфигу
4 chkconfig vsftpd_local on
5 service vsftpd_local start
 
(грубовато конечно сам не пробовал но в теории вроде правильно)

----------
Со всеми регардами - Alexei Dmitriev aka Dr.Spectre
Чтобы добиться успеха в этом мире, одной глупости недостаточно, к ней нужны еще хорошие манеры.
(c) Вольтер

Всего записей: 1554 | Зарегистр. 15-12-2001 | Отправлено: 10:35 20-12-2004 | Исправлено: Dr_Spectre, 10:39 20-12-2004
Borgia



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dr_Spectre
 
хм. интересное решение спасибо. будем пробовать. кстати я ни как не могу вьехать  
в чем разница  
/etc/rc.d/init.d  и  
/etc/init.d    
и там и там теже скрипты

Всего записей: 545 | Зарегистр. 25-08-2001 | Отправлено: 13:40 20-12-2004
Dr_Spectre



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 кстати я ни как не могу вьехать  
в чем разница  
/etc/rc.d/init.d  и  
/etc/init.d    
и там и там теже скрипты

 
/etc/init.d это симлинк на /etc/rc.d/init.d

----------
Со всеми регардами - Alexei Dmitriev aka Dr.Spectre
Чтобы добиться успеха в этом мире, одной глупости недостаточно, к ней нужны еще хорошие манеры.
(c) Вольтер

Всего записей: 1554 | Зарегистр. 15-12-2001 | Отправлено: 14:56 20-12-2004
Borgia



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dr_Spectre
 
спасибо. а смысл делать симлинк. или это просто типа костыля. тогда для чего.
извини заранее за глупый вопрос

Всего записей: 545 | Зарегистр. 25-08-2001 | Отправлено: 17:01 20-12-2004
Dr_Spectre



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 спасибо. а смысл делать симлинк. или это просто типа костыля. тогда для чего.
извини заранее за глупый вопрос

 
к сожалению не знаю для какого функционала это сделано никогда не задавался таким вопросом, но подозреваю что для совместимости, возможно версий sysv (может раньше было все в /etc/init.d а сейчас поменялось)
сейчас посмотрел в altlinux почти все скрипты из /etc/rc.d/init.d имеют в содержании путь /etc/init.d

----------
Со всеми регардами - Alexei Dmitriev aka Dr.Spectre
Чтобы добиться успеха в этом мире, одной глупости недостаточно, к ней нужны еще хорошие манеры.
(c) Вольтер

Всего записей: 1554 | Зарегистр. 15-12-2001 | Отправлено: 11:22 21-12-2004
Borgia



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Организация Небольшой сети на  linux Fedore Core3  
Часть седьмая конфигурирование FTP server  (vsftpd)
 
 
Ну вот мы наконец добрались до FTP . Вобщем здесь нужно определяться , что нужно для нашей сети  
всем сделать анонимный доступ  
всем вход через username, password
часть юзеров  username, password, часть юзеров анонимный доступ
 
 
Вот и задумался над одним вариантом , а как например сделать так  
аннонимный доступ открыть только внутри чтоб снаружи нельзя было зайти . Снаружи только через username ,password.  Может есть у кого идеи как организовать это в VSFTPD  ?  
 
Вот совет  от Dr_Spectre
 повесить два разных сервера с разными конфигами на разные ip
1 директива listen_address в конфигах  
2 копируем /etc/rc.d/init.d/vsftpd в  /etc/rc.d/init.d/vsftpd_local например
3 правим в файле /etc/rc.d/init.d/vsftpd_local пут к конфигу
4 chkconfig vsftpd_local on
5 service vsftpd_local start  
 
Я решил немножко изменить решение и организовать это через ,,супер сервер ,, XINETD .  Вначале немного пояснение.
 Для управления доступом к службам Интернет используется демон xinetd, который является безопасной заменой для inetd. Демон xinetd экономит системные ресурсы, обеспечивает управление доступом и протоколирование, а также может использоваться для запуска серверов специального назначения. xinetd можно использовать для предоставления доступа или запрета доступа только определённым узлам, для предоставления доступа к службе в определённое время, для ограничения количества входящих подключений и/или нагрузки, создаваемой подключениями и т.д.
 
xinetd работает постоянно и прослушивает все порты служб, которыми он управляет. Когда управляемая служба получает запрос на установление соединения, xinetd запускает соответствующий сервер этой службы.
 
Файлом настройки демона xinetd является /etc/xinetd.conf .  
И так, прослушиванием - кто с какого сетевого интерфеиса, с какой подсети с какого IP adress   подключается (можно также установить разрешение по времени ) мы возложим на демон xinetd.  Теперь пока оставим  xinetd и передем  к самому фтп серверу vsftpd .
vsftpd используется на большинстве серверов под управлением linux. Среди них ftp.redhat.com, ftp.suse.com, ftp.debian.org, ftp.gnu.org, ftp.gnome.org, ftp.kde.org  Название vsftpd произошло от "very secure FTP deamon" (чрезвычайно безопасный FTP-демон) . И так фаил конфигурации находится  /etc/vsftpd/vsftpd.conf  
 
( команды для работы с сервисом vsftpd )
# service vsftpd start
# service vsftpd stop
# service vsftpd restart
Проверка работает ли сервис  фтп  
# netstat -a | grep ftp
Он изначально уже так настроен что что запустив фтп сервер он работает и с локальными юзерами и как анонимный. Вот линки на другие сайты где расписан файл настройки сервера на руском языке.
http://www.linuxcenter.ru/lib/articles/soft/vsftpd_setup.phtml
http://linuxshop.ru/linuxbegin/article678.html
http://www.tldp.org/linuxfocus/Russian/July2004/article341.shtml
Нам же нужно создать два фаила настройки,  так как юзер  который заходит на фтп снаружи должен заити с username, password, а юзер изнутри сети может и как с username, password так и как аннонимный. То есть один  фаила настройки для юзеров снаружи , а другой для внутренних.  И так копируем
cp /etc/vsftpd/vsftpd.conf  /etc/vsftpd/vsftpd_pub.conf  
vsftpd.conf   для внутренних  
vsftpd_pub.conf  для внешних  
дальше в vsftpd.conf  и в vsftpd_pub.conf мы должны закоментировать опцию  
 
# listen=YES  эта опция для запуска сервера STANDALONE  - вручную если сервер будет работать через xinetd то ее нужно закоментировать иначе будем получать ошибку  
 could not bind listening IPv4 socket
На этом с vsftpd.conf  пока все, а  в vsftpd_pub.conf нам нужно запретить фход как анонимный пользователь .
вот конфиг.
*******************************************************
# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
# anonymous_enable=YES
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that turning on ascii_download_enable enables malicious remote parties
# to consume your I/O resources, by issuing the command "SIZE /big/file" in
# ASCII mode.
# These ASCII options are split into upload and download because you may wish
# to enable ASCII uploads (to prevent uploaded scripts etc. from breaking),
# without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be
# on the client anyway..
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
ftpd_banner=Welcome to Microsoft FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
 
pam_service_name=vsftpd
userlist_enable=YES
#enable for standalone mode
# listen=no
tcp_wrappers=YES
**********************************************************
Хочу обратить ваше внимание на следующую опцию  
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
Я оставил ее без изменения но с точки зрения безопасности вам стоит ее разрешить а в фаил vsftpd.chroot_list впишите например своего юзера . ( кстати фаил  vsftpd.chroot_list надо создать самому  странно что и самой опции chroot_local_user=YES в конфиге нет)
Все с конфигурацией vsftpd закончено , возвращаемся к xinetd. Идем в  /etc/xinetd.conf   и добавляем следущее  вот xinetd.conf  
*********************************************************
#
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
 
defaults
{
instances               = 60
        log_type                = SYSLOG authpriv
        log_on_success= HOST PID
        log_on_failure= HOST
cps= 25 30
}
 
includedir /etc/xinetd.d
 
 
 
service ftp    
    {
      id                    = ftp-public
      socket_type   = stream
      wait               = no
      disable          = no
      user               = root
      server             = /usr/sbin/vsftpd
      server_args    = /etc/vsftpd/vsftpd_pub.conf
      instances        = 4  #Defines the maximum number of servers of a same type able to work at the same time
      nice                = 10
      flags              = IPv4
      only_from       = 0.0.0.0/0 #allows every client
      interface         = 192.168.1.240 #public IP address for this server
    }
 
    service ftp
    {
      id                  = ftp-internal
      socket_type  = stream
      wait              = no
      disable          = no
      user               = root
      server            = /usr/sbin/vsftpd
      server_args   = /etc/vsftpd/vsftpd.conf
      flags               = IPv4
      only_from       = 192.168.20.0/24 #only for internal use
      only_from       = 192.168.30.0/24 #only for internal use
 
    }
*********************************************************************
Вот линки  по файлу настроек xinetd  
               
http://lantan.chat.ru/xinetd.conf.html
http://www.tldp.org/linuxfocus/English/November2000/article175.shtml
Теперь сама работа с xinetd
# service xinetd start
# service xinetd stop
# service xinetd restart
Теперь перезапускаем xinetd и проверяем как это все работает.
 
У меня все работает отлично. Теперь немного о проблемах . Как вы обратили внимание  в настройке первого ,, public ,, ftp  есть внизу строка  
 
interface         = 192.168.1.240 #public IP address for this server
 
Этим параметром мы задаем xinetd прослушивать  сетевую карточку с конкретным адресом,  но IP -то у нас не постоянный - адрес мы получаем от DHCP.  И к сожалению  xinetd не поддерживает динамик IP. В принципе все не так страшно , всетаки это сервер и притом gateway,  и он не перезагружается каждый день  и IP у нас не будет менятся часто , здесь главное не забыть что после перезагрузки надо проверить не изменился ли адрес и если что не забыть поменять его в конфиге. Решения проблемы вроде как есть но у меня оно не работает. Вот что я нашел  
,, Obviously, there's a problem: what happens if a machine doesn't have two static IP addresses? This can happen with ppp connections or when using the dhcp protocol. It seems it would be much better to bind services to interfaces than to addresses. However, this is not yet supported in xinetd and is a real problem (for instance, writing a C module to access an interface or address depends on the OS, and since xinetd is supported on many OSes...). Using a script solves the problem:
 
    #!/bin/sh
 
    PUBLIC_ADDRESS=`/sbin/ifconfig $1 | grep "inet addr" | awk '{print $2}'| awk -F: '{print $2}'`
    sed s/PUBLIC_ADDRESS/"$PUBLIC_ADDRESS"/g /etc/xinetd.base > /etc/xinetd.conf
 
 
This script takes the /etc/xinetd.base file, containing the desired configuration with  PUBLIC_ADDRESS as a replacement for the dynamic address, and changes it in /etc/xinetd.conf, modifying the PUBLIC_ADDRESS string with the address associated to the interface passed as an argument to the script. Next, the call to this script depends on the type of connection: the simplest is to add the call into the right ifup-* file and to restart xinetd.  
У меня к сожалению этот скрипт чистит весь конфиг фаил , в програмирование я полный дундук поэтому не знаю что здесь можно поменять . Ну и ко всему  прочему, почему бы уж тогда нельзя было сделать скрипт более толковый , который после рестарта системы проверяет  IP , меняет конфиг , и перестартовывает xinetd.
Так что если у кого есть идеи пишите.  На этом по ФТП пока все, если есть мысли , дополнения, вопросы пищите.  
 
 
 
 

Всего записей: 545 | Зарегистр. 25-08-2001 | Отправлено: 23:41 21-12-2004 | Исправлено: Borgia, 22:24 22-12-2004
Borgia



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Организация Небольшой сети на  linux Fedore Core3  
Часть восьмая конфигурирование файл server  (SAMBA)
 
 
Ну вот  пришел Новый Год, позади подготовка, празднование,  и прихождения в себя   и вообщем я снова собрался с силами и духом продолжить  свои опусы  Итак файловый сервер - SAMBA.
Почему SAMBA а не NFS ?   Наверное я потом попробую организовать и описать NFS , но пока я беру в расчет что наверняка в сети будут и комп. с виндовс системами и им тоже надо дать доступ . И SAMBA нам дает возможность взаимодействия и  с линукс и с виндовс ситемами .  В сети достаточно материала по SAMBA но к сожалению он значительно  устарел во основном идет описание версий 2.х ,(то же самое касается и печатной литературы) а жаль  так как версий 3.х имеют серьезные изменения . И если стандартная конфигурация не предстовляет больших проблем то   описание  взаимодеиствия SAMBA с  доменной системой майкрософта , а также взаимодествие с kerberos , winbind , ldap - выглядит достаточно сложно и запутано  и разнится от дистрибутива .  (вообщем у меня организовался в голове полный салат пока)  так что  если кто может разложить зто по ,,полочкам ,,  буду признателен.
Вопрос в основном  когда что использовать,  для какого случая что предпочтительней . ( ну и если найдете хорошее описание SAMBA 3.х и ее работы  в исполнение разных ролей в сети  киньте сюдя линки)
 Я буду описывать простую конфигурацию   SAMBA сеть у нас небольшая пока    ну и как говорят от простого к сложному. Сеть у нас обычная workgroup (каждый сам себе ,,злобный буратино ,, Ну в смысле администратор) и пока без без обязательной авторизации на   SAMBA сервере
Задачи.
1  организовать фаил сервер  с общим доступом  на определенную папку (PUBLIC) и разрешением писать удалять всем (этакая файло-помойка)
2 общим доступом  на определенную папку(DATA) и разрешением только читать  
3 доступом  на определенную папку(DOCS) только определенной группе пользователей
 
ВОПРОС  
Здесь  меня немного замкнуло,  а где собственно размещать эти папки  для  SAMBA сервера. Нет я понимаю что можно где хочеш  но хотелось узнать у гуру что считается обще принятой практикой , ну или скажем ,, правилами хорошего тона,,
 
И так SAMBA сервер . Файл конфигурации находится в директории  /etc/samba/   это   smb.conf  фаил достаточно большой но  довольно понятно оформлен и разбит на подразделы.  
Команды для работы с сервером SAMBA
1 #pgrep smb     - проверить загружен  ли в данный момент  процесс  SAMBA сервера  
2 Остановить перезапустить запустить  SAMBA сервер
 #service smb start
# service smb stop
# service smb restart
поставить SAMBA сервер в автозагрузку можно  с помощью  команды ,,ntsysv,,  или  
 ,,chkconfig smb on,,   ( это относится не только к  SAMBA но и к другим сервисам)
Файл конфигурации  smb.conf
#======================= Global Settings =====================================
[global]
 
# workgroup = NT-Domain-Name or Workgroup-Name
workgroup = ferose
 
# server string is the equivalent of the NT Description field
server string = Samba Server
 
# This option is important for security. It allows you to restrict
# connections to machines which are on your local network. The
# following example restricts access to two C class networks and
# the "loopback" interface. For more examples of the syntax see
# the smb.conf man page
;   hosts allow = 192.168.1. 192.168.2. 127.
 
# if you want to automatically load your printer list rather
# than setting them up individually then you'll need this
printcap name = /etc/printcap
load printers = yes
 
# It should not be necessary to spell out the print system type unless
# yours is non-standard. Currently supported print systems include:
# bsd, sysv, plp, lprng, aix, hpux, qnx
   printing = cups
 
# This option tells cups that the data has already been rasterized
cups options = raw
 
# Uncomment this if you want a guest account, you must add this to /etc/passwd
# otherwise the user "nobody" is used
;  guest account = pcguest
 
# this tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/%m.log
# all log information in one file
#   log file = /var/log/samba/smbd.log
 
# Put a capping on the size of the log files (in Kb).
max log size = 50
 
# Security mode. Most people will want user level security. See
# security_level.txt for details.
security = USER
# Use password server option only with security = server
;   password server = <NT-Server-Name>
 
# Password Level allows matching of _n_ characters of the password for
# all combinations of upper and lower case.
password level = 8
#  username level = 8
 
# You may wish to use password encryption. Please read
# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.
# Do not enable this option unless you have read those documents
smb passwd file = /etc/samba/smbpasswd
 
# The following are needed to allow password changing from Windows to
# update the Linux system password also.
# NOTE: Use these with 'encrypt passwords' and 'smb passwd file' above.
# NOTE2: You do NOT need these to allow workstations to change only
#        the encrypted SMB passwords. They allow the Unix password
#        to be kept in sync with the SMB password.
unix password sync = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*
 
# Unix users can map to different SMB User names
 
# Using the following line enables you to customise your configuration
# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
;   include = /etc/samba/smb.conf.%m
 
# Most people will find that this option gives better performance.
# See speed.txt and the manual pages for details
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
 
# Configure Samba to use multiple interfaces
# If you have multiple network interfaces then you must list them
# here. See the man page for details.
   interfaces = 192.168.20.0/24 192.168.30.0/24
 
# Configure remote browse list synchronisation here
#  request announcement to, or browse list sync from:
#a specific host or from / to a whole subnet (see below)
;   remote browse sync = 192.168.3.25 192.168.5.255
# Cause this host to announce itself to local subnets here
;   remote announce = 192.168.1.255 192.168.2.44
 
# Browser Control Options:
# set local master to no if you don't want Samba to become a master
# browser on your network. Otherwise the normal election rules apply
   local master = yes
 
# OS Level determines the precedence of this server in master browser
# elections. The default value should be reasonable
   os level = 33
 
# Domain Master specifies Samba to be the Domain Master Browser. This
# allows Samba to collate browse lists between subnets. Don't use this
# if you already have a Windows NT domain controller doing this job
  domain master = yes
 
# Preferred Master causes Samba to force a local browser election on startup
# and gives it a slightly higher chance of winning the election
   preferred master = yes
 
# Enable this if you want Samba to be a domain logon server for
# Windows95 workstations.
;   domain logons = yes
 
# if you enable domain logons then you may want a per-machine or
# per user logon script
# run a specific logon batch file per workstation (machine)
;   logon script = %m.bat
# run a specific logon batch file per username
;   logon script = %U.bat
 
# Where to store roving profiles (only for Win95 and WinNT)
#        %L substitutes for this servers netbios name, %U is username
#        You must uncomment the [Profiles] share below
;   logon path = \\%L\Profiles\%U
 
# All NetBIOS names must be resolved to IP Addresses
# 'Name Resolve Order' allows the named resolution mechanism to be specified
# the default order is "host lmhosts wins bcast". "host" means use the unix
# system gethostbyname() function call that will use either /etc/hosts OR
# DNS or NIS depending on the settings of /etc/host.config, /etc/nsswitch.conf
# and the /etc/resolv.conf file. "host" therefore is system configuration
# dependant. This parameter is most often of use to prevent DNS lookups
# in order to resolve NetBIOS names to IP Addresses. Use with care!
# The example below excludes use of name resolution for machines that are NOT
# on the local network segment
# - OR - are not deliberately to be known via lmhosts or via WINS.
; name resolve order = wins lmhosts bcast
 
# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server
wins support = yes
 
# WINS Server - Tells the NMBD components of Samba to be a WINS Client
#Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
;   wins server = w.x.y.z
 
# WINS Proxy - Tells Samba to answer name resolution queries on
# behalf of a non WINS capable client, for this to work there must be
# at least oneWINS Server on the network. The default is NO.
;   wins proxy = yes
 
# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names
# via DNS nslookups. The built-in default for versions 1.9.17 is yes,
# this has been changed in version 1.9.18 to no.
dns proxy = no
 
# Case Preservation can be handy - system default is _no_
# NOTE: These can be set on a per share basis
  preserve case = no
  short preserve case = no
# Default case is normally upper case for all DOS files
  default case = lower
# Be very careful with case sensitivity - it can break things!
  case sensitive = no
 
#============================ Share Definitions ==============================
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /bin/false
password server = None
guest ok = yes
guest account = nobody
winbind use default domain = no
;[homes]
;comment = Home Directories
;browseable = yes
;writeable = yes
 
# Un-comment the following and create the netlogon directory for Domain Logons
; [netlogon]
;   comment = Network Logon Service
;   path = /home/netlogon
;   guest ok = yes
;   writable = no
;   share modes = no
 
 
# Un-comment the following to provide a specific roving profile share
# the default is to use the user's home directory
;[Profiles]
;    path = /home/profiles
;    browseable = no
;    guest ok = yes
 
 
# NOTE: If you have a BSD-style print system there is no need to
# specifically define each individual printer
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
# Set public = yes to allow user 'guest account' to print
printable = yes
 
[public]
   path = /var/tmp/public
   public = yes
   only guest = yes
   writable = yes
   printable = no
 
 
[data]
   path = /var/tmp/data
   public = yes
   only guest = yes
   writable = no
   printable = no
 
[docs]
   comment = Danik and Fedor stuff
   path = /var/tmp/docs
   valid users = danik fedor
   public = no
   writable = yes
   printable = no
   create mask = 0765
 
 
 
# A publicly accessible directory, but read only, except for people in
# the "staff" group
;[public]
;   comment = Public Stuff
;   path = /home/samba
;   public = yes
;   read only = yes
;   write list = @staff
 
Этот конфиг фаил немножко короче оригинала - в оригинале больше примеров для расшаревания различных ресурсов .  Здесь важно помнить что SAMBA - это если так можно выразиться не чисто файл сервер для среды  ,,чистого ,, линукса  скорее всего он был создан для интегрированного решения среды маикрософта с юникс-линукс и др. сред . Поэтому если ваша сеть предпологает быть чисто линукс то скорее всего нет смысла   заводить этот  ,,танец,,  а обратить внимание на NFS .  Дальше  нам нужно завести  всех юзеров которые будут авторизироваться  на сервере для захода на расшареную папку для определенных юзеров в нашем случае это два юзера  Danik and Fedor .  Важно помнить что просто создание этих юзеров на сервере ( ,,adduser user_name,, и задание пароля  ,,passwd user_name,,)не решит проблему так как у SAMBA своя база данных пользователей , но при этом она позволяет добавить юзера в свою базу данных только если он присутствует в системе . То есть вначале создаем юзера на сервере а только потом добавляем его в базу данных  SAMBA сервера.    
smbpasswd -a Danik  (в нашем примере и не забываем про регистр в линуксе Danik и danik два разных слова )  
smbpasswd -a Fedor    
 
Теперь вопрос специалистам  
по конфигу  
guest ok = yes
guest account = nobody
мы разрешаем гостю заходить на рашареные папки  nobody это гостевой юзер в системе я его тоже добавил в в базу данных  SAMBA сервера с пустым паролем ( насколько это правильно)
2 . У меня при  заходе  со станциий линукс  на рашареный ресурс  public  выскакивает окно авторизации  и мне приходиться вписывать имя  nobody и жать  Enter . Есть возможность решить эту проблему ?  Если уж дали вход для всех то зачем авторизироваться .
 
Диагностика.
 Сконфигурировали мы конфиг запустили самбу теперь осталось проверить  а все ли правильно мы сделали с этим я отсылаю всех желающих на очень толковую статью (не удобно просто взять и скопировать а переписывать тоже самое своими словами не вижу смысла)  
http://www.linuxrsp.ru/docs/smb_diag.html  
Другие интересные статьи  
http://sys.net.ru/docs/howto/samba_pdc/
http://linux.yaroslavl.ru//docs/serv/samba/samba-win2000.html
http://sys.net.ru/docs/network/Samba_XFS_ACL/
http://www.citforum.ru/operating_systems/linux/samba/
И последнее по поводу кодировок -  может и не надо но на всякий случай можно добавить поддержку юникода ( добавляем в секцию GLOBAL конфиг фаила)
 
dos charset = 866
unix charset = UTF-8
display charset = UTF-8
 
На этом по  SAMBA пока все, если есть что добавит исправить пишите
 
 
 

Всего записей: 545 | Зарегистр. 25-08-2001 | Отправлено: 22:02 08-01-2005 | Исправлено: Borgia, 22:52 18-01-2005
psj



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Borgia

Цитата:
и пока без без обязательной авторизации на   SAMBA сервере  


Цитата:
3 доступом  на определенную папку(DOCS) только определенной группе пользователей  

Это как-то не стыкуется, Т.к. две данные вещи взаимоисключают друг друга без авторизации на сервере!
Но если честно - давно жду именно этого раздела, т.к. хочу попробывать сделать именно авторизацию в домене Win 2000/2003. Причем если 2000, то в native режиме. Причем - логоннаме в домене должен быть кирилицей, т.е. Пупкин, Васильчиков, ..., так же как и пассворды - пкв1234, впк43216, ... Четко об этом нигде ни читал, а сколько не пробывал - самому сделать не получалось, т.к. всегда не хватало главного - времени! Т.е. простой файловый сервер поднимается сразу и на УРА-а-а! А вот с подобной доменной аутентификацией ничего не получилось

----------
В правильно заданном вопросе - 80% ответа :)

Всего записей: 267 | Зарегистр. 27-07-2004 | Отправлено: 10:37 09-01-2005
Borgia



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
psj
 
Ну я это по видовой привычке . С другой стороны меня интересует вопрос  кто может обьяснить  значение визарда  [ Aplications > System Settings> Authentication ]   там есть две вкладки 1 User Imformation 2 Authentication      - их значение (Чего то я совсем запутался что канкретно дают эти параметры  - это для сервера если я предостовляю такой  сервис или для  
 клиента для подключения к серверу   -  
второе что канкретно дает вкладка  Authentication> SMB  
третье на чем может быть организовано  - NIS,  LDAP ?  вариант как в виндовс сети  , что если юзер проходит авторизацию в домеине то он может работать с любой станции независимо от того есть такой юзер локально или нет.  
 
я чего то  туплю  сегодня (устал говова уже не варит)

Всего записей: 545 | Зарегистр. 25-08-2001 | Отправлено: 23:41 09-01-2005
Wooden Goblin

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Единственное пинг не идет  из компьютера любой из подсетей наружу    
[root@test ~]# ping www.linux.org.ru  
PING www.linux.org.ru (217.76.32.61) 56(84) bytes of data.  
   
--- www.linux.org.ru ping statistics ---  
6 packets transmitted, 0 received, 100% packet loss, time 4999ms  
Но С самого сервера все ок.

 
Как верно подметил Dr_Spectre, у тебя не настроен NAT, в твоём конкретном случае надо использовать MASQUERADE.
Например:
iptables -t nat -A POSTROUTING -s 192.168.20.0/24 -o eth0 -j MASQUERADE
- таким способом ты выпустишь наружу всех с подсети 192.168.20.0

Всего записей: 25 | Зарегистр. 08-08-2003 | Отправлено: 11:37 14-01-2005
Borgia



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Wooden Goblin
 
спасибо большое за помощь ,  кстати если есть желание напиши несколько правил для этих двух подсетей  
например  
1 запретить весь трафик из подсети 192.168.30.0 в 192.168.20.0 и обратно  
2 разрешить из сети 192.168.20.0 в 192.168.30.0 только  SSH  
3 разрешить из сети 192.168.20.0 в 192.168.30.0 только  FTP
4 разрешить из сети 192.168.20.0 в 192.168.30.0 только  WEB
5 разрешить из сети 192.168.20.0 в 192.168.30.0 только  SMTP
6 разрешить из сети 192.168.20.0 в 192.168.30.0 только  IMAP
7 разрешить из сети 192.168.20.0 в 192.168.30.0 только  POP3
 
 PS.А я пока застрял на Postfixe  
http://forum.ru-board.com/topic.cgi?forum=8&topic=2336#1
 

Всего записей: 545 | Зарегистр. 25-08-2001 | Отправлено: 22:49 16-01-2005
Wooden Goblin

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Borgia

Цитата:
спасибо большое за помощь ,  кстати если есть желание напиши несколько правил для этих двух подсетей    
например  
1 запретить весь трафик из подсети 192.168.30.0 в 192.168.20.0 и обратно  
2 разрешить из сети 192.168.20.0 в 192.168.30.0 только  SSH
...
 

1 - под "весь" подразумевается весь, кроме нижеперечисленного?
2 - из 20.0 в 30.0 ssh и т.п. - т.е. с компьютеров сети 20.0 разрешить ходить на указанные порты компьютеров сети 30.0, или наоборот?
 

Всего записей: 25 | Зарегистр. 08-08-2003 | Отправлено: 23:13 16-01-2005
Borgia



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Wooden Goblin
 
я просто хочу  организовать из подсети 192.168.30.0 типа DMZ  и дать возможность открывать только конкретные  сервисы  например если установить там фтп или веб  ...  
в зависимости от нужд поэтому сеть 192.168.30.0 не должна видеть 192.168.20.0 , а из 192.168.20.0 открывать  взависимости отустановленных сервисов - не все вместе перечисленное мной  ( ну вообщем что то типа этого )
PS кстати как один из вариантов можно что сеть 192.168.30.0 не должна видеть 192.168.20.0  
а сети  192.168.20.0 разрешить весь трафик в 192.168.30.0

Всего записей: 545 | Зарегистр. 25-08-2001 | Отправлено: 23:51 16-01-2005 | Исправлено: Borgia, 23:54 16-01-2005
Dr_Spectre



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 1 запретить весь трафик из подсети 192.168.30.0 в 192.168.20.0 и обратно  
 

iptables -A FORWARD -s 192.168.30.0/24 -d 192.168.20.0/24 -j REJECT
iptables -A FORWARD -s 192.168.20.0/24 -d 192.168.30.0/24 -j REJECT
 

Цитата:
2 разрешить из сети 192.168.20.0 в 192.168.30.0 только  SSH  
3 разрешить из сети 192.168.20.0 в 192.168.30.0 только  FTP
4 разрешить из сети 192.168.20.0 в 192.168.30.0 только  WEB
5 разрешить из сети 192.168.20.0 в 192.168.30.0 только  SMTP
6 разрешить из сети 192.168.20.0 в 192.168.30.0 только  IMAP
7 разрешить из сети 192.168.20.0 в 192.168.30.0 только  POP3

 
здесь можно использовать расширение мультипорт и загнать их все в 2 правила
(хожет не в 2 а в 4 так как придется описывать udp и tcp отдельно)
 
iptables -A FORWARD -s 192.168.30.0/24 -d 192.168.20.0/24 -p tcp -m multiport --dport 22,53,80,110 -j ACCEPT
Это для примера список портов брать в /etc/services (b еще udp для чего нужно открыть)
обратно трафик можно открыть для всех портов вообще
iptables -A FORWARD -s 192.168.30.0/24 -d 192.168.20.0/24 -j ACCEPT  


----------
Со всеми регардами - Alexei Dmitriev aka Dr.Spectre
Чтобы добиться успеха в этом мире, одной глупости недостаточно, к ней нужны еще хорошие манеры.
(c) Вольтер

Всего записей: 1554 | Зарегистр. 15-12-2001 | Отправлено: 12:17 17-01-2005 | Исправлено: Dr_Spectre, 11:14 18-01-2005
Wooden Goblin

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Желательно ещё чтобы вот это было, если его ещё нет:
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
Может понадобиться потому, что первоначальное соединение на какой-то порт может порождать "дочек", т.е. соединение далее идёт не с исходным портом, а с другим.
Хотя для указанных тобой протоколов это вроде как нехарактерно, такие вещи обычно любят ftp и клиенты P2P.

Всего записей: 25 | Зарегистр. 08-08-2003 | Отправлено: 12:28 18-01-2005
Dr_Spectre



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Желательно ещё чтобы вот это было, если его ещё нет:
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT  

 
из
Цитата:
 2 разрешить из сети 192.168.20.0 в 192.168.30.0 только  SSH  
3 разрешить из сети 192.168.20.0 в 192.168.30.0 только  FTP
4 разрешить из сети 192.168.20.0 в 192.168.30.0 только  WEB
5 разрешить из сети 192.168.20.0 в 192.168.30.0 только  SMTP
6 разрешить из сети 192.168.20.0 в 192.168.30.0 только  IMAP
7 разрешить из сети 192.168.20.0 в 192.168.30.0 только  POP3  

 
это только ftp в пассивном режиме надо.

----------
Со всеми регардами - Alexei Dmitriev aka Dr.Spectre
Чтобы добиться успеха в этом мире, одной глупости недостаточно, к ней нужны еще хорошие манеры.
(c) Вольтер

Всего записей: 1554 | Зарегистр. 15-12-2001 | Отправлено: 17:36 18-01-2005
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Организация небольшой сети на linux Fedora Core3


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru