iptables без шлюза (или "просто фаерволл")

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
Gloomy
Сообщения: 340
Статус: сочувствующий

iptables без шлюза

Сообщение Gloomy »

Тщательно поискал по форуму конфиги iptables, но везде натыкался на огранизацию шлюза. Однако он мне совершенно не нужен! Нужен просто обычный, но толково настроенный фаерволл, который позволит нормально лазать по сети и спокойно спать. Итак, что имееется:
- подключенный по Ethernet комп;
- локальная сеть, из которой авторизовавшись (с помощью специальной программы) можно выйти в Инет;
- запущенный только для локалки FTP (отделенный от Инета NAT'ом прова);
- некоторый сетевой софт;
Чтением доков по iptables, а так же методом проб и ошибок накатал такой кривенький скрипт:

Код: Выделить всё

# установили политики
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# сбросили цепочки
iptables -F

# разрешили все для интерфейса lo
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


# разрешили DNS
iptables -A INPUT -i eth0 -p tcp --sport 53 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --dport 53 -j ACCEPT

# разрешили порты:
# 20, 21 - FTP
# 25 - SMTP
# 80 - HTTP
# 110 - POP3
# 443 - HTTPS
# 4444 - трекеры торрентов
# 5190 - ICQ
# 5222 - Jabber
# 6326 - программа авторизации в Инете (работает по принципу "клиент-сервер", вешаясь на этот порт)
# 6881 - тоже торренты
# 7030 - радио, поточное вещание для amaroK
iptables -A INPUT -i eth0 -p tcp -m multiport --port 20,21,25,80,110,443,4444,5190,5222,6326,6881,7030 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp -m multiport --port 20,21,25,80,110,443,4444,5190,5222,6326,6881,7030 -j ACCEPT

# UDP-порты для торрентов
iptables -A INPUT -i eth0 -p udp -m multiport --port 4444,6881 -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp -m multiport --port 4444,6881 -j ACCEPT

# "верхний" диапазон портов, см. далее
iptables -A INPUT -i eth0 -p tcp -m multiport --port 1024:65535 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp -m multiport --port 1024:65535 -j ACCEPT

# запрещаем все что не разрешено
iptables -P INPUT DROP
iptables -P OUTPUT DROP

Особое беспокойство вызывает т.н. "верхний" диапазон портов. Если его не добавлять, то становится невозможно зайти на какой-либо FTP (в локалке или в Инете - без разницы). Все остальное (почта, браузер, мой FTP-сервер и пр.) без открытия диапазона пашет без проблем.

Причину такого поведения понимаю /кажется/: грабли в том что FTP устанавливает коннект по порту 21, а данные передает либо по порту 20 (пассивный режим), либо по любому какой ему вздумается (например 23423). Именно поэтому нужно открывать диапазон портов - чтоб удаленный FTP мог через них слать мне данные.
Пробовал написать так:

Код: Выделить всё

iptables -A INPUT -i eth0 -p tcp --sport 1024:65535 --dport 20 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 1024:65535 --sport 20 -j ACCEPT

Но это не работает.

Подскажите пожалуйста как правильно настроить диапазон и можно ли как-то ухитриться вообще без него обойтись? Иначе ИМХО просто глупость по крошкам выбирать отдельные порты, а потом открывать целый автобан - лучше уж тогда сразу поставить везде ACCEPT и обо всем забыть.
Спасибо сказали:
3al
Сообщения: 131
ОС: Arch

Re: iptables без шлюза

Сообщение 3al »

modprobe ip_conntrack_ftp
iptables -A INPUT -m helper --helper ftp -j ACCEPT
iptables -A OUTPUT -o eth0 -m helper --helper ftp -j ACCEPT
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: iptables без шлюза

Сообщение KiWi »

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -- всегда нормально пропускало соединения.
+ можно будет прибить часть правил.
Спасибо сказали:
Аватара пользователя
Gloomy
Сообщения: 340
Статус: сочувствующий

Re: iptables без шлюза

Сообщение Gloomy »

3al, KiWi: спасибо, помогло, теперь все работает как надо :)
Спасибо сказали: