Всем доброго времени суток :о) Воюю с iptables на гейте. Хочу настроить супер-пупер фильтр, через который проходит только то, что я хочу.
На текущий момент картина такая:
моя сетка: 190.0.0.0/24
dns1: 194.8.160.90
dns2: 195.131.52.130
внутр dns: 190.*.*.100
eth2 смотрит в локалку ip: 190.0.0.172
eth3 смотрит в провайдерскую сетку ip: 195.*.*.a
Гейт, предоставляемый провайдером: 195.*.*.b
Внешний IP моего гейта : 195.*.*.a
На гейте крутится named, переправляющий DNS-запросы от внутреннего DNS-сервера (190.0.0.100).
0)iptables -t nat -A POSTROUTING -s 190.0.0.0/24 -j MASQUERADE
1)iptables -P INPUT -j DROP
2)iptables -P FORWARD -j DROP
3)iptables -P OUTPUT -j DROP
4)iptables -A INPUT -s 190.0.0.0/24 -d 190.0.0.172 -j ACCEPT
5)iptables -A OUTPUT -d 190.0.0.0/24 -s 190.0.0.172 -j ACCEPT
После выполнения этих двух строчек разрешается весь трафик между клиентскими машинами и гейтом.
6)iptables -A INPUT -d 195.*.*.a -p icmp -j ACCEPT
7)iptables -A FORWARD -s 190.0.0.0/24 -p icmp -j ACCEPT
8)iptables -A FORWARD -d 190.0.0.0/24 -p icmp -j ACCEPT
9)iptables -A OUTPUT -s 195.*.*.a -p icmp -j ACCEPT
После этих хитрых манипуляций появилась возможность пинговать ВСЁ по IP-адресу с клиентских машин. Никакой речи о фильтрации icmp по типам пакетов не идёт.
Теперь я хочу увидеть ответ от www.ya.ru. Нужно, чтобы DNS-запросы пересылались с внутреннего DNS-сервера на гейт, и с гейта на DNS-ы провайдера. Для этого делаю вот что:
10)iptables -A INPUT -d 195.*.*.a -p udp --dport 53 -j ACCEPT
11)iptables -A FORWARD -p udp -s 190.0.0.0/24 --sport 53 -j ACCEPT
12)iptables -A FOWRARD -p udp -d 190.0.0.0/24 --dport 53 -j ACCEPT
13)iptables -A OUTPUT -p udp -s 195.*.*.a -p udp --sport 53 -j ACCEPT
Пинги по именам не проходят :о(
Уважаемые ЗНАТОКИ!!! Вопрос: 1. Всё вышенаписаное правильно? 2. Правила для TCP, аналогичные четырём последним строкам добавлять необязательно? 3. А не забыл ли я про высокие порты?!
P.S. Подкинте, если не трудно правильный вариант. Пожааааалуйста...
:о)