Категории
Самые читаемые

Linux - Алексей Стахнов

Читать онлайн Linux - Алексей Стахнов

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 104 105 106 107 108 109 110 111 112 ... 151
Перейти на страницу:

В том случае, если ответ сервера не помещается в одной UDP-датаграмме, между клиентом и сервером устанавливается TCP-соединение. Обычно это происходит при передаче данных зоны между первичным и вторичным DNS-серверами. Для этого случая необходимо в цепочку правил добавить следующее правило:

ipchains -A input -i $EXTERNAL_INTERFACE -р tcp -s $IPADDR $UNPRIVPORTS -d $NAMESERVER 53 -j ACCEPT ipchains -A output -i $EXTERNAL_INTERFACE -p tcp -s $IPADDR $UNPRIVPORTS -d $NAMESERVER 53 -j ACCEPT

В том случае, если у вас есть локальный DNS-сервер, и вы предоставляете его услуги каким-либо клиентам (например, компьютерам вашей локальной сети), желательно ограничить конкретным списком компьютеров доступ к вашему локальному DNS-серверу. Для этого воспользуйтесь следующими правилами:

# разрешение обмена между клиентом и DNS-сервером

ipchains -A input -i $EXTERNAL_INTERFACE -р udp -s Cclients.addr> $UNPRIVPORTS -d $IPADDR 53 -j ACCEPT

ipchains -A output -i $EXTERNAL_INTERFACE -p udp -s cclients.addr> $UNPRIVPORTS -d $IPADDR 53 -j ACCEPT

# разрешение обмена между DNS-серверами

ipchains -A input -i $EXTERNAL_INTERFACE -p udp -s cclients.addr> 53 -d $IPADDR -j ACCEPT

ipchains -A output -i $EXTERNAL_INTERFACE -p udp -s cclients.addr> 53 -d $IPADDR -j ACCEPT

Следующие правила используются тогда, кода необходима передача с использованием протокола TCP:

ipchains -A input -i $EXTERNAL_INTERFACE -p tcp -s <dns.sec> $UNIPRIVPORTS -d $IPADDR 53 -j ACCEPT ipchains -A output -i $EXTERNAL_INTERFACE -p tcp! -y -s $IPADDR 53 -d <dns.sec> $UNIPRIVPORTS -j ACCEPT

E-mail

Для приема и пересылки электронной почты используются следующие протоколы:

• SMTP порт 25 TCP;

• POP3 порт 110 TCP;

• IMAP порт 143 TCP.

При создании правил, разрешающих функционирование SMTP-протокола, будем считать, что наша почта отправляется через провайдера.

Для передачи почты по SMTP-протоколу на почтовый сервер провайдера необходимо добавить следующие правила:

ipchains -A input -i $EXTERNAL_INTERFACE -р tcp -s $IPADDR $UNIPRIVPORTS -d $SMTP_GATEWAY 25 -j ACCEPT ipchains -A output -i $EXTERNAL_INTERFACE -p tcp! -y -s $ SMT P_GATEWAY 25 -d $IPADDR $UNIPRIVPORTS -j ACCEPT

В том случае, если у вас в локальной сети присутствует свой собственный SMTP-сервер, правила фильтрации несколько изменяются и принимают следующий вид:

ipchains -A input -i $EXTERNAL_INTERFACE -р tcp -s $IPADDR $UNIPRIVPORTS -d $ANYWHERE 25 -j ACCEPT ipchains -A output -i $EXTERNAL_INTERFACE -p tcp! -y -s $ANYWHERE 25 -d $IPADDR $UNIPRIVPORTS -j ACCEPT

Для получения электронной почты используется протокол POP3 или протокол IMAP. Для нормального функционирования POP3-протокола необходимо для нашего брандмауэра добавить следующие правила:

ipchains -A input -i $EXTERNAL_INTERFACE -р tcp -s $IPADDR $UNIPRIVPORTS -d $POP_SERVER 110 -j ACCEPT ipchains -A output -i $EXTERNAL_INTEREACE -p tcp! -y -s $POP_SERVER 110 -d $IPADDR $UNIPRIVPORTS -j ACCEPT

Если вы хотите предоставить некоторым внешним хостам доступ к вашему POP3-серверу – используйте следующие правила:

ipchains -A input -i $EXTERNAL_INTEREACE -р tcp -s <pop.clients> $UNIPRIVPORTS -d $IPADDR 110 -j ACCEPT ipchains -A output -i $EXTERNAL_INTEREACE -p tcp! -y -s $IPADDR 110 -d <pop.clients> $UNIPRIVPORTS -j ACCEPT

В том случае, если у вас используется IMАР-протокол, добавьте следующие правила:

ipchains -A input -i $EXTERNAL_INTERFACE -р tcp -s $IPADDR $UNIPRIVPORTS -d $IMAP_SERVER 143 -j ACCEPT ipchains -A output -i $EXTERNAL_INTERFACE -p tcp! -y -s $IMAP_SERVER 143 -d $IPADDR $UNIPRIVPORTS -j ACCEPT

