Решено: Нужна помощь с rc.firewall

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

Модератор: SLEDopit

Ответить
alexcandr
Сообщения: 157
ОС: CentOS 5.3
Контактная информация:

Решено: Нужна помощь с rc.firewall

Сообщение alexcandr »

Всем привет, нужна помощь не могу никак разобраться с фаэрволом в CentOS 5.2..
есть сервак с выделеным каналом, инетом, почтой,,,
Что нужно сделать:
Что бы пользователи могли пользоваться своей внешней почтой типа mail.ru yandex.ru
и получать/отправлять письма, я так понимаю что у меня на серваке заблокированы порты,,,
Для этого в rc.firewall прописал правила

$ipt -t nat -A PREROUTING -p tcp -d 192.9.100.254 --dport 25 -j DNAT --to-destination 194.67.57.226:25
$ipt -t nat -A PREROUTING -p tcp -d 192.9.100.254 --dport 110 -j DNAT --to-destination 194.67.57.226:110

Где 192,9,100,254 - это моя прокся
194.67.57.226 - это Mail.ru

Ничего не помогло, не соединяется с сервером,,,
Прощу помощи, уже второй день ковыряюсь и все безтолку,
Заранее всем спасибо
Спасибо сказали:
IMB
Сообщения: 2561
ОС: Debian

Re: Решено: Нужна помощь с rc.firewall

Сообщение IMB »

Для транзитного трафика используется цепочка FORWARD.
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: Решено: Нужна помощь с rc.firewall

Сообщение pelmen »

Если честно, я не понял, причем тут "прокся" и почему ты считаешь, что у клиентов почтовые программы будут коннектиться не на smtp.mail.ru, а не твою прокси?
Спасибо сказали:
Аватара пользователя
butch
Сообщения: 331
ОС: :OC

Re: Решено: Нужна помощь с rc.firewall

Сообщение butch »

alexcandr писал(а):
05.05.2009 17:36
Что бы пользователи могли пользоваться своей внешней почтой типа mail.ru yandex.ru
и получать/отправлять письма, я так понимаю что у меня на серваке заблокированы порты,,,

проще всего заставить из использовать вебморды этих почтовиков.
еще вариант:
разрешить резолвинг имен, через днс провайдера к примеру.
на все компы отдать через дхцп дефулт гейтвей - ваш шлюз.
разрешить 53удп наружу
пустить на 110тцп порт на любой дестинэйшон.
рассказать юзерам про релей провайдера и разрешить 25тцп только до него.
этого будет достаточно
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Решено: Нужна помощь с rc.firewall

Сообщение Ленивая Бестолочь »

рассказать юзерам про релей провайдера и разрешить 25тцп только до него.

можно сделать правило, что весь трафик на 25 порт не-важно-куда будет приходить на ваш релей.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
alexcandr
Сообщения: 157
ОС: CentOS 5.3
Контактная информация:

Re: Решено: Нужна помощь с rc.firewall

Сообщение alexcandr »

Ленивая Бестолочь писал(а):
06.05.2009 10:42
рассказать юзерам про релей провайдера и разрешить 25тцп только до него.

можно сделать правило, ч5 пото весь трафик на 2рт не-важно-куда будет приходить на ваш релей.


Спасибо за советы, но я пока не очень понимаю что нужно сделать,,,
Я так понимаю что мне нужно открыть 25(отправка) и 110(получение) порты, правильно!
Это сделал,, но почта все равно не отправляется и не принимается
Спасибо сказали:
Аватара пользователя
sarutobi
Сообщения: 676
Статус: Добрость и скромнота
ОС: Debian 5, FreeBSD 6.2/8.0
Контактная информация:

Re: Решено: Нужна помощь с rc.firewall

Сообщение sarutobi »

Если я правильно понимаю ситуацию (поправьте меня), то файервол у вас стоит на гейте с двумя сетевыми адресами (внутренним и внешним). Вам нужно:
а) разрешить прием трафика на 25 и 110 порты на внутреннем интерфейсе (Цепочка INPUT)
б) разрешить отправку трафика на 25 и 110 порты на внешнем интрефейсе(Цепочка OUTPUT)
в) Включить форвардинг (наверняка уже сделано, но все таки проверьте)
г) разрешить форвард трафика на порты 110 и 25 с внутреннего интерфейса на внешний (цепочка FORWARD)
никакого маскарадинга не требуется - забудьте про PREROUTING и DNAT
Fire and water, earth and sky - mistery surrounds us, legends never die!
Спасибо сказали:
alexcandr
Сообщения: 157
ОС: CentOS 5.3
Контактная информация:

