Колисниченко Д.Н. - Linux-сервер своими руками (1077324), страница 81
Текст из файла (страница 81)
В случае со шлюзом включитеданную опциюПрослеживает FTP-соединения. Включите эту опцию, если на вашемкомпьютере установлен FTP-сервер. Из-за большого количестваFTP-запросов модуль IP_NF_CONNTRACK не в состоянии проследитьвсе FTP-соединения, поэтому в помощь ему добавлена опцияCONFIG IP NF FTPНеобходимая для работы IPTables опция. Без ее включения выне сможете использовать IPTablesНеобязательная опция. Позволяет ограничить количество пакетовпередаваемых/принимаемых за промежуток времениПозволяет блокировать пакеты, используя МАС-адрес (а не IP-адрес)Все остальные опции, связанные с IPTables, содержат в своем названиислово MATCH, например, CONFIG_IP_NF_MATCH_MARK.
Эти опцииразрешают выполнять определенные действия над пакетами. Действия надпакетами, как вы уже знаете, задаются с помощью опции —j. Использованиеэтой опции аналогично как для IPChains, так и для IPTables. Назначениевсех возможных действий вы можете узнать из документации по IPTables.Ранее, на примере IPChains, мы рассмотрели два основных действия ACCEPT и DENY. В IPTables вместо действия DENY нужно использоватьаналогичное ему действие DROP. А вместо MASQ (см. п.
14.4) MASQUERADE.345БастионыЯ не буду рассматривать различия таблиц (tables) и цепочек (chains), неусложняя тем самым вам жизнь избытком лишней информации, остановлюсь лишь на рассмотрении некоторых полезных примеров.Представим, что вам нужно что-либо сделать с пакетами, приходящимиот узла с МАС-адресом 11:12:13:14:15:16. Выделить данный пакет можно спомощью правила iptables -A INPUT —mac-source 11:12:13:14:15:16.Дальнейшие операции над пакетом вы уже определите сами, с помощьюопции -j.
Если же вам нужно выделить все пакеты, кроме тех, которыеприсылает вам узел с МАС-адресом 11:12:13:14:15:16, то нужно использоватьотрицание — !Допустим, что теперь вам нужно ограничить число пакетов, присылаемым узлом с МАС-адресом 11:12:13:14:15:16, например, не более 10 пакетовв минуту. Делается это следующим образом: iptables -A INPUT -га limit —limit10/minute. Промежуток времени можно указать в секундах (second), минутах(minute) и часах (hour).IPTables позволяет выделять (а потом производить с ними операции)пакеты одновременно, указав несколько портов, например:iptables -A INPUT -p tcp -m multiport -source-port 22,53,80,110Порты указываются через запятую.
Вы можете указать максимум 15портов. Вместо портов источника вы можете указать порты назначения,используя опцию —destination-port. Если вы хотите одновременно указатькак порты источника, так и порты назначения, используйте опцию —port:iptables -A INPUT -p tcp -m multiport -port 22,53,80,110Теперь уже перейдем на более высокий уровень. Если раньше мы моглиотфильтровывать пакеты, исходящие от определенного компьютера, то теперь мы можем выделять пакеты отдельных пользователей. Например, вамнужно выделить все исходящие от пользователя с UID 500 пакеты.
Этоможно сделать с помощью команды:iptables -A OUTPUT -m owner —uid-owner 500Естественно, вы сможете это сделать только для исходящих пакетов,поскольку вы не знаете, какой UID имеет пользователь другой системы, темболее, что информация об этом не передается по протоколу TCP.Аналогично вы можете ограничивать исходящие пакеты группы илипроцесса:iptables -A OUTPUT -m owner —gid-owner 0iptables -A OUTPUT -m owner -pid-owner 78Пакетный фильтр IPTables обладает значительно большими возможностями по сравнению с IPChains, но на практике вы вряд ли будете ихиспользовать: в основном используются возможности IPChains, описанные вп. 14.1...14.4.34615Прокси-сервер SQUID15.1.
Что такое SQUID?SQUID — это программа, которая получает HTTP/FTP-запросы клиентов и по ним обращается к ресурсам Интернет. Применение прокси-сервера(squid) дает возможность использовать фиктивные IP-адреса во внутреннейсети (Masquerading — маскарадинг), увеличивает скорость обработки запросапри повторном обращении (кэширование), а также обеспечивает дополнительную безопасность.Нет смысла устанавливать прокси на своей домашней машине, так какфункции кэширования выполняет браузер. Прокси-сервер стоит применятьлишь в том случае, если в вашей сети три-четыре компьютера, которымнужен выход в Интернет. В этом случае запрос от браузера к прокси-серверуобрабатывается быстрее, чем от браузера к ресурсам Интернет, и такимобразом увеличивается производительность.
При этом можно смело установить размер кэша в браузерах клиентов равный 'нулю.SQUID — это нечто большее, чем просто прокси-сервер. Это своеобразный стандарт кэширования информации в сети Интернет. В силу повсеместной распостраненности SQUID, в книге я уделил его конфигурированию большое внимание.Прокси-сервер Squid образуется несколькими программами, в числе которых: сама программа сервера squid, а также программа dnsserver — программаобработки DNS-запросов. Когда запускается программа squid, то она сначалазапускает заданное количество процессов dnsserver, каждый из которых работает самостоятельно и может осуществлять только один поиск в системе DNS.За счет этого уменьшается общее время ожидания ответа DNS.15.2.
Установка SQUIDSQUID может быть установлен из исходных текстов или в виде RPMпакета. Установка RPM-пакета SQUID очень проста — для этого нужноввести команду rpm -ih squid-2.3.STABLE2-3mdk.i586.rpm.347Прокси-сервер SQUIDЯ использую версию squid 2.3. Более новая версия доступна в видеисходных кодов. Исходники можно получить по адресу ftp://ftp.squid.org.Для распаковки исходных кодов, выполните следующие команды:cd / u s r / s r c /gunzip s q u i d - 2 . 3 .
S T A B L E 2 - 3 - s r c . t a r . g ztar xvf s q u i d - 2 . 3 . S T A B L E 2 - 3 - s r c . t a r . g zcd squidТеперь перейдем непосредственно к установке:./configure —prefix=/usr/local/squidmake allmake i n s t a l lSQUID будет установлен в каталог, заданный ключом prefix — /usr/local/squid.Помимо prefix можно пользоваться ключами, представленными в табл. 15.1.Ключи сценария configureТаблица 15.1Ключ--enable-icmpОписаниеИзмерять путь до каждого HTTP-сервера при запросах с помощью ICMP--enable-snmpВключить SNMP-мониторинг--enable-delay-poolsУправление трафиком--disable-wccpОтключить Web Cache Coordination Protocol--enable-kill-parent-hackБолее корректный shutdown--enable-splaytreeПозволяет увеличить скорость обработки ACL/5.3.
Настройка SQUIDСервер SQUID использует файл конфигурации squid.conf, которыйобычно располагается в каталоге / e t c / s q u i d (или / u s r / l o c a l / s q u i d /etc — более ранние версии). Откройте его в любом текстовом редакторе,например, joe/usr/local/squid/etc/squid.conf. Далее выполните следующую последовательность действий:1. Укажите прокси провайдера:cache_peer p r o x y . i s p . r uВ данном случает proxy .isp.ru становится нашим «соседом» (neighbour, peer).2.
Установите объем памяти, доступный squid, и каталог для кэша:cache_mem 65536cache_dir / u s r / l o c a l / s q u i d / c a c h e 1024 16 256где: 65536 — объем оперативной памяти в байтах, который можно использовать под кэш;1024 • - количество мегабайт, отводимое на диске в указанном каталоге под кэш.
В этом каталоге будут храниться кэшированныефайлы. Стоит ли говорить, что если у вас несколько жесткихдисков, то кэш нужно разместить на самом быстром из них.3. Укажите хосты, которым разрешен доступ к прокси-серверу:acl allowed_hosts src 1 9 2 . 1 6 8 . 1 . 0 / 2 5 5 . 2 5 5 . 2 5 5 . 0348Прокси-сервер SQUIDacl localhost src 127.0.0.1/255.255.255.2554. Укажите разрешенные SSL-порты:acl SSL_ports port 4 4 3 5635.
Запретите метод CONNECT для всех портов, кроме указанных в acl SSLjports:http_access deny CONNECT !SSL_portsи запретите доступ всем, кроме тех, кому можно:http_access allow localhosthttp_access a l l o w allowed_hostshttp_access allow SSL_ports http_access deny all6. Пропишите пользователей, которым разрешено пользоваться squid (в рассматриваемом примере это den, admin, developer):ident_lookup onacl allowed_users user den admin developerhttp_access allow allowed_usershttp_access deny allТэги maxium_object_size и maxium_object устанавливают ограничения наразмер передаваемых объектов.Ниже приведен пример запрета доступа к любому URL, который соответствует шаблону games и разрешения доступа ко всем остальным:acl GaMS url_regex gameshttp_access deny GaMShttp_access a l l o w all15.4.
Запуск SQUIDТеперь, когда вы выполнили базовую настройку SQUID, его нужнозапустить:/ u s r / l o c a l / s q u i d / b i n / s q u i d -zПараметр -z необходим для создания (обнуления) каталога, содержащегокэш. Обычно этот параметр нужен только при первом запуске. Некоторыедругие полезные параметры SQUID представлены в табл. 15.2.Параметры SQUIDТаблица 15.2Параметр-а порт-d-f файл-h-k reconfigure-k shutdown-k kill-u порт-s-V-D-N-YОписаниеЗадает порт для входящих HTTP-запросовВключает режим вывода отладочной информации в стандартный поток ошибок (на stderr)Задает файл конфигурацииВыдает справочную информациюПосылает сигнал HUPЗавершение работы прокси-сервераЗавершение без закрытия журналовЗадает порт для входящих 1СР-запросовВключает журналирование с помощью syslogВыдает информацию о версии SQUIDНе делать DNS-тест при запускеНе становиться демоном (фоновым процессом)Более быстрое восстановление после сбоев349Прокси-сервер SQUID75.5.