вопрос по IP tables

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

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

surecom_16
Сообщения: 4

вопрос по IP tables

Сообщение surecom_16 »

Здравствуйте, уважаемые форумчане!
Есть сервер на CentOS с двумя сетевыми интерфейсами, один смотрит в LAN второй в WAN, на сервере стоит IPtables + NAT.
Так вот клиенты из локальной сети ходят в инет нормально, при этом, если зайти на сам этот сервер (по ssh) и с него попытаться что-то скачать с интернета - ошибка. Если остановить службу IPtables - вроде качает.
Перепробовал уже массу вариантов, перечитал кучу инфы, полдня бьюсь и не могу решить, помогите, пожалуйста.
Конфиг IPtables ниже, заранее благодарен.

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

# Generated by iptables-save v1.3.5 on Tue Mar 11 17:29:05 2014
*mangle
:PREROUTING ACCEPT [2947:1955342]
:INPUT ACCEPT [178:33154]
:FORWARD ACCEPT [2769:1922188]
:OUTPUT ACCEPT [222:81659]
:POSTROUTING ACCEPT [2991:2003847]
COMMIT
# Completed on Tue Mar 11 17:29:05 2014
# Generated by iptables-save v1.3.5 on Tue Mar 11 17:29:05 2014
*nat
:PREROUTING ACCEPT [93:6217]
:POSTROUTING ACCEPT [88:21949]
:OUTPUT ACCEPT [88:21949]
-A PREROUTING -d 192.168.10.1 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.1.30:3389
-A PREROUTING -d 192.168.10.1 -p tcp -m tcp --dport 8081 -j DNAT --to-destination 192.168.1.246:80
-A POSTROUTING -s 192.168.0.0/255.255.254.0 -o eth0 -j SNAT --to-source 192.168.10.1
COMMIT
# Completed on Tue Mar 11 17:29:05 2014
# Generated by iptables-save v1.3.5 on Tue Mar 11 17:29:05 2014
*filter
:INPUT DROP [10:2226]
:FORWARD ACCEPT [2769:1922188]
:OUTPUT ACCEPT [222:81659]
-A INPUT -i eth0 -j LOG --log-prefix "BANDWIDTH_IN:" --log-level 7
-A INPUT -s 1.1.1.1 -i eth0 -j ACCEPT
-A INPUT -s 2.2.2.2 -i eth0 -j ACCEPT
-A INPUT -s 3.3.3.3 -i eth0 -j ACCEPT
-A INPUT -i eth0 -p icmp -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp -m multiport --dports 5060,10000 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp -m multiport --dports 5060,10000 -j ACCEPT
-A INPUT -p udp -m udp --dport 10000:19999 -j ACCEPT
-A INPUT -p udp -m udp --dport 4000:4999 -j ACCEPT
-A INPUT -p udp -m udp --dport 4569 -j ACCEPT
-A INPUT -p udp -m udp --dport 5038 -j ACCEPT
-A INPUT -s 8.8.8.8 -i eth0 -p tcp -m tcp --sport 53 -j ACCEPT
-A INPUT -s 8.8.8.8 -i eth0 -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.254.0 -i eth2 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth2 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i eth2 -p udp -m udp --dport 53 -j ACCEPT
-A FORWARD -o eth0 -j LOG --log-prefix "BANDWIDTH_OUT:" --log-level 7
-A FORWARD -i eth0 -j LOG --log-prefix "BANDWIDTH_IN:" --log-level 7
-A OUTPUT -j LOG --log-prefix "BANDWIDTH_OUT:" --log-level 7
COMMIT
# Completed on Tue Mar 11 17:29:05 2014
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: вопрос по IP tables

Сообщение SLEDopit »

Так у вас весь INPUT дропается, а http(s) входящий не разрешается, вот ничего и не качается.
Но разрешается всё через eth2:
-A INPUT -s 192.168.0.0/255.255.254.0 -i eth2 -j ACCEPT
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Institut
Сообщения: 281
ОС: mint

Re: вопрос по IP tables

Сообщение Institut »

surecom_16
Что-то у Вас толсто все получилось.
Давайте так поробуем
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo ! -d 127.0.2.0/24 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 67:68 --dport 67:68 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 123 -j ACCEPT
-A INPUT -i eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -j LOG --log-prefix "IN eth0: "
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21496
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: вопрос по IP tables

Сообщение Bizdelnick »

ip route что показывает?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
surecom_16
Сообщения: 4

Re: вопрос по IP tables

Сообщение surecom_16 »

SLEDopit писал(а):
11.03.2014 20:26
Так у вас весь INPUT дропается, а http(s) входящий не разрешается, вот ничего и не качается.
Но разрешается всё через eth2:
-A INPUT -s 192.168.0.0/255.255.254.0 -i eth2 -j ACCEPT


