Правильно ли я настроил iptables ткните на уязвимости

Аватар пользователя lcf

eth0 - внешний фейс
eth1 - внутрений фейс

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -p ICMP -j ACCEPT
iptables -A OUTPUT -p ICMP -j ACCEPT
iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p UDP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p TCP --sport 32768:65535 -j ACCEPT
iptables -A OUTPUT -p UDP --sport 32768:65535 -j ACCEPT
iptables -A INPUT -i eth1 -p TCP --dport 137:139 -j ACCEPT
iptables -A INPUT -i eth1 -p UDP --dport 137:139 -j ACCEPT
iptables -A OUTPUT -o eth1 -p TCP --sport 137:139 -j ACCEPT
iptables -A OUTPUT -o eth1 -p UDP --sport 137:139 -j ACCEPT
iptables -A INPUT -i eth1 -p UDP --sport 137 --dport 32768:65535 -j ACCEPT
iptables -A INPUT -i eth1 -p TCP --dport 80 -j ACCEPT
iptables -A OUTPUT -o eth1 -p TCP --sport 80 -j ACCEPT
iptables -A INPUT -i eth1 -p TCP --dport 22 -j ACCEPT
iptables -A OUTPUT -o eth1 -p TCP --sport 22 -j ACCEPT

iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source EXT_IP
#Разрешающие цепочки для юзеров в сети чтобы могли в инет ходить
#Ivan
iptables -A FORWARD -i eth0 -o eth1 -s 0/0 -d 192.168.7.12 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -s 192.168.7.12 -d 0/0 -j ACCEPT
#Miha
iptables -A FORWARD -i eth0 -o eth1 -s 0/0 -d 192.168.7.89 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -s 192.168.7.89 -d 0/0 -j ACCEPT
#Fedya
iptables -A FORWARD -i eth0 -o eth1 -s 0/0 -d 192.168.7.21 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -s 192.168.7.21 -d 0/0 -j ACCEPT
#Nout
iptables -A FORWARD -i eth0 -o eth1 -s 0/0 -d 192.168.7.98 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -s 192.168.7.98 -d 0/0 -j ACCEPT

Аватар пользователя woodoo

Re: Правильно ли я настроил iptables ткните на уязвимости

Основная претензия - все команды "работают" относительно существующего состояния iptables. По логике - скрипт должен "обнулять" таблицы filter и nat.

Аватар пользователя sergeil

Re: Правильно ли я настроил iptables ткните на уязвимости

Цитата:
lcf пишет:
eth0 - внешний фейс
eth1 - внутрений фейс

OK

Цитата:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

OK

Цитата:
iptables -A INPUT -p ICMP -j ACCEPT
iptables -A OUTPUT -p ICMP -j ACCEPT

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

Не все ICMP одинаково полезны... Для внешнего интерфейса нужно разрешить, IMHO:

Цитата:
destination-unreachable - INPUT/OUTPUT/FORWARD
echo-request (ping) - OUTPUT (FORWARD/INPUT - опционально)
time-exceeded (ttl-exceeded) - INPUT (FORWARD только внитрь опционально)
parameter-problem - INPUT (OUTPUT/FORWARD - опционально)

Остальные ICMP, IMHO, DROP

A)

Цитата:
iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p UDP -m state --state ESTABLISHED,RELATED -j ACCEPT

FORWARD?

Цитата:
iptables -A OUTPUT -p TCP --sport 32768:65535 -j ACCEPT
iptables -A OUTPUT -p UDP --sport 32768:65535 -j ACCEPT

Это в стиле ipchains. Любой процес на сервере сможет беспрепятственно устанавливать соединение...
Не очень строго...

Цитата:
iptables -A INPUT -i eth1 -p TCP --dport 137:139 -j ACCEPT
iptables -A INPUT -i eth1 -p UDP --dport 137:139 -j ACCEPT
iptables -A OUTPUT -o eth1 -p TCP --sport 137:139 -j ACCEPT
iptables -A OUTPUT -o eth1 -p UDP --sport 137:139 -j ACCEPT
iptables -A INPUT -i eth1 -p UDP --sport 137 --dport 32768:65535 -j ACCEPT

Не все... MWINDOWS="137,138,139,wins,445"

iptables -A INPUT -i eth1 -p TCP --dport 80 -j ACCEPT

# iptables -A OUTPUT -o eth1 -p TCP --sport 80 -j ACCEPT
Это лишнее. A) разрешит это

iptables -A INPUT -i eth1 -p TCP --dport 22 -j ACCEPT
# iptables -A OUTPUT -o eth1 -p TCP --sport 22 -j ACCEPT
Это лишнее. A) разрешит это

iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
# Мда, не очень добрый ты однако. Одно соединение в секунду Катается от смеха
# более того, не понятно кому и куда. То есть, рах в секунду откуда
# хочешь - куда хочешь. Не понятно...

iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source EXT_IP
То есть, наруду разрешено инициировать одно соединение в секунду.
И зачем оно? Может, лучше поставить прокси? Один http запрос - это мало, а одна ftp сессия - это много.

Цитата:
#Разрешающие цепочки для юзеров в сети чтобы могли в инет ходить
#Ivan
iptables -A FORWARD -i eth0 -o eth1 -s 0/0 -d 192.168.7.12 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -s 192.168.7.12 -d 0/0 -j ACCEPT
#Miha
iptables -A FORWARD -i eth0 -o eth1 -s 0/0 -d 192.168.7.89 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -s 192.168.7.89 -d 0/0 -j ACCEPT
#Fedya
iptables -A FORWARD -i eth0 -o eth1 -s 0/0 -d 192.168.7.21 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -s 192.168.7.21 -d 0/0 -j ACCEPT
#Nout
iptables -A FORWARD -i eth0 -o eth1 -s 0/0 -d 192.168.7.98 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -s 192.168.7.98 -d 0/0 -j ACCEPT

Если у Вас случайно разрешена маршрутизация от источника (source routing), то...
взлом этих машин - дело времени...

Короче - работы непочатый край...
Улыбка

Аватар пользователя lcf

Re: Правильно ли я настроил iptables ткните на уязвимости

sergeil
Нельзя ли поправить мои ошибки конкретными примерами мне так легче будет понимать все это! Я профан в Iptables

Аватар пользователя sergeil

Re: Правильно ли я настроил iptables ткните на уязвимости

Цитата:
lcf пишет:
Нельзя ли поправить мои ошибки конкретными примерами мне так легче будет понимать все это!

IMHO, нет. Если я настрою за Вас этот firewall, то:
1. Вы не научитесь этого делать сами.
2. Я должен буду взять на себя ответственность за Вашу сеть...

Аватар пользователя lcf

Re: Правильно ли я настроил iptables ткните на уязвимости

Цитата:
sergeil пишет:

Цитата:
lcf пишет:
Нельзя ли поправить мои ошибки конкретными примерами мне так легче будет понимать все это!

IMHO, нет. Если я настрою за Вас этот firewall, то:
1. Вы не научитесь этого делать сами.
2. Я должен буду взять на себя ответственность за Вашу сеть...

нет дело не в этом просто мне так разбираться гораздо легче я не понимаю всех этих доков я могу разобраться только на конкретном примере
а 22
и 80 порт я открыл для внутренего фейса чтобы ssh и httpd работало внутри

Аватар пользователя lcf

Re: Правильно ли я настроил iptables ткните на уязвимости

Цитата:
lcf пишет:

Цитата:
sergeil пишет:
Цитата:
lcf пишет:
Нельзя ли поправить мои ошибки конкретными примерами мне так легче будет понимать все это!

IMHO, нет. Если я настрою за Вас этот firewall, то:
1. Вы не научитесь этого делать сами.
2. Я должен буду взять на себя ответственность за Вашу сеть...

и я не прошу настраивать мне фаервол дайте пожалуйста конкретную настройку с пояснением строк что она делает
мне так будет легче и быстрее все это освоить

Аватар пользователя sergeil

Re: Правильно ли я настроил iptables ткните на уязвимости

