The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Настройка сетевой подсистемы в основанных на RedHat Linux (cbq shaper bandwidth linux limit route install redhat firewall squid)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: cbq, shaper, bandwidth, linux, limit, route, install, redhat, firewall, squid,  (найти похожие документы)
From: Black Cat Linux Subject: Настройка сетевой подсистемы в основанных на RedHat Linux Выборка из руководства по Black Cat Linux, раздел "сервер Internet/lntranet" Установка дополнительной сетевой карты Протокол TCP/IP ограничивает количество адресов на одном сегменте Ethernet числом 254. Обойти это ограничение можно, присвоив одной сетевой карте несколько адресов IP, но даже при меньшем количестве машин возникает опасность перегрузки сегмента широковещательными запросами и недопустимо увеличивается число коллизий. Поэтому большие сегменты фрагментируют, устанавливая в сервере несколько сетевых карт. Установка нескольких сетевых карт позволяет также эффективно разграничить доступ к информации. Black Cat Linux ограничивает количество сетевых карт только количеством слотов в вашем компьютере. Рассмотрим процедуру установки второй карты (не отличается для третьей, четвертой и т.д.). При этом возможны следующие варианты: Добавление однотипной карты Если дополнительная карта аналогична уже установленной и имеет шину РСI, дополнительный драйвер не требуется: все платы будут успешно обнаружены и установлены. Если это карты ISA, драйверу потребуется "подсказка". Так, для плат NE2000 необходимо перечислить адреса ввода-вывода в файле /etc/conf.modules: alias eth0 ne options ne io=0x300, 0х320, 0х340 Номера интерфейсов при этом будут присвоены в порядке перечисления адресов. Все карты разных моделей Если все карты разные, файл conf.modules может выглядеть следующим образом: alias eth0 3c59x #3Com 3C905B alias eth1 rd8139 #Realtek RTL8139 alias eth2 ne options ne io=0x300,0x320 #две платы NE2000-ISA Все современные сетевые карты ISA имеют два режима - ISA PnP и Legacy ISA. Для работы в Linux такие карты необходимо перевести в режим Legacy ISA, используя поставляемую с картой программу конфигурации для DOS. Настройка TCP/IP Настроить параметры TCP/IP для вновь установленной карты можно при помощи программы Linuxconf (Config -> Networking -> Client tasks -> Basic host information), netcfg или при помощи вашего любимого текстового редактора, создав в каталоге /etc/sysconfig/network файл ifcfg-ethX в соответствии с документацией от пакета initscripts. Разрешение маршрутизации пакетов с одного интерфейса на другой В Black Cat Linux пересылка (forwarding) пакетов с одного интерфейса на другой по умолчанию запрещена. Чтобы разрешить ее, нужно в файле /etc/sysconfig/network изменить значение параметра FORWARDJPV4 с "false" на "true". Безопасные сервисы для вашего сервера. В поставку Black Cat Linux входят средства для организации безопасного доступа к вашему серверу по протоколам HTTPS,IMAPS,POP3S,TELNETS. Apache с mod_ssl. Вы можете сделать ваш собственный Secure Web server. Для этого вам необходимо поставить пакет apache-mod_ssl из директории contrib/crypto. (Перед установкой этого пакета убедитесь, что у вас уже установлен пакет openssi). После его установки вам необходимо сделать для себя сертификат. Последовательно выполняя нижеперечисленные команды вы получите работоспособный Secure Web Server, к которому позже вы сможете обратиться как https://my.host.name/: openssl genrsa -des3 -out server.key.secure 1024 Изготовление первичного секретного ключа. openssl rsa -in server.key.secure -out server.key Изготовление беспарольного первичного ключа сервера. Вам он понадобится для автоматического запуска сервера. openssl req -new -key server.key.secure -out server.csr Изготовление запроса на получение официального сертификата. Мы показываем, как изготовить подписанный вами самими сертификат. Для серьезного сервера вам придется купить подписанный на основе вашего server.csr. О том как это сделать вы можете прочитать в файле: /home/httpd/html/manual/mod/mod_ssl/ssl_faq.html openssl req -new -x509 -days 365 -key server.key.secure -out server.crt Подписываем сертификат. cp server.key /etc/httpd/ssl.key/server.key Копируем первичный ключ сервера. cp server.key.secure /etc/httpd/ssl.key/server.key.secure Копируем первичный ключ с паролем. Вы можете его положить как/etc/httpd/conf/ssl.key/server.key, но вы этом случае при каждом перезапуске машины или просто apache вам придется вводить пароль для подтверждения что ключ действительно соответствует содержимому сайта. Это может использоваться только при пароноидальном подходе к безопасности сервера. cp server.csr /etc/httpd/ssl.csr/server.csr Копируем запрос сертификата... cp server.crt /etc/httpd/ssl.crt/server.crt ... и сам сертификат. IMAP+SSL,POP3+SSL,TELNET+SSL. Для организации криптованного доступа вам придется поставить пакет ssl-wrap из директории contrib/crypto (так же требует наличие пакета openssi). После этого вам необходимо проделать следующие операции: * Изготовление сертификата cd /etc/ssl/certs RANDFILE=/dev/urandom opeussl req -new -x509 -nodes -out server.pem \ -keyout server.pem -days 365 ln -s server.pem `openssl x509 -noout -hash < server.pem`.0 * Заведения пользователя под идентификатором которого будет работать демон ssl-wrap. useradd -с 'SSL wrapper' -d / -g daemon -s /bin/fake sslwrap chown sslwrap /etc/ssl/certs/server.pem chmod go-rwx /etc/ssl/certs/seiver.pem * Описание сервисов для супердемона inetd в файле /etc/inetd.conf. Необходимо прописать три строчки: Внимание: описание каждого сервиса полностью должно занимать одну строку в файле /etc/inetd.conf. Переводы строки только после -port NNN imaps stream tcp nowait sslwrap /usr/sbin/tcpd /usr/sbin/sslwrap-imaps -cert /etc/ssl/certs/server.pem -port 143 telnets stream tcp nowait sslwrap /usr/sbin/tcpd /usr/sbin/sslwrap-telnets -cert /etc/ssl/certs/server.pem -port 23 pop3s stream tcp nowait sslwrap /usr/sbin/tcpd /usr/sbin/sslwrap-pop3s -cert /etc/ssl/certs/server.pem -port 110 После этого вам достаточно выполнить killall -1 inetd. После этого рекомендуем еще закрыть доступ к портам 23,143,110 всем IP адресам кроме 127.0.0.1 Настройка фильтра пакетов Зачем нужен фильтр пакетов? Вот два основных ответа на этот вопрос: Управление Когда ваш Linux подключен к различным сетям (и к Интернету в том числе), вы должны иметь возможность управлять любыми потоками данных, идущих через вашу систему. Например, вы должны быть уверены, что любой пакет из внутренней сети, которые может содержать важную информацию, не уйдет на просторы Интернет. Безопасность Когда Linux стоит один на один с хаосом Интернета, да еще и служит мостом в Интернет для машин внутренней сети, вы должны быть уверены, кто и куда ходит через мост. Например, вы желаете ходить по Интернет, но не желаете, чтобы ваша машина была сервером (а вы уверены, что у вас все пользователи имеют пароли и лишние сервисы закрыты ?). С наличием firewall эти проблемы решаются легко и быстро. Полное описание вы сможете найти в /usr/doc/HOWTO/IPCHAINS-HOWTO. Мы приведем пример с объяснением, как решить эту задачу. Условия: * Есть локальная сеть с адресами 10.х.х.х, подключенная к нашему маршрутизатору через интерфейс eth0 (или eth1, если в машине больше одного сетевого адаптера). * Соединение с ISP через интерфейс ррр0. Задача: * для клиентов из сетей 10.х.х.х обеспечить выход в Internet. Решение: Фильтр пакетов в Linux 2.2.X состоит из трех цепочек правил: входной, выходной и транзитной. Поскольку для реализации описанной выше задачи не требуется защищать какие-либо сервисы в сети, то цепочки input(входная) и output(выходная) оставим чистыми. Цепочка для транзитных пакетов должна: * пропускать пакеты из локальных подсетей в локальную без изменения * из локальной сети в мир должна подменять адрес источника на наш реальный IP-адрес на устройстве ррр0 (осуществлять маскарадинг). * остальные пакеты (которые в 99 случаях из 100 представляют всевозможные атаки на вашу сеть) мы должны не пропускать. Первоначальная настройка делается при помощи команды ipchains: ipchains -A forward -s 10.0.0.0/8 -d 10.0.0.0/8 -j ACCEPT ipchains -A forward -s 10.0.0.0/8 -d 0.0.0.0/0 -j MASQ ipchains -P forward REJECT После этого необходимо сохранить созданную настройку фильтра в файле конфигурации: ipchains-save > /etc/sysconfig/firewall/firewall Теперь осталось только при помощи ntsysv или chkconfig добавить сервис firewall в автозапуск. Изменение настройки фильтра можно делать командой Ipchains или при помощи графической программы gfcc. После того как вы измените настройку выполните приведенные ниже команды: /etc/rc.d/init.d/firewall stop ср /etc/sysconfig/firewall/firewall.work /etc/sysconfig/firewall/firewall /etc/rc.d/init.d/firewall start Ваша предыдущая настройка сохраняется в файле /etc/sysconfig/firewall/firewall.bak до первого выполнения /etc/rc.d/init.d/firewall с параметром stop. Внимание! При перезапуске машины или выключении питания этот скрипт выполнится автоматически Управление скоростью графика пакетов. В крупных сетях с довольно развитой структурой, где есть выход в Internet через канал со сравнительно небольшой пропускной способностью часто возникает необходимость перераспределить полосы пропускания для отдельных машин в сети или в целом на отдельные подсети. Black Cat Linux включает в себя средство для управления транзитным графиком. Здесь мы приведем лишь два примера конфигурация для самых распространенных случаев: Пример 1: Необходимо ограничить график из мира на определенную машину, а локальный график пропускать с максимальной скоростью. Для этого необходимо создать два файла в директории /etc/sysconfig/cbq: cbq-10.out cbq-8.out Первый (с большим приоритетом) описывает правила для случая "локальная машина- локальная машина". Вот его содержимое: DEVICE=eth0, 10Mbit, 1Mbit RATE=10Mbit WEIGHT=1Mbit PRIO=5 RULE=10.0.0.0/24,10.0.0.2/32 Где DEVICE - описание устройства к которому подключена машина получатель пакетов, RATE - скорость с которой передавать пакеты, a RULE это правило описывающее что шейпер действует для пакетов только с нашей локальной сети на конкретную машину. Второй файл содержит описание правил для случая "мир - локальная машина": DEVICE=eth0, 10Mbit, 1Mbit RATE=8Kbit WEIGHT=800 PRIO=5 RULE=10.0.0.2/32 Здесь стоит ограничение на 8Kbit (строка RATE) для всех пакетов на подпавших под правило первого более приоритетного шейпера. Как вы можете заметить - в строке RULE только один адрес. Такая сокращенная запись равносильна "RULE=0.0.0.0/0,10.0.0.2/32". Если вам понадобится в правиле указать "все пакеты которые идут от машины 10.0.0.2", то вам необходимо написать "RULE=10.0.0.3," (Обратите внимание на запятую). Пример 2: Необходимо ограничить исходящий трафик с машины для всех кроме своих сетей. Такой вариант может возникнуть если вы ставите свой сервер в локальной сети Internet провайдера который просит ограничить исходящий с вашего сервера график через внешние каналы. Вот вариант решения, (имена файлов для простоты оставлены те же): cbq-10.out: DEVICE=eth0, 10Mbit, 1Mbit RATE=10Mbit WEIGHT= 1Mbit PRIO=5 RULE=209.192.223.78/32,204.165.159.3/32 RULE=209.192.223.78/32,209.192.223.72/28 RULE=209.192.223.78/32,209.113.218.0/24 Пояснение: все пакеты нашего адреса 209.192.223.78 на вышеперечисленные подсети (да, строк RULE может быть несколько) пропускать с максимальной скоростью. cbq-8.out: DEVICE=eth0, 10Mbit, 1Mbit RATE=80Kbit WEIGHT=8000 PRIO=5 RULE=209.192.223.78/32, Все остальные пакеты с адреса 209.192.223.78 "зажать" на скорость 80Kbit/s. Полное описание вы сможете найти в файле /usr/doc/initscripts-4.16/readme.cbq.rus Трансляция адресов. Приоритетная маршрутизация Трансляция адресов В сетях со сложной топологией бывают ситуации когда необходимо присвоить машине стоящей в нескольких переходах от маршрутизатора (и имеющей локальный IP адрес) реальный IP адрес и обеспечить проход пакетов как от этой машины в мир так и наоборот. Описанный выше способ маскарада пакетов не подходит так, как этот метод односторонний. Ниже приведен вариант решения. ip rule add from 192.168.68.5 nat 194.44.183.204 ip route add nat 194.44.183.204 via 192.168.68.5 Где 194.44.183.204 - реальный адрес IP под которым из внешнего мира внутренняя машина 192.168.68.5 должны быть видна. Более подробно о возможностях трансляции адресов IP вы можете прочитать в /usr/doc/iproute2-2.2.4/ps/ip-cref.ps Приоритетная маршрутизация Бывают случаи когда необходимо пакеты от разных источников направить через разные каналы. В этом нам опять поможет команда ip: ip rule add from 194.200.0.0/24 table 1 ip rule add from 194.44.53.0/24 table 2 Для начала мы создали помимо основной таблицы маршрутизации две добавочных для двух блоков адресов от двух провайдеров к которому подключен наш маршрутизатор. ip route add default via 194.200.0.1 table 1 ip route add default via 194.44.53.254 table 2 А во вторых двух командах мы прописали маршрут по умолчанию на ррр интерфейсы наших провайдеров соответственно. Более подробную информацию вы сможете найти там же: /usr/doc/iproute2-2.2.4/ps/ip-cref.ps Ваш собственный прокси-сервер Прокси-сервера предназначены для минимизации обращений клиентов во внешний мир за одними и теми же страницами по протоколам http (WWW) и за одними и теми же файлами с серверов ftp. Имея в своей локальной сети прокси-сервер вы сможете снизить загрузку вашего внешнего канала до 30-40%. Что нужно для прокси-сервера? Для настройки вашего собственного прокси-сервера вам необходимо, прежде всего, установить пакет squid (выбрав его при инсталляции или установив позже при помощи команды rpm). Далее вам понадобится решить, сколько вы хотите отвести дискового пространства для хранения кэшированной информации. Для сетей небольших предприятий понадобится от 200МЬ до 1Gb. Помимо этого вам понадобится от 32Mb до 128Mb ОЗУ, в связи с тем, что вся служебная информация о запрашиваемых файлах хранится особым образом в памяти. В общем случае стоит рассчитывать примерно из таких значений: на каждых 200МЬ дискового пространства 16Mb ОЗУ. Ну и наконец последнее что вам понадобится для следующего шага - узнать у вашего провайдера, обязательно ли его использование. Настройка squid. Основной файл конфигурации squid, conf расположен в директории /etc/squid. Ниже приведем жизненно важные опции squid которые желательно подправить под себя: http_port 3128 icp_port 3130 Две данных опции описывают на каком порту будет отвечать ваш прокси-сервер на запросы клиентов. (Можно оставить закомментированными). tcp_incoming_address 0.0.0.0 tcp_outgoing_address 0.0.0.0 udp_incoming_address 0.0.0.0 udp_outgoiug_address 0.0.0.0 Эти четыре параметра заставляют принудительно слушать запросы на определенном адресе и соответственно на кэш высшего уровня (прокси-сервер вашего ISP если нужен) ходить с *_outgoing адреса. Обычно можно оставить закомментированными. cache_peer proxy.my.isp.net type 3128 3130 Эта опция описывает прокси-сервер вашего провайдера (если вы конечно хотите им воспользоваться). Вместо type может стоять: * parent - все запросы отправлять на прокси провайдера. * sibling - сначала посмотреть на прокси провайдера, и если там нет, то самим пойти за объектом по URL. Соответственно выберите для себя необходимое. cache_mem 16 MB Описывает сколько памяти (ОЗУ) может использовать squid для хранения служебной информации в памяти. На практике squid может использовать на 20-30% больше чем разрешено в этой переменной. Будьте аккуратны. cache_dir /var/spool/squid 100 16 256 Этот параметр описывает, сколько дискового пространства отдать под хранение данных (второй параметр). По умолчанию 100Mb. Вам возможно захочется поставить побольше. Первый, третий и четвертый параметр желательно не трогать, если вы не уверенны, что вы делаете. Ну а теперь самое интересное - кому куда можно ходить. Доступ к вашему прокси-серверу. Squid имеет очень гибкую систему управлением доступом к нему. Для начала вы можете пропустить все до строки (до нее лишь стандартные определения правил): # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS .... Дальше рекомендуется удалить раскомментированные строчки с переменными http_access, icp_access и miss_access. Опишем наших локальных клиентов (и наши домены если они есть): acl localclients src 10.0.0.0/255.0.0.0 acl localdomain dstdomain mydomain.com Доступ (в общем понятии этого слова) своим клиентам а остальным нет: http_access allow localhost http_access allow localclients http_access deny all Доступ к нашему серверу от дочерних прокси-серверов (если в локальной сети еще кто-то захочет поставить себе прокси сервер с опцией parent или sibling на вас): icp_access allow localclients icp_access deny all Доступ к нашему серверу для запросов во внешнюю сеть. Если http_access разрешен, a miss_access нет для какого-то клиента, единственное что он сможет сделать - это получать только те URL которые лежат у нас в дисковом кэше. miss_access allow localclients miss_access deny all Еще один нюанс: настройка туда куда нам ходить самим. always_direct allow localdomain always_direct deny all never_direct deny localdomain never_direct allow all Первый запуск squid. Перед первым запуском следует выполнить команду squid -z для инициализации дискового кэша. Потом /etc/rc.d/init.d/squid start Теперь с локальной машины вы можете запустить Netscape Communicator, и (предварительно прописав в его настройках Edit->Preferences->Advanced->Proxies- >Manual->HTTP Proxy IP адрес вашего прокси сервера и порт 3128) попробовать сходить на какой-нибудь WWW-сайт. Более полную документацию вы сможете найти в директории /usr/doc/squid.

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1.1, MCNet (?), 13:05, 26/04/2003 [ответить]  
  • +/
    Мужики, я знаю, что это как два пальца, но долблюсь вторую неделю. Есть три (лок) интерфейса,
    каждый из которых пингует машины своей подсети. Однако подсети друг друга не видят. Ответьте, плиз. ОС: RedHat7.3, Slackware9.0.
    (Если кто из знающих правельный ответ живет в Крыму - могу укатать пивом/водкой/вином/етц по самое оно).
     
     
  • 2.5, nplm (?), 18:25, 18/03/2005 [^] [^^] [^^^] [ответить]  
  • +/
    route add default gw бла бла бла
     

  • 1.2, _NoSoPiRa (?), 23:55, 01/06/2003 [ответить]  
  • +/
    Народ кто знает как в Mandrake 9.0 перевести модем из
    тонового в импульсный режим...
     
     
  • 2.3, alex (?), 13:13, 06/06/2003 [^] [^^] [^^^] [ответить]  
  • +/
    А при чем сдесь мандрейк? в модем должны уйти команды ATDT5553333 - тональный набор, ATDP5553333 - импульсный.
     

  • 1.4, Alen (??), 14:16, 22/05/2004 [ответить]  
  • +/
    Народ помогите, стоят 4 сетевухи - 2 наружу - еще 2 во внутрь. Необходимо, чтобы одни ip-адреса ходили только через один / остальные ч-з другой...
     
  • 1.7, Алексей (??), 15:04, 31/05/2011 [ответить]  
  • +/
    Уважаемые специалисты!!! Подскажите пожалуйста программу с графическим интерфейсом или как проще сделать для начинающего пользователя дебиан настройки параметра скороси сетевой карты чтобы зафиксировать к примеру 10 мегабит или 100 дуплекс и т.д.
     

    игнорирование участников | лог модерирования

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру