Не могу сообразить, что не так...
Не могу сообразить, что не так...
Вот скрипт.
#Секция сбрасывает все правила и удаляет цепочки
iptables -F
iptables -X
#Устанавливаем политику по умолчанию DROP
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
#Открываем порт SSH
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -j ACCEPT
#Открываем порт для DNS-сервера
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -j ACCEPT
#Открываем порт FTP-сервера
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 21 -j ACCEPT
#Пропускаем все пакеты, относящиеся к уже установленным или связанным соединениям
iptables -A INPUT -p tcp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
#Открываем Интернет на локальную сеть
iptables -A FORWARD -i eth0 -o eth1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Настроен FTP, DNS, SSH. Так вот, эти службы отвечают на сервере, т.е. в INPUT и OUTPUT все правила работают. А вот выйти в Интернет из локальной сети не удаётся. Где я не вижу ошибки?
#Секция сбрасывает все правила и удаляет цепочки
iptables -F
iptables -X
#Устанавливаем политику по умолчанию DROP
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
#Открываем порт SSH
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -j ACCEPT
#Открываем порт для DNS-сервера
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -j ACCEPT
#Открываем порт FTP-сервера
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 21 -j ACCEPT
#Пропускаем все пакеты, относящиеся к уже установленным или связанным соединениям
iptables -A INPUT -p tcp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
#Открываем Интернет на локальную сеть
iptables -A FORWARD -i eth0 -o eth1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Настроен FTP, DNS, SSH. Так вот, эти службы отвечают на сервере, т.е. в INPUT и OUTPUT все правила работают. А вот выйти в Интернет из локальной сети не удаётся. Где я не вижу ошибки?
- Роман Торопов
- Администратор
- Сообщения: 142
- Зарегистрирован: 24 мар 2008, 10:49
- Откуда: г. Пермь
- Контактная информация:
Re: Не могу сообразить, что не так...
На локальный компах, в настройках сетевого интерфейса должен быть указан шлюз (IP на eth1), внешние DNS-сервера (IP DNS-серверов провайдера).dimanlev писал(а): Настроен FTP, DNS, SSH. Так вот, эти службы отвечают на сервере, т.е. в INPUT и OUTPUT все правила работают. А вот выйти в Интернет из локальной сети не удаётся. Где я не вижу ошибки?
Re: Не могу сообразить, что не так...
Спасибо большое за реакцию. Шлюз указан. А почему внешний DNS? Задача стоит на брандмауэре поднять DNS.
Вот ещё что заметил.
При iptables -P INPUT DROP и -P OUTPUT DROP nslookup не разрешает имя в адрес, а если выставить ACCEPT, то прекрасно работает.
Соответственно и Интернет работает.
Сейчас ковыряюсь в named.conf, может там что-то.
Ещё в логе сообщение named worked directory not writable.
Вот ещё что заметил.
При iptables -P INPUT DROP и -P OUTPUT DROP nslookup не разрешает имя в адрес, а если выставить ACCEPT, то прекрасно работает.
Соответственно и Интернет работает.
Сейчас ковыряюсь в named.conf, может там что-то.
Ещё в логе сообщение named worked directory not writable.
- Роман Торопов
- Администратор
- Сообщения: 142
- Зарегистрирован: 24 мар 2008, 10:49
- Откуда: г. Пермь
- Контактная информация:
Re: Не могу сообразить, что не так...
Вот когда он заработает, тогда у пользователей указать локальный IP DNS сервераdimanlev писал(а):Спасибо большое за реакцию. Шлюз указан. А почему внешний DNS? Задача стоит на брандмауэре поднять DNS..
достаточно по дефолту открыть OUTPUTdimanlev писал(а):Вот ещё что заметил.
При iptables -P INPUT DROP и -P OUTPUT DROP nslookup не разрешает имя в адрес, а если выставить ACCEPT, то прекрасно работает.
Соответственно и Интернет работает.
Сейчас ковыряюсь в named.conf, может там что-то.
Ещё в логе сообщение named worked directory not writable.
-P OUTPUT ACCEPT
убрать цепочки OUTPUT
Все цепочки OUTPUT - это все запросы от сервера в интернет (из сервера в интернет или в локаль).
INPUT - из интернет (или локали) на сервер
FORWARD - всё что идёт мимо сервера (из локали в интернет и обратно)
Вместо этого нужно вот это:dimanlev писал(а):#Открываем Интернет на локальную сеть
iptables -A FORWARD -i eth0 -o eth1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
-A FORWARD -s 192.168.0.0/24 -p icmp -i eth1 -j ACCEPT # пинги
-A FORWARD -d 192.168.0.0/24 -p icmp -o eth1 -j ACCEPT # пинги
-A FORWARD -s 192.168.0.0/24 -p udp -m udp --dport 53 -i eth1 -j ACCEPT # DNS запросы
-A FORWARD -d 192.168.0.0/24 -p udp -m udp --sport 53 -o eth1 -j ACCEPT # DNS запросы
-A FORWARD -s 192.168.0.0/24 -p udp -m udp --dport 123 -i eth1 -j ACCEPT # Синхронизация системного времени
-A FORWARD -d 192.168.0.0/24 -p udp -m udp --sport 123 -o eth1 -j ACCEPT # Синхронизация системного времени
-A FORWARD -s 192.168.0.0/24 -p tcp -m multiport --dports 20-22,25,80,110,443,8080 -i eth1 -j ACCEPT # разрешенные порты
-A FORWARD -d 192.168.0.0/24 -p tcp -m multiport --sports 20-22,25,80,110,443,8080 -o eth1 -j ACCEPT # разрешенные порты
Где
eth1 - локальный сетевой интерфейс
192.168.0.0/24 - локальная подсеть
Re: Не могу сообразить, что не так...
Ммм... этот вариант не работает тоже............
Re: Не могу сообразить, что не так...
Всё-таки проблема с DNS.
Вот что происходит.
Когда iptables остановлена (читай INPUT и OUTPUT установлены в ACCEPT)
то, nslookup <какой-то адрес> 127.0.0.1 и nsookup <какой-то адрес> IP_DNS (сервер провайдера)
работают.
А когда INPUT и OUTPUT устанавливаю в DROP, то уже не проходит.
Вот что происходит.
Когда iptables остановлена (читай INPUT и OUTPUT установлены в ACCEPT)
то, nslookup <какой-то адрес> 127.0.0.1 и nsookup <какой-то адрес> IP_DNS (сервер провайдера)
работают.
А когда INPUT и OUTPUT устанавливаю в DROP, то уже не проходит.
- Роман Торопов
- Администратор
- Сообщения: 142
- Зарегистрирован: 24 мар 2008, 10:49
- Откуда: г. Пермь
- Контактная информация:
Re: Не могу сообразить, что не так...
Значит деволтовые правила становять в очередь первыми и закрывают ниже стоящие,dimanlev писал(а):Всё-таки проблема с DNS.
Вот что происходит.
Когда iptables остановлена (читай INPUT и OUTPUT установлены в ACCEPT)
то, nslookup <какой-то адрес> 127.0.0.1 и nsookup <какой-то адрес> IP_DNS (сервер провайдера)
работают.
А когда INPUT и OUTPUT устанавливаю в DROP, то уже не проходит.
можно пойти от обратного, открыть дефолтовые, обозначить правила, остальное закрыть:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m multiport --dports 21,22,53 -j ACCEPT
-A INPUT -p udp -m multiport --dports 53,123 -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j LOG --log-level 7 --log-tcp-options
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -s 192.168.0.0/24 -p icmp -i eth1 -j ACCEPT
-A FORWARD -d 192.168.0.0/24 -p icmp -o eth1 -j ACCEPT
-A FORWARD -s 192.168.0.0/24 -p udp -m udp --dport 53 -i eth1 -j ACCEPT
-A FORWARD -d 192.168.0.0/24 -p udp -m udp --sport 53 -o eth1 -j ACCEPT
-A FORWARD -s 192.168.0.0/24 -p udp -m udp --dport 123 -i eth1 -j ACCEPT
-A FORWARD -d 192.168.0.0/24 -p udp -m udp --sport 123 -o eth1 -j ACCEPT
-A FORWARD -s 192.168.0.0/24 -p tcp -m multiport --dports 20-22,25,80,110,443,8080 -i eth1 -j ACCEPT
-A FORWARD -d 192.168.0.0/24 -p tcp -m multiport --sports 20-22,25,80,110,443,8080 -o eth1 -j ACCEPT
-A FORWARD -o eth1 -j DROP
-A FORWARD -i eth1 -j DROP
-A FORWARD -o eth0 -j DROP
-A FORWARD -i eth0 -j DROP
Re: Не могу сообразить, что не так...
Тогда какой смысл вообще имеют конструкции типа -P <Цепочка> <политика>. Т.е. какой смысл тогда вообще задавать политики по-умолчанию.Значит деволтовые правила становять в очередь первыми и закрывают ниже стоящие,
можно пойти от обратного, открыть дефолтовые, обозначить правила, остальное закрыть
Я так понимаю, что-то с iptables не так...?
Re: Не могу сообразить, что не так...
Тогда бы не работал и SSH и FTP, но они работают. Сканер портов со стороны как eth0, так и со стороны eth1 показывает открытые порты 21, 22, 53.Значит деволтовые правила становять в очередь первыми и закрывают ниже стоящие,
можно пойти от обратного, открыть дефолтовые, обозначить правила, остальное закрыть
nslookup ведет себя также и на самом брандмауэре.Когда iptables остановлена (читай INPUT и OUTPUT установлены в ACCEPT)
то, nslookup <какой-то адрес> 127.0.0.1 и nsookup <какой-то адрес> IP_DNS (сервер провайдера)
работают.
А когда INPUT и OUTPUT устанавливаю в DROP, то уже не проходит.
Re: Не могу сообразить, что не так...
Есть идеи?