Если вы хотите предоставить некоторым внешним хостам доступ к вашему IMАР-серверу – используйте следующие правила:

ipchains -A input -i $EXTERNAL_INTERFACE -р tcp -s <pop.clients> $UNIPRIVPORTS -d $IPADDR 143 -j ACCEPT ipchains -A output -i $EXTERNAL_INTERFACE -p tcp! -y -s $IPADDR 143 -d <pop.clients> $UNIPRIVPORTS -j ACCEPT

NNTP

Сервер новостей использует порт 119 и протокол TCP. Для обеспечения нормального функционирования сервера новостей необходимо добавить три набора правил.

Если вы используете сервер новостей вашего провайдера, то для получения и отправки статей в группы новостей необходимо добавить следующие правила:

ipchains -A input -i $EXTERNAL_INTERFACE -р tcp -s $IPADDR $UNIPRIVPORTS -d $NEWS_SERVER 119 -j ACCEPT ipchains -A output -i $EXTERNAL_INTERFACE -p tcp! -y -s $NEWS_SERVER 119 -d $IPADDR $UNIPRIVPORTS -j ACCEPT

В том случае, если у вас в локальной сети есть свой собственный сервер новостей, и вы хотите разрешить извне доступ определенным хостам – воспользуйтесь следующими правилами:

ipchains -A output -i $EXTERNAL_INTERFACE -р tcp -s <ip.clients> $UNIPRIVPORTS -d $NEWS_SERVER 119 -j ACCEPT ipchains -A input -i $EXTERNAL_INTERFACE -p tcp! -y -s $NEWS_SERVER 119 -d <ip.clients> $UNIPRIVPORTS -j ACCEPT

А поскольку вашему локальному серверу новостей необходимо получать и передавать статьи от сервера новостей провайдера – воспользуйтесь следующими правилами:

ipchains -A output -i $EXTERNAL_INTERFACE -р tcp -s $IPADDR $UNIPRIVPORTS -d $NEWS_SERVER 119 -j ACCEPT ipchains -A input -i $EXTERNAL_INTERFACE -p tcp! -y -s $NEWS_SERVER 119 -d $IPADDR $UNIPRIVPORTS -j ACCEPT

Telnet

Telnet использует порт 23 протокол TCP. Применение протокола удаленного доступа Telnet было очень популярно еще три-четыре года назад, однако из-за того, что этот протокол абсолютно не защищен, а также вследствие появления альтернативы в виде протокола SSH – категорически не рекомендуется разрешать доступ извне по данному протоколу.

SSH

Протокол SSH использует порт 22 и протокол TCP. Защищенная замена Telnet и r-командам. При функционировании использует привилегированные порты 513—1023.

Чтобы применять протокол SSH для доступа из локальной сети к Интернету SSH-серверам необходимо ввести следующие правила:

ipchains -A output -i $EXTERNAL_INTERFACE -р tcp -s $IPADDR $UNIPRIVPORTS -d $ANYWHERE 22 -j ACCEPT

ipchains -A input -i $EXTERNAL_INTERFACE -p tcp! -y -s $ANYWHERE 22 -d $IPADDR $UNIPRIVPORTS -j ACCEPT

ipchains -A input -i $EXTERNAL_INTERFACE -p tcp -s $ANYWHERE $SSH_PORTS -d $IPADDR 22 -j ACCEPT

ipchains -A output -i $EXTERNAL_INTERFACE -p tcp! -y -s $IPADDR 22 -d $ANYWHERE $SSH_PORTS -j ACCEPT

Следующие правила разрешают доступ удаленным клиентам к вашим локальным SSH-серверам:

ipchains -A input -i $EXTERNAL_INTERFACE -р tcp -s $ANYWERE $UNIPRIVPORTS -d $IPADDR 22 -j ACCEPT

ipchains -A output -i $EXTERNAL_INTERFACE -p tcp! -y -s $IPADDR 22 -d $ANYWHERE $UNIPRIVPORTS -j ACCEPT

ipchains -A -i $EXTERNAL_INTERFACE -p tcp -s $IPADDR $SSH_PORTS -d $ANYWERE 22 -j ACCEPT

ipchains -A input -i $EXTERNAL_INTERFACE -p tcp! -y -s $ANYWHERE 22 -d $IPADDR $SSH_PORTS -j ACCEPT

FTP

Пожалуй один из сложных протоколов, поскольку использует несколько портов (TCP 21, 20). Протокол предусматривает два режима передачи – активный и пассивный канал передачи, что несколько осложняет конфигурацию брандмауэра.

Следующие правила разрешают доступ к удаленным FTP-серверам:

ipchains -A output -i $EXTERNAL_INTERFACE -р tcp -s $IPADDR $UNPRIVPORTS -d $ANYWERE 21 -j ACCEPT ipchains -A input -i $EXTERNAL_INTERFACE -p tcp! -y -s $ANYWHERE 21 -d $IPADDR $ UNPRIVPORTS -j ACCEPT

Следующие правила разрешают устанавливать соединения в режиме активного канала передачи данных:

ipchains -A input -i $EXTERNAL_INTERFACE -р tcp! -y -s $ANYWHERE 20 -d $IPADDR $UNPRIVPORTS -j ACCEPT

ipchains -A output -i $EXTERNAL_INTERFACE -p tcp -s $IPADDR $UNPRIVPORTS -d $ANYWERE 20 -j ACCEPT

ipchains -A output -i $EXTERNAL_INTERFACE -p tcp -s $IPADDR $UNPRIVPORTS -d $ANYWERE $UNPRIVPORTS -j ACCEPT

ipchains -A input -i $EXTERNAL_INTERFACE -p tcp! -y -s $ANYWHERE $UNPRIVPORTS -d $IPADDR $UNPRIVPORTS -j ACCEPT

Для того чтобы к вашему локальному FTP-серверу был доступ извне – необходимо ввести следующие правила:

ipchains -A input -i $EXTERNAL_INTERFACE -р tcp -s $ ANYWERE $UNPRIVPORTS -d $IPADDR 21 -j ACCEPT

ipchains -A output -i $EXTERNAL_INTERFACE -p tcp! -y -s $IPADDR 21 -d $ANYWERE $UNPRIVPORTS -j ACCEPT

ipchains -A output -i $EXTERNAL_INTERFACE -p tcp -s $IPADDR 20 -d $ANYWERE $UNPRIVPORTS -j ACCEPT

ipchains -A input -i $EXTERNAL_INTERFACE -p tcp! -y -s $ANYWHERE $UNPRIVPORTS -d $IPADDR 20 -j ACCEPT

ipchains -A input -i $EXTERNAL_INTERFACE -p tcp -s $ANYWHERE $UNPRIVPORTS -d $IPADDR $UNPRIVPORTS -j ACCEPT

ipchains -A output -i $EXTERNAL_INTERFACE -p tcp! -y -s $IPADDR $UNPRIVPORTS -d $ANYWHERE $UNPRIVPORTS -j ACCEPT

HTTP Протокол HTTP использует порт 80 и протокол TCP. Для того чтобы локальные клиенты могли получить доступ к Web-серверам Интернета, необходимо ввести следующие правила:

ipchains -A output -i $EXTERNAL_INTERFACE -р tcp -s $IPADDR $UNPRIVPORT -d $ANYWHERE 80 -j ACCEPT ipchains -A input -i $EXTERNAL_INTERFACE -p tcp! -y -s $ANYWHERE 80 -d $IPADDR $UNIPRIVPORTS -j ACCEPT

В том случае, если у вас в локальной сети есть свой собственный Web-сервер, и вы хотите разрешить доступ извне – воспользуйтесь следующими правилами:

ipchains -A input -i $EXTERNAL_INTERFACE -р tcp -s $ANYWHERE $UNIPRIVPORTS -d $IPADDR 80 -j ACCEPT ipchains -A output -i $EXTERNAL_INTERFACE -p tcp! -y -s $IPADDR 80 -d $ANYWHERE $UNIPRIVPORTS -j ACCEPT

Помимо перечисленных сервисов у вас могут действовать и другие, однако, зная протокол, используемые порты и опираясь на ранее приведенные правила, не составит труда добавить соответствующие правила для нормального функционирования ваших сервисов. Запрет доступа с «неблагонадежных» узлов

Если вы обнаружите попытки сканирования портов или другие сомнительные действия, которые периодически предпринимаются с одного и того же хоста, желательно вовсе запретить обращение к системе с этого адреса.

Пример запрещающего правила приведен ниже:

ipchains -I input -i $EXTERNAL_INTERFACE -s <адрес/маска> -j DENY

Согласно этому правилу удаляется любой пакет, независимо от протокола и номера исходного порта или порта назначения.

Поддержка обмена в локальной сети

Для поддержки локальной сети, стоящей за брандмауэром, следует добавить некоторые правила. Эти правила необходимы для того, чтобы разрешить доступ к внутреннему сетевому интерфейсу брандмауэра и направить трафик в глобальную сеть. Как только на компьютере-брандмауэре будет реализована поддержка двух или более интерфейсов, он превратится в бастион.

Разрешение доступа к внутреннему сетевому интерфейсу брандмауэра

При работе с небольшими сетями вряд ли есть основание ограничивать доступ к брандмауэру из локальной сети. Следующие правила разрешают все виды взаимодействия между брандмауэром и локальной сетью:

ipchains -A input -i $INTERNAL_INTERFACE -s LAN -j ACCEPT ipchains -A output -i $Internal_INTERFACE -s LAN_1 -j ACCEPT

Обратите внимание, что данные правила разрешают обмен лишь с брандмауэром. Доступ к Интернету отсутствует, поскольку по умолчанию компьютер, выполняющий роль брандмауэра, не производит динамической маршрутизации пакетов и не поддерживает статических маршрутов. Чтобы обеспечить маршрутизацию пакетов через брандмауэр, надо задать дополнительные правила.

Выбор конфигурации для пользующейся доверием локальной сети

1 ... 104 105 106 107 108 109 110 111 112 ... 151
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Linux - Алексей Стахнов.
Комментарии