Re: Решено: Нужна помощь с rc.firewall

Сообщение alexcandr »

sarutobi писал(а):
06.05.2009 11:28
Если я правильно понимаю ситуацию (поправьте меня), то файервол у вас стоит на гейте с двумя сетевыми адресами (внутренним и внешним). Вам нужно:
а) разрешить прием трафика на 25 и 110 порты на внутреннем интерфейсе (Цепочка INPUT)
б) разрешить отправку трафика на 25 и 110 порты на внешнем интрефейсе(Цепочка OUTPUT)
в) Включить форвардинг (наверняка уже сделано, но все таки проверьте)
г) разрешить форвард трафика на порты 110 и 25 с внутреннего интерфейса на внешний (цепочка FORWARD)
никакого маскарадинга не требуется - забудьте про PREROUTING и DNAT


Да стоит фаэрвол с двумя сетевыми адресми
Нужно что б пользователи могли коннектиться через бат(аутлук) к своим ящикам которые хранятся на серверах mail.ru yandex.ru///
На данный момент соединения не проходит,,, я так понимаю что фаэрвол блокирует исходящие и входящие пакеты с этих почтовых серверов,,
Что сделал, прописал в rc.firewall

$ipt -A FORWARD -i $INTIF -p tcp -s 192.9.100.254 -d 194.67.57.226 --dport 110 -j ACCEPT
$ipt -A FORWARD -i $INTIF -p tcp -s 192.9.100.254 -d 194.67.57.226 --dport 25 -j ACCEPT

Где 192,9,100,254 -это мой сервак
194,67,57,226 - это mail.ru

Ничего не получилось, Честно говорю с фаэрволом столкнулся в первый раз, поэтому все что вы пишите для меня дико, пытался доки читать но чувствую уйдет минимум неделя что б разобраться))))
Так что прошу если не сложно приведите пример, очень нужно срочно,,,,
Заранее спасибо
Спасибо сказали:
Аватара пользователя
sarutobi
Сообщения: 676
Статус: Добрость и скромнота
ОС: Debian 5, FreeBSD 6.2/8.0
Контактная информация:

Re: Решено: Нужна помощь с rc.firewall

Сообщение sarutobi »

а) ipt -A INPUT -p tcp -s 192.9.100.0/24 -d 194.67.57.226 --dport 110 -j ACCEPT
б) ipt -A OUTPUT -p tcp -s 192.9.100.0/24 -d 194.67.57.226 --dport 110 -j ACCEPT
г) ipt -A FORWARD -p tcp -s 192.9.100.0/24 -d 194.67.57.226 --dport 110 -j ACCEPT
ipt -A FORWARD -p tcp -d 192.9.100.0/24 -s 194.67.57.226 --sport 110 -j ACCEPT

разрешает прохождение трафика на 110 порт хоста 194.67.57.226 из сети 192.9.100.0/24
Fire and water, earth and sky - mistery surrounds us, legends never die!
Спасибо сказали:
alexcandr
Сообщения: 157
ОС: CentOS 5.3
Контактная информация:

Re: Решено: Нужна помощь с rc.firewall

Сообщение alexcandr »

sarutobi писал(а):
06.05.2009 12:37
а) ipt -A INPUT -p tcp -s 192.9.100.0/24 -d 194.67.57.226 --dport 110 -j ACCEPT
б) ipt -A OUTPUT -p tcp -s 192.9.100.0/24 -d 194.67.57.226 --dport 110 -j ACCEPT
г) ipt -A FORWARD -p tcp -s 192.9.100.0/24 -d 194.67.57.226 --dport 110 -j ACCEPT
ipt -A FORWARD -p tcp -d 192.9.100.0/24 -s 194.67.57.226 --sport 110 -j ACCEPT

разрешает прохождение трафика на 110 порт хоста 194.67.57.226 из сети 192.9.100.0/24


Прописал, ничего не изменилось с серваком(mail) нет соединения

192.9.100.254-прокси
62,16,108,188- ip внешний
Вот мой конфиг rc.firewall

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

ipt="/sbin/iptables"
EXTIF="eth0"
INTIF="eth1"

$ipt -A INPUT -s mail.npt.ru -j DROP


