The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Покритикуйте iptables правила?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (Apache, http-серверы)
Изначальное сообщение [ Отслеживать ]

"Покритикуйте iptables правила?"  +/
Сообщение от Otcp (ok) on 26-Окт-12, 13:30 
Надеюсь меня никуда не оттправят, составил сам как смог iptable правила, ситуация примерно такая:

1. Есть сервер щлюз c nginx
2. За ним несколько серверов (не все web сервера т.е., там еще та же mysql репликация отдельно для бэкапов на довольно дохлом железе)
Хочу настроить iptables, с учетом того что удаленный доступ по ftp/ssh мне не нужен, почты тоже нет, хочется все лишнее запретить и нужно оставить, вот так примерно я сделал... Но не знаю, покритикуйте пожайлуста, посоветуйте что не так? Интернет всем нужен для обновлений и т.п., поэтому и NAT тоже есть, делал по примерам)) правда под себя переделал кое что. Система Debian, eth0 - интернет, eth2 - локалка

# Для очистки таблицы правил
iptables -F
iptables -X

# Добавляем правила по умолчанию
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# Разрешаем доступ по localhost
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Эти правила служат для того, чтобы для каждого разрешающего правила не пришлось прописывать обратное ему (для прохождения ответных пакетов).
# Короче говоря, позволяют входящие и исходящие соединения, инициированные уже установленными соединениями
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Далее действуем по мере необходимости
# Разрешаем доступ к серверу из локальной сети по протоколу ssh
iptables -A INPUT -p tcp -m tcp -s 192.168.2.0/24 --dport 22 -j ACCEPT

# Разрешаем доступ к серверу из локальной сети по протоколу ftp
iptables -A INPUT -p tcp -m tcp -s 192.168.2.0/24 --dport 21 -j ACCEPT

# Разрешаем пинговать сервер из локальной сети
iptables -A INPUT -p icmp -m icmp --icmp-type echo-request -s 192.168.2.0/24 -j ACCEPT
iptables -A OUTPUT -p icmp -m icmp --icmp-type echo-reply -d 192.168.2.0/24 -j ACCEPT

# Разрешаем серверу доступ к внешним (интернетовским) DNS-серверам
iptables -A OUTPUT -p tcp -m tcp -o eth0 --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp -m udp -o eth0 --dport 53 -j ACCEPT

# Разрешаем серверу доступ к внешним http-серверам
iptables -A OUTPUT -p tcp -m tcp -o eth0 --dport 80 -j ACCEPT

# Даём доступ к серверу по http из интернета
iptables -A INPUT -p tcp -m tcp -i eth0 --dport 80 -j ACCEPT

# Разрешаем хождение транзитных пакетов
iptables -A FORWARD -i eth0 -s 192.168.2.0/24 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth2 -i eth0 -d 192.168.2.0/24 -j ACCEPT

# NAT
iptables -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j SNAT --to-source <мой-внешний-ip>

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Покритикуйте iptables правила?"  +/
Сообщение от Otcp (ok) on 26-Окт-12, 14:34 
поправил еще
# Разрешаем хождение транзитных пакетов
iptables -A FORWARD -i eth0 -d 192.168.2.0/24 -j ACCEPT
iptables -A FORWARD -o eth0 -s 192.168.2.0/24 -j ACCEPT
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Покритикуйте iptables правила?"  +/
Сообщение от vitroom on 26-Окт-12, 15:17 
>[оверквотинг удален]
> iptables -A OUTPUT -p tcp -m tcp -o eth0 --dport 80 -j
> ACCEPT
> # Даём доступ к серверу по http из интернета
> iptables -A INPUT -p tcp -m tcp -i eth0 --dport 80 -j
> ACCEPT
> # Разрешаем хождение транзитных пакетов
> iptables -A FORWARD -i eth0 -s 192.168.2.0/24 -o eth0 -j ACCEPT
> iptables -A FORWARD -i eth2 -i eth0 -d 192.168.2.0/24 -j ACCEPT
> # NAT
> iptables -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j SNAT --to-source <мой-внешний-ip>

А, просто OUTPUT в ACCEPT нельзя, или ваш сервер кишит руткитами и Вы ему не доверяете?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Покритикуйте iptables правила?"  +/
Сообщение от Otcp (ok) on 27-Окт-12, 02:24 
>[оверквотинг удален]
>> # Даём доступ к серверу по http из интернета
>> iptables -A INPUT -p tcp -m tcp -i eth0 --dport 80 -j
>> ACCEPT
>> # Разрешаем хождение транзитных пакетов
>> iptables -A FORWARD -i eth0 -s 192.168.2.0/24 -o eth0 -j ACCEPT
>> iptables -A FORWARD -i eth2 -i eth0 -d 192.168.2.0/24 -j ACCEPT
>> # NAT
>> iptables -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j SNAT --to-source <мой-внешний-ip>
> А, просто OUTPUT в ACCEPT нельзя, или ваш сервер кишит руткитами и
> Вы ему не доверяете?

Да я думал чем больше закрыть тем спокойнее будет, разве нет?

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

3. "Покритикуйте iptables правила?"  +/
Сообщение от uptime (??) on 26-Окт-12, 16:17 
> Хочу настроить iptables, с учетом того что удаленный доступ по ftp/ssh мне
> не нужен, почты тоже нет, хочется все лишнее запретить и нужно
> # Разрешаем доступ к серверу из локальной сети по протоколу ssh
> iptables -A INPUT -p tcp -m tcp -s 192.168.2.0/24 --dport 22 -j
> ACCEPT

Без указания привязки ко внутреннему интерфейсу, зайти можно и снаружи, видимо пропустили.
Цепочка FORWARD вцелом как-то не очень...

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Покритикуйте iptables правила?"  +/
Сообщение от Otcp (ok) on 27-Окт-12, 02:25 
>> Хочу настроить iptables, с учетом того что удаленный доступ по ftp/ssh мне
>> не нужен, почты тоже нет, хочется все лишнее запретить и нужно
>> # Разрешаем доступ к серверу из локальной сети по протоколу ssh
>> iptables -A INPUT -p tcp -m tcp -s 192.168.2.0/24 --dport 22 -j
>> ACCEPT
> Без указания привязки ко внутреннему интерфейсу, зайти можно и снаружи, видимо пропустили.
> Цепочка FORWARD вцелом как-то не очень...

Понял, поправил, а что с FORWARD не так чем она плохая?

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Покритикуйте iptables правила?"  +/
Сообщение от Otcp (ok) on 27-Окт-12, 02:30 
> Цепочка FORWARD вцелом как-то не очень...

Т.е. "как-то" не очень это как? Я не все что нужно указал? Или в том что есть ошибка?


Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

7. "Покритикуйте iptables правила?"  +/
Сообщение от uptime (??) on 28-Окт-12, 20:11 
>> Цепочка FORWARD вцелом как-то не очень...
> Т.е. "как-то" не очень это как? Я не все что нужно указал?
> Или в том что есть ошибка?

Возможно не совсем понял что Вам необходимо от шлюза, но если что... :-)
Используйте модуль conntrack для отслеживания соединений, в т.ч. для FORWARD.
Разрешайте инициализацию NEW соединений на внутреннем интерфейсе.
Выглядит примерно так:

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -m state --state NEW -i eth2 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -m state --state NEW -i eth2 -p tcp,udp --dport 53 -j ACCEPT

iptables -A INPUT -m state --state NEW -i eth2 -p tcp -s 192.168.2.0/24 --dport 22 -j ACCEPT

Тогда предыдущие правила для FORWARD уже будут не нужны.
Про OUTPUT Вам уже говорили, ставьте в ACCEPT.


>> iptables -A INPUT -p tcp -m tcp -s 192.168.2.0/24 --dport 22 -j ACCEPT
>Без указания привязки ко внутреннему интерфейсу, зайти можно и снаружи, видимо пропустили.

Здесь не совсем прав, зайти со внешнего адреса конечно не получится (легко),
т.к. фильтруете по адресам (не заметил), но привязка к интерфесу часто бывает желательна.

Пара линков по теме:
http://www.frozentux.net/documents/iptables-tutorial/
http://firehol.sourceforge.net/

Удачи!

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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