lcf писал(а):
и я не прошу настраивать мне фаервол дайте пожалуйста конкретную настройку с пояснением строк что она делает
мне так будет легче и быстрее все это освоить

OK, попробую... За основу беру Ваш вариант...

Цитата:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

По умолчанию, если не указано другого, для всех пакетов, проходящих через цепочку, применяется правило DROP (тихо отбросить).

То есть, это тоже самое, что в конце будет
iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP
iptables -A FORWARD -j DROP

Цитата:
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

Ваш ПК - это уже сеть, даже если никуда не подключен.
Если Вы запретите обмен через устройство loopback (lo), то не сможете получить сетевой доступ даже к сервисам, которые запущены на Вашем ПК.

Цитата:
iptables -A INPUT -p ICMP -j ACCEPT
iptables -A OUTPUT -p ICMP -j ACCEPT

Вы разрешили все управляющие сетевые сообщения. Список всех возможных сообщений `iptables -p icmp --help`. Описание стека протоколов TCP/IP - обширная тема и она выходит за рамки этой темы. Предполагается, что Вы это уже знаете.

Цитата:
iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p UDP -m state --state ESTABLISHED,RELATED -j ACCEPT

Разрешить принимать пакеты Вашим ПК по установленным и сопуствуюшим соединениям. То есть, по соединениям, которые уже установлены с Вашим ПК или являются результатом взаимодействия по установленным соединениям.

Цитата:
iptables -A OUTPUT -p TCP --sport 32768:65535 -j ACCEPT
iptables -A OUTPUT -p UDP --sport 32768:65535 -j ACCEPT

Разрешить посылать любые пакеты TCP и UDP с Вашего ПК, если они отсылаются от портов с номером не меньше, чем 32768. Как я понимаю, подразумевается диапазон непривелигированных портов, который зависит от доступной оперативной памяти или от соответствующей настройки... У Вас порты могут выделятся в диапазоне 1024:4500. То есть, здесь может быть проблема и правило работать не будет.

Цитата:
iptables -A INPUT -i eth1 -p TCP --dport 137:139 -j ACCEPT
iptables -A INPUT -i eth1 -p UDP --dport 137:139 -j ACCEPT
iptables -A OUTPUT -o eth1 -p TCP --sport 137:139 -j ACCEPT
iptables -A OUTPUT -o eth1 -p UDP --sport 137:139 -j ACCEPT
iptables -A INPUT -i eth1 -p UDP --sport 137 --dport 32768:65535 -j ACCEPT

Вы пытатесь разрешить Вашему ПК протокол SAMBA для взаимодействия с Вашими Windows-машинами в локальной сети.

Цитата:
iptables -A INPUT -i eth1 -p TCP --dport 80 -j ACCEPT
iptables -A OUTPUT -o eth1 -p TCP --sport 80 -j ACCEPT

У Вас есть WEB-сервер и Вы разрешаете LAN его использовать.

Цитата:
iptables -A INPUT -i eth1 -p TCP --dport 22 -j ACCEPT
iptables -A OUTPUT -o eth1 -p TCP --sport 22 -j ACCEPT

Вы разрешаете подключаться к Вашему ПК из сети по протоколу SSH

Далi буде...

Цитата:
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source EXT_IP
#Разрешающие цепочки для юзеров в сети чтобы могли в инет ходить
#Ivan
iptables -A FORWARD -i eth0 -o eth1 -s 0/0 -d 192.168.7.12 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -s 192.168.7.12 -d 0/0 -j ACCEPT
#Miha
iptables -A FORWARD -i eth0 -o eth1 -s 0/0 -d 192.168.7.89 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -s 192.168.7.89 -d 0/0 -j ACCEPT
#Fedya
iptables -A FORWARD -i eth0 -o eth1 -s 0/0 -d 192.168.7.21 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -s 192.168.7.21 -d 0/0 -j ACCEPT
#Nout
iptables -A FORWARD -i eth0 -o eth1 -s 0/0 -d 192.168.7.98 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -s 192.168.7.98 -d 0/0 -j ACCEPT

RSS-материал