$ipt -A INPUT -i $EXTIF -p tcp --dport 4550 -j ACCEPT
$ipt -A INPUT -i $EXTIF -p tcp --dport 80 -j ACCEPT
$ipt -A INPUT -i $EXTIF -p tcp --dport 25 -j ACCEPT
$ipt -A INPUT -i $EXTIF -p tcp --dport 110 -j ACCEPT
$ipt -A INPUT -i $EXTIF -p tcp --dport 443 -j ACCEPT
$ipt -A INPUT -i $EXTIF -p tcp --dport 1723 -j ACCEPT
$ipt -A INPUT -i $EXTIF -p tcp --dport 64000:65500 -j ACCEPT
$ipt -A INPUT -i $EXTIF -p tcp --dport 20:21 -j ACCEPT


$ipt -A INPUT  -p tcp -s 192.9.100.0/24 -d 194.67.57.226 --dport 110 -j ACCEPT
$ipt -A OUTPUT -p tcp -s 192.9.100.0/24 -d 194.67.57.226 --dport 110 -j ACCEPT
$ipt -A FORWARD -p tcp -s 192.9.100.0/24 -d 194.67.57.226 --dport 110 -j ACCEPT
$ipt -A FORWARD -p tcp -d 192.9.100.0/24 -s 194.67.57.226 --sport 110 -j ACCEPT

$ipt -t nat -A POSTROUTING -s 192.9.100.0/24 -o $EXTIF -j SNAT --to 62.16.108.188
$ipt -t nat -A PREROUTING -p tcp -d 192.9.100.254 --dport 8025 -j DNAT --to-destination 80.247.184.198:25
$ipt -t nat -A PREROUTING -p tcp -d 192.9.100.254 --dport 8110 -j DNAT --to-destination 80.247.184.198:110
$ipt -A FORWARD -i $INTIF -p tcp -s 192.9.100.84 -d 80.247.184.198 --dport 110 -j ACCEPT
$ipt -A FORWARD -i $INTIF -p tcp -s 192.9.100.84 -d 80.247.184.198 --dport 25 -j ACCEPT
$ipt -A FORWARD -i $INTIF -o $EXTIF -j REJECT

#####ICMP SECURITY OPTION###################
$ipt -A INPUT -i $EXTIF -p icmp --icmp-type 0 -j ACCEPT
$ipt -A INPUT -i $EXTIF -p icmp --icmp-type 3 -j ACCEPT
$ipt -A INPUT -i $EXTIF -p icmp --icmp-type 4 -j ACCEPT
$ipt -A INPUT -i $EXTIF -p icmp --icmp-type 11 -j ACCEPT
$ipt -A INPUT -i $EXTIF -p icmp --icmp-type 12 -j ACCEPT
$ipt -A INPUT -i $EXTIF -p icmp --icmp-type 14 -j ACCEPT
$ipt -A INPUT -i $EXTIF -p icmp --icmp-type 16 -j ACCEPT
$ipt -A INPUT -i $EXTIF -p icmp --icmp-type 18 -j ACCEPT
$ipt -A INPUT -i $EXTIF -p icmp -j LOG -m limit --log-prefix "FILTER ICMP-BAD-TYPE-IN:"
$ipt -A INPUT -i $EXTIF -p icmp -j DROP
$ipt -A INPUT -i $EXTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
Спасибо сказали:
Аватара пользователя
sarutobi
Сообщения: 676
Статус: Добрость и скромнота
ОС: Debian 5, FreeBSD 6.2/8.0
Контактная информация:

Re: Решено: Нужна помощь с rc.firewall

Сообщение sarutobi »

с сервера 192.9.100.254 работает telnet 194.67.57.226 25 и telnet 194.67.57.226 110 ?
Fire and water, earth and sky - mistery surrounds us, legends never die!
Спасибо сказали:
alexcandr
Сообщения: 157
ОС: CentOS 5.3
Контактная информация:

Re: Решено: Нужна помощь с rc.firewall

Сообщение alexcandr »

sarutobi писал(а):
06.05.2009 14:04
с сервера 192.9.100.254 работает telnet 194.67.57.226 25 и telnet 194.67.57.226 110 ?


с самого начало все опишу, а то может я ошибку уже допустил..
1,Определим адрес mail.ru

[root@mail rc.d]# telnet pop.bk.ru 110
Trying 94.100.177.9...
Connected to pop.bk.ru (94.100.177.9).
Escape character is '^]'.
+OK

Почему bk,ru у меня почна на майле @bk.ru.. Соединение прошло успешно

Дольше в rc.firewall добавили

$ipt -A INPUT -p tcp -s 192.9.100.0/24 -d 94.100.177.9 --dport 110 -j ACCEPT
$ipt -A OUTPUT -p tcp -s 192.9.100.0/24 -d 94.100.177.9 --dport 110 -j ACCEPT
$ipt -A FORWARD -p tcp -s 192.9.100.0/24 -d 94.100.177.9 --dport 110 -j ACCEPT
$ipt -A FORWARD -p tcp -s 192.9.100.0/24 -d 94.100.177.9 --sport 110 -j ACCEPT

перезапускае iptables

Идем в Бат,,, в настройках входяшей почты прописываем pop3.bk.ru либо pop.bk.ru

жмем на получение почты, Невозможно соединится с сервером...

Или я неправильно адрес определил или хз что
Спасибо сказали:
Аватара пользователя
sarutobi
Сообщения: 676
Статус: Добрость и скромнота
ОС: Debian 5, FreeBSD 6.2/8.0
Контактная информация:

Re: Решено: Нужна помощь с rc.firewall

Сообщение sarutobi »

Насколько я понял, с сервера работает.

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

$ipt -A INPUT -p tcp -s 192.9.100.0/24 --dport 110 -j ACCEPT
$ipt -A OUTPUT -p tcp -s 192.9.100.0/24 --dport 110 -j ACCEPT
$ipt -A FORWARD -p tcp -s 192.9.100.0/24 --dport 110 -j ACCEPT
$ipt -A FORWARD -p tcp -d 192.9.100.0/24 --sport 110 -j ACCEPT

если у вас сеть 192.9.100.0/24
Fire and water, earth and sky - mistery surrounds us, legends never die!
Спасибо сказали:
alexcandr
Сообщения: 157
ОС: CentOS 5.3
Контактная информация:

Re: Решено: Нужна помощь с rc.firewall

Сообщение alexcandr »

[root@mail rc.d]# telnet pop.bk.ru 110
Trying 94.100.177.9...
Connected to pop.bk.ru (94.100.177.9).
Escape character is '^]'.
+OK


Да сеть 192,9,100,0/24
Спасибо сказали:
Аватара пользователя
butch
Сообщения: 331
ОС: :OC

Re: Решено: Нужна помощь с rc.firewall

Сообщение butch »

sarutobi писал(а):
06.05.2009 11:28
а) разрешить прием трафика на 25 и 110 порты на внутреннем интерфейсе (Цепочка INPUT)
б) разрешить отправку трафика на 25 и 110 порты на внешнем интрефейсе(Цепочка OUTPUT)

alexcandr писал(а):
06.05.2009 14:21
$ipt -A INPUT -p tcp -s 192.9.100.0/24 -d 94.100.177.9 --dport 110 -j ACCEPT
$ipt -A OUTPUT -p tcp -s 192.9.100.0/24 -d 94.100.177.9 --dport 110 -j ACCEPT

я просто поинтересуюсь пока что - в чем смысл сего?
пакеты, которые пойдут с хостов до мэйла - не попадут ни в инпут, ни в аутпут.
управление этими пакетами будет в форвард ;) так что эти правила выкидывайте нафиг.
alexcandr писал(а):
06.05.2009 14:21
$ipt -A FORWARD -p tcp -s 192.9.100.0/24 -d 94.100.177.9 --dport 110 -j ACCEPT
$ipt -A FORWARD -p tcp -s 192.9.100.0/24 -d 94.100.177.9 --sport 110 -j ACCEPT

вот это уже похоже на правду.
нам нужно разрешить для начала пересылку пакетов:

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

echo "1" > /proc/sys/net/ipv4/ip_forward

отредактируйте /etc/sysctl.conf

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

net.ipv4.ip_forward = 1

теперь нам обязательно стоит почитать вот это: http://www.opennet.ru/docs/RUS/iptables/
далее.
на сервер открываем 110 порт в форвард на любой хост. а также разрешаем доступ к днс серверам:

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

$ipt -A FORWARD -p tcp -s 192.9.100.0/24 --dport 110 -j ACCEPT
$ipt -A FORWARD -p udp -s 192.9.100.0/24 --dport 53 -j ACCEPT

теперь, нам нужно правило маскарадинга для этих портов.
иначе пакеты от вас уйдут, но уж точно не вернуться.

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

$ipt -t nat -A POSTROUTING -p tcp -j MASQUERADE --dport 110 -s 192.9.100.0/24
$ipt -t nat -A POSTROUTING -p udp -j MASQUERADE --dport 53 -s 192.9.100.0/24
после этого прописываем на клиенте дефулт гейтвей - шлюз.
узнаем днс провайдера (DNS_PROVA)
теперь пробуем:
telnet 94.100.177.9 110
nslookup mail.ru $DNS_PROVA

обе эти операции должны пройти успешна =)
теперь дело за малым - организуйте резолвинг имен на клиентах каким либо образом. настройте форвардинг на существующем днс. или тупо пропишите клиенту днс провайдера.
теперь нужны правила для смтп до релея прова:

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

$ipt -A FORWARD -p tcp -s 192.9.100.0/24 --dport 25 -d $RELAY_PROVA -j ACCEPT
$ipt -t nat -A POSTROUTING -p tcp -j MASQUERADE --dport 25 -s 192.9.100.0/24 -d $RELAY_PROVA

и после этого соответсвенно телнет на 25 порт релея прова.
все должно быть найс.
в клиентах прописываем смтп - релей прова.
ПЫСЫ: разжевал максимально. но правила писал на вскидку. их возможно нужно подправить.
Спасибо сказали:
Аватара пользователя
Terek
Сообщения: 10
ОС: Slackware Linux
Контактная информация:

Re: Решено: Нужна помощь с rc.firewall

Сообщение Terek »

alexcandr писал(а):
05.05.2009 17:36
Всем привет, нужна помощь


Вот пример моего конфига rc.firewall в slackware, доступ юзеров на внешние почтовые сервера, ftp и ICQ по конкретным IP-адресам компьютеров:

eth0 - внутренний интерфейс
eth1=888.888.888.888 - внешний интерфейс
192.168.777.777 - это мой IP-адрес в локальной сети

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

/sbin/route del default
/sbin/route add default gw 888.888.888.888
/sbin/modprobe ipt_MASQUERADE
/usr/sbin/iptables -F; /usr/sbin/iptables -t nat -F; /usr/sbin/iptables -t mangle -F
/usr/sbin/iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to 888.888.888.888

# перенаправляем http-трафик в локальной сети на порт 3128 (squid)
/usr/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128


# open port 21 ftp(обычно закрыт, открывается для друзей :-)
#/usr/sbin/iptables -A INPUT -i eth1 -p tcp --dport 21 -j ACCEPT


# далее открываю себе лично порты 21,25,110,465,995,5190
# access MAIL Terek smtp
/usr/sbin/iptables -A FORWARD -p tcp -s 192.168.777.777 --dport 25 -o eth1 -j ACCEPT
# access MAIL Terek pop3
/usr/sbin/iptables -A FORWARD -p tcp -s 192.168.777.777 --dport 110 -o eth1 -j ACCEPT
# access MAIL Terek pop3 SSL
/usr/sbin/iptables -A FORWARD -p tcp -s 192.168.777.777 --dport 995 -o eth1 -j ACCEPT
# access MAIL Terek smtp SSL
/usr/sbin/iptables -A FORWARD -p tcp -s 192.168.777.777 --dport 465 -o eth1 -j ACCEPT


# access ICQ Terek
/usr/sbin/iptables -A FORWARD -p tcp -s 192.168.777.777 --dport 5190 -o eth1 -j ACCEPT

# access FTP Terek
/usr/sbin/iptables -A FORWARD -p tcp -s 192.168.777.777 --dport 21 -o eth1 -j ACCEPT

# access ICQ Nastenka(это секретарша директора, не может жить без аськи)
/usr/sbin/iptables -A FORWARD -p tcp -s 192.168.777.778 --dport 5190 -o eth1 -j ACCEPT

# Close all ports
/usr/sbin/iptables -A FORWARD -o eth1 -p tcp -j DROP

echo 1 > /proc/sys/net/ipv4/ip_forward
Спасибо сказали:
alexcandr
Сообщения: 157
ОС: CentOS 5.3
Контактная информация:

Re: Решено: Нужна помощь с rc.firewall

Сообщение alexcandr »

Всем спасибо!!!
Достаточно было дописать в мой конфиг это:

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

$ipt -A FORWARD -p tcp -s 192.9.100.0/24 --dport 110 -j ACCEPT
$ipt -A FORWARD -p udp -s 192.9.100.0/24 --dport 53 -j ACCEPT


Все заработало,ура
Спасибо сказали:
Ответить