|
||||||||||||||
|
||||||||||||||
|
Новости
20 бoлeзнeй oт кoта
Опасность вейпинга
Вpeднa ли coя жeнщинaм
Вcя пpавда o яйцаx
Вpaчи нaпoмнили o pискe зapaзиться гeпaтитoм в сaлoнaх кpaсoты
В кaкoе время сyтoк лyчше не лечиться
Tиxий чаc дважды в нeдeлю cнижаeт pиcк инфаpкта и инcульта в два pаза
Слaдкaя гaзиpoвкa вoздействyет нa opгaнизм
Почeмy витaминныe добaвки нe пpиноcят пользы
|
Разделение и учет трафика можно организовать двумя основными путями: настройкой маршрутизации в связке с биллинговой системой или использованием прокси-сервера. Обе схемы равноправны и применяются достаточно широко. Сначала рассмотрим наиболее простую в реализации: использование прокси-сервера. Общий принцип такой: каждый пользователь ЛС прописывает в браузере IP и порт провайдерского прокси-сервера, после чего все запросы браузер отправляет на определенный порт твоего Линукс-сервера. Где программа-демон, слушающая этот порт, смотрит на IP отправителя и на конечную цель пакета и решает, что делать: для локальных запросов обработать сразу, а для запросов во внешние сети сначала посмотреть на внутренний кэш и только потом, не найдя там необходимых файлов, отправить запрос далее в интернет. Если же запрашиваемая страница есть в кэше прокси, она будет просто извлечена оттуда и отправлена пользователю. Плюсы такой организации шлюза: легкость настройки, управления, бесплатность (прокси-сервер есть в любом дистрибутиве Линукса). А вот минусы часто заставляют переходить на более высокий уровень, применяя полноценную биллинг-систему (которым в этом номере посвящена одна из статей). Дело в том, что у прокси есть огромные ограничения. Первое – поддерживаются только НТТР и FTP. Прокси-сервер заметно замедляет работу сетевого подключения в целом, ведь перед отправкой запроса в инет пакет подвергается анализу, а если таких пакетов очень много, сервер может задуматься надолго.
У биллинг-систем эти недостатки проявляются намного меньше. Так, учет может вестись по всем протоколам и портам, они не тормозят сервер при интенсивной работе юзеров в интернете, да и возможностей у них побольше.
Избитая тема: установка файрвола на сервак. Не верь тем, кто говорит, что iptables будет только грузить машину и от реальных атак не спасет. Спасет и еще как. Да и не только от атак, но и от ненужных поползновений юзеров в сети.
Определимся сначала с теорией фильтрации пакетов. Я считаю, что сервер всегда должен отвечать на запросы по ICMP протоколу (пинги), а если ты следишь за безопасностью, то знаешь, что никакой “ping of death” серверу не страшен. А вот польза от разрешения ответов на пинг запросов состоит в том, что ты всегда сможешь контролировать состояние сервера. Можно даже посоветовать использовать специальные скрипты, которые в случае прекращений сервером ответов на пинги отсылают тебе рапорт на мобилу.
Для правильной работы Apache необходимо разрешить 80 порт, если ты его закроешь, то сайт будет недоступен из интернета. Из соображений безопасности своевременно обновляй Apache и грамотно разбей винт сервера. Аналогичная политика необходима для 110 порта. Это стандартное место для POP3 демона. Если ты хочешь, чтобы пользователи могли получать свою почту из любого места земного шара, то открывай его полностью, как 80 порт, а если только из локалки - читай пример FTP фильтрования. Нужно разрешить пользователям локальной сети использовать 443 порт (SSL соединение). Еще один стандартный порт - 21. За ним стоит демон FTP сервера. Если у тебя настроен FTP доступ, то этот порт на сервере открыт как для локальной сети, так и для интернета. Но нас такое положение не устраивает со стороны защищенности сервера - фтп доступ для пользователей из интернета нам совершенно не нужен. Закрывать 21 порт наглухо нельзя - локальным пользователям необходим FTP сервер. Поэтому с помощью вот такой команды:
iptables –I input –i eth1 –p tcp –dport 21 –j drop
уберем доступ со всех IP, не принадлежащих к твоей сети. Вопрос с 21 портом решен. Аналогично необходимо разделить 137, 138, 139 порты. Они отвечают за работу сетевого окружения в виндах, и именно их слушает серверная самба. Локальным пользователям эти порты должны быть доступны, а инет-общественности - нет. Делается это так же:
iptables –I input –i eth1 –p tcp –dport 137 –j drop
iptables –I input –i eth1 –p tcp –dport 138 –j drop
iptables –I input –i eth1 –p tcp –dport 139 –j drop
Отдельно хочется выделить 25 порт(SMTP). Лучше всего, с точки зрения безопасности, разрешить использовать этот сервис только локальным пользователям и модемщикам. То есть почту, используя твой сервер, могут отправлять только эти группы людей. Если ты захочешь разрешить отправку с любого IP, то будь готов к тому, что спамеры перегрузят канал сервера своими wanna-enlarge-you-hren-now :). Решением этой проблемы может служить использование авторизации на SMTP протоколе, но это уже другая история.
Кроме вышеназванных, необходимо разрешить порты, на которых висит прокси-сервер, если ты его используешь, аську, если она не через прокси, IRC чат, если не используешь особую маршрутизацию; для сервака с контрой используй политику FTP фильтра, для всех чисто локальных сервисов - принцип FTP фильтра необходим.
Все остальные порты необходимо полностью закрыть как для внешних соединений, так и для локальных пользователей, используя политику Drop.
Компилируем и конфигурируем. Для включения поддержки антиспамовых баз добавь эти строки в конфиг файл:
FEATURE (blacklist_recipients)dnl
FEATURE(dnsbl)dnl
FEATURE('dnsbl', 'relays.ordb.org', 'Spam bloked)
FEATURE(dnsbl,'inputs.orbz.org', 'Input Spam bloked)
FEATURE(dnsbl,'bl.spamcop.net', 'Spam blocked?$&{client_addr}')
FEATURE(dnsbl,'ex.dnsbl.org', 'Spam bloked)
FEATURE(dnsbl, 'relays.osirusoft.com', 'Spam bloked)
После этого выполняем команды:
# m4 ../m4/cf.m4 sendmail.mc > /etc/mail/sendmail.cf
# cd /usr/ports/mail/procmail
# make
# makeinstall
# cd /etc/mail
В результате мы получаем собранный и подготовленный к настройке сендмайл. Настроим его. Для начала отредактируем файл /etc/rc.conf:
defaultrouter="181.235.178.xxx" # шлюз
hostname="localka.ru" # доменное имя твоего хоста
ifconfig_xl0="inet 193.215.78.xxx netmask 255.255.255.0"
kern_securelevel_enable="NO" # используем файрвольную безопасность :)
nfs_reserved_port_only="NO"
sendmail_enable="YES"# Включаю sendmail
sendmail_flags="-bd -q30m"
sshd_enable="YES" # необходимо для отладки и админинга системы
usbd_enable="NO"
inetd_enable="YES"#Для pop3 юзаем qpopper, работающий под inetd
firewall_enable="YES" # Поддержка межсетевого экрана
firewall_type="filename"#
firewall_script="/etc/firewall.conf"# правила firewall’a.
firewall_quiet="NO"# конфиги файрвола в отдельном файле.
После этого настраивай файрвол, как было указано выше. Самое время перезапустить систему.
Теперь давай взглянем на те вещи, которые способны превратить заурядный сервак в удобный. Первой такой фичей я считаю защиту пользователей от спама. Реализуется это с помощью Real-time Blackhole List. Что можно приблизительно истолковать как «надстройка над стандартным сендмайлом, позволяющая, смотря на отправителя и заголовок письма, находить спамерские послания и удалять их сразу» :). Периодически база спамерских E-mail’ов обновляется с главного сервера и эффективность защиты повышается. Минусов у системы гораздо меньше, чем плюсов, поэтому задумайся о доработке сервера. Еще один вариант антиспамовой обороны состоит в том, что создается особая база данных разрешенных почтовых адресов отправителей. И если письмо имеет заголовок From, которого нет в этой базе, то письмо ложится на сервере в отдельную папку и получателю отправляется запрос, что нужно сделать с письмом, какое правило создать для него. Конфигурируется такая защита в файле /etc/mail/access. Например, так:
SCO.com REJECT ; Удалить сообщения с этого домена
Microsoft.com REJECT
[email protected] OK ; с этого адреса принимается любая почта
xakep.ru RELAY ; принимаем и можем пересылать почту от этого домена
Еще необходимо установить и настроить антивирусную защиту. Под Линукс лидером считается Dr.Web (www.drweb.ru/get/). Скачав последнюю сборку и обновив базы, запускаем его.
Собственно этот пункт описывает настройку самого главного модуля сервера. Ведь необходимо, прежде всего, дать пользователям интернет, а уже потом все остальное. Первый способ – прокси-каскад - мы уже описали. Теперь поговорим о более прогрессивном и быстром способе раздачи интернета, о маршрутизации. У нас есть два настроенных сетевых интерфейса: eth0 и eth1. Причем eth0 смотрит в локальную сеть и имеет IP-адрес 192.168.0.1 (один из стандартных серверных IP-адресов), а eth1 выходит в интернет, пусть его ИП будет 222.222.222.222 (ни на кого не намекаю). В Линуксе, начиная с 2.2 ядер, для обслуживания процесса роутинга используют утилиту IP. Именно ей мы и будем поднимать перекидывание пакетов. Сначала назначим для локальной сетевухи IP-адрес:
# ip addr add 192.168.0.1 brd + dev eth0
То же самое - для инет-карты:
# ip addr add 222.222.222.222 brd + dev eth0
Проверяем, как все встало:
#ip addr ls eth0 ; команда отображает состояние локальной
#ip addr ls eth1 ; интернет сетевой карты.
Для управления таблицами маршрутизации необходимо знать следующие команды:
ip route add - добавить новый маршрут
ip route change - изменить маршрут
Если у тебя объединяется больше двух сетей, то необходимо показать Линуксу, как следует отправлять пакеты. К примеру, есть твоя сеть, на ее выходе стоит Linux сервер и дружественная сеть аналогичной топологии, а серверы их соединены локалкой. И если у вас не пересекаются IP-адреса, то можно организовать доступ твоих пользователей в его локальную сеть. Делается это простой командой:
# ip route add 192.168.2.0 via 192.168.100.43
Где 192.168.2.* - его сеть, а 192.168.100.43 - адрес сервера друга в глобальной локальной сети. После этого твои юзеры напрямую смогут общаться с его локальной сетью. Чтобы это общение было двусторонним - выполни аналогичные команды на том роутере.
На главную | Cookie policy | Sitemap