Спасибо за ответ, но мне входящий http(s) на сервере не нужен. Я по SSH захожу на сервер и качаю (wget http://...) но в ответ тишина.
такое чувство что на localhost не распространяется NAT. TCPdump показывает 192.168.10.1.44607 > 1.1.1.1.ftp затем ответ 1.1.1.1.ftp > 192.168.10.1.44607, т.е. ответ идет, но похоже его рубит файрвол, а вот разрешить его не выходит
Спасибо сказали:
surecom_16
Сообщения: 4

Re: вопрос по IP tables

Сообщение surecom_16 »

Institut писал(а):
11.03.2014 20:33
surecom_16
Что-то у Вас толсто все получилось.
Давайте так поробуем
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo ! -d 127.0.2.0/24 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 67:68 --dport 67:68 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 123 -j ACCEPT
-A INPUT -i eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -j LOG --log-prefix "IN eth0: "

Спасибо за ответ, Вы имеете в виду добавить эти правила?
-A INPUT -i lo ! -d 127.0.2.0/24 -j ACCEPT - здесь имелось в виду 127.0.0.1/24
Заменить свои не могу, т.к. сервер физически находится за 60 км от меня, и если уберу проброс портов, утрачу к нему доступ.

Bizdelnick писал(а):
11.03.2014 20:40
ip route что показывает?

192.168.10.1/24 dev eth0 proto kernel scope link src 192.168.10.10
192.168.0.0/23 dev eth2 proto kernel scope link src 192.168.1.1
169.254.0.0/16 dev eth2 scope link
default via 192.168.10.10 dev eth0
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21496
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: вопрос по IP tables

Сообщение Bizdelnick »

surecom_16 писал(а):
11.03.2014 20:49
Спасибо за ответ, но мне входящий http(s) на сервере не нужен. Я по SSH захожу на сервер и качаю (wget http://...) но в ответ тишина.

Не входящий HTTPS, а входящие пакеты. Действительно, я и не заметил, что у Вас
surecom_16 писал(а):
11.03.2014 20:01
:INPUT DROP
Добавьте

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

-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
в конец *filter.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
BigBrother
Сообщения: 436
Статус: ¯\_(ツ)_/¯
ОС: linux based

Re: вопрос по IP tables

Сообщение BigBrother »

surecom_16 писал(а):
11.03.2014 20:59
Заменить свои не могу, т.к. сервер физически находится за 60 км от меня, и если уберу проброс портов, утрачу к нему доступ.

Тебе все равно придется добавлять/удалять правила на живом сервере, по этому, чтобы себя подстраховать, поставь в cron скрипт, который будет очищать все правила во всех таблицах и делать всему и вся ACCEPT (или просто возврат к предыдущим правилам), каждые n минут. Таким образом, если накосячишь (а шанс существует), то через n-минут сново попадаешь на сервер, правда иптаблес будет полностью чистый. А когда закончишь с правилами, удалишь из крона запись.
Спасибо сказали:
Institut
Сообщения: 281
ОС: mint

Re: вопрос по IP tables

Сообщение Institut »

:OUTPUT ACCEPT [0:0]
-A INPUT -i lo ! -d 127.0.2.0/24 -j ACCEPT - здесь имелось в виду 127.0.0.1/24
Это должно идти так, как я Вам написал, в том порядке.
Я Вам написал правила для цепочки филтер - это рабочие правила.
При условии что у Вас интерфейс eth0 - смотрит в интернет.
Дело в том, что в твоих правилах для церпочки инпут НЕТУ правил, разрешающих принимать пакеты по TCP протоколу, только 22 и 53 (ненужный) порт.
Вот поэтому я и предложил свой вариант. Или если хочешь подстраховаться тогда так
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo ! -d 127.0.2.0/24 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 67:68 --dport 67:68 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 53 --dport 53 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 123 --dport 123 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -j LOG --log-prefix "IN eth0: "
Спасибо сказали:
surecom_16
Сообщения: 4

Re: вопрос по IP tables

Сообщение surecom_16 »

[quote]Добавьте

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

-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
в конец *filter.
[quote]
Спасибо, все заработало! Добавил только это правило!
Спасибо всем за ответы!
Отдельное спасибо Bizdelnick и Institut! :drinks:
Спасибо сказали:
Institut
Сообщения: 281
ОС: mint

Re: вопрос по IP tables

Сообщение Institut »

Я рад, что всё заработало, но правило -A INPUT -i lo ! -d 127.0.2.0/24 -j ACCEPT настоятельно рекомендую использовать. :yes3:
Спасибо сказали: