Решено: Нужна помощь с rc.firewall
Модератор: SLEDopit
Решено: Нужна помощь с rc.firewall
Всем привет, нужна помощь не могу никак разобраться с фаэрволом в 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
Ничего не помогло, не соединяется с сервером,,,
Прощу помощи, уже второй день ковыряюсь и все безтолку,
Заранее всем спасибо
есть сервак с выделеным каналом, инетом, почтой,,,
Что нужно сделать:
Что бы пользователи могли пользоваться своей внешней почтой типа 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
Ничего не помогло, не соединяется с сервером,,,
Прощу помощи, уже второй день ковыряюсь и все безтолку,
Заранее всем спасибо
Re: Решено: Нужна помощь с rc.firewall
Для транзитного трафика используется цепочка FORWARD.
Спасибо сказали:
Re: Решено: Нужна помощь с rc.firewall
Если честно, я не понял, причем тут "прокся" и почему ты считаешь, что у клиентов почтовые программы будут коннектиться не на smtp.mail.ru, а не твою прокси?
Спасибо сказали:
Re: Решено: Нужна помощь с rc.firewall
проще всего заставить из использовать вебморды этих почтовиков.
еще вариант:
разрешить резолвинг имен, через днс провайдера к примеру.
на все компы отдать через дхцп дефулт гейтвей - ваш шлюз.
разрешить 53удп наружу
пустить на 110тцп порт на любой дестинэйшон.
рассказать юзерам про релей провайдера и разрешить 25тцп только до него.
этого будет достаточно
Спасибо сказали:
- Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: Решено: Нужна помощь с rc.firewall
рассказать юзерам про релей провайдера и разрешить 25тцп только до него.
можно сделать правило, что весь трафик на 25 порт не-важно-куда будет приходить на ваш релей.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Re: Решено: Нужна помощь с rc.firewall
Ленивая Бестолочь писал(а): ↑06.05.2009 10:42рассказать юзерам про релей провайдера и разрешить 25тцп только до него.
можно сделать правило, ч5 пото весь трафик на 2рт не-важно-куда будет приходить на ваш релей.
Спасибо за советы, но я пока не очень понимаю что нужно сделать,,,
Я так понимаю что мне нужно открыть 25(отправка) и 110(получение) порты, правильно!
Это сделал,, но почта все равно не отправляется и не принимается
- sarutobi
- Сообщения: 676
- Статус: Добрость и скромнота
- ОС: Debian 5, FreeBSD 6.2/8.0
- Контактная информация:
Re: Решено: Нужна помощь с rc.firewall
Если я правильно понимаю ситуацию (поправьте меня), то файервол у вас стоит на гейте с двумя сетевыми адресами (внутренним и внешним). Вам нужно:
а) разрешить прием трафика на 25 и 110 порты на внутреннем интерфейсе (Цепочка INPUT)
б) разрешить отправку трафика на 25 и 110 порты на внешнем интрефейсе(Цепочка OUTPUT)
в) Включить форвардинг (наверняка уже сделано, но все таки проверьте)
г) разрешить форвард трафика на порты 110 и 25 с внутреннего интерфейса на внешний (цепочка FORWARD)
никакого маскарадинга не требуется - забудьте про PREROUTING и DNAT
а) разрешить прием трафика на 25 и 110 порты на внутреннем интерфейсе (Цепочка INPUT)
б) разрешить отправку трафика на 25 и 110 порты на внешнем интрефейсе(Цепочка OUTPUT)
в) Включить форвардинг (наверняка уже сделано, но все таки проверьте)
г) разрешить форвард трафика на порты 110 и 25 с внутреннего интерфейса на внешний (цепочка FORWARD)
никакого маскарадинга не требуется - забудьте про PREROUTING и DNAT
Fire and water, earth and sky - mistery surrounds us, legends never die!
Спасибо сказали:
Re: Решено: Нужна помощь с rc.firewall
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
а) 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
б) 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!
Re: Решено: Нужна помощь с rc.firewall
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
с сервера 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!
Re: Решено: Нужна помощь с rc.firewall
с самого начало все опишу, а то может я ошибку уже допустил..
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
Насколько я понял, с сервера работает.
если у вас сеть 192.9.100.0/24
Код: Выделить всё
$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!
Спасибо сказали:
Re: Решено: Нужна помощь с rc.firewall
[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
Trying 94.100.177.9...
Connected to pop.bk.ru (94.100.177.9).
Escape character is '^]'.
+OK
Да сеть 192,9,100,0/24
Re: Решено: Нужна помощь с rc.firewall
я просто поинтересуюсь пока что - в чем смысл сего?
пакеты, которые пойдут с хостов до мэйла - не попадут ни в инпут, ни в аутпут.
управление этими пакетами будет в форвард так что эти правила выкидывайте нафиг.
вот это уже похоже на правду.
нам нужно разрешить для начала пересылку пакетов:
Код: Выделить всё
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 порт релея прова.
все должно быть найс.
в клиентах прописываем смтп - релей прова.
ПЫСЫ: разжевал максимально. но правила писал на вскидку. их возможно нужно подправить.
Спасибо сказали:
Re: Решено: Нужна помощь с rc.firewall
Вот пример моего конфига 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
Re: Решено: Нужна помощь с rc.firewall
Всем спасибо!!!
Достаточно было дописать в мой конфиг это:
Все заработало,ура
Достаточно было дописать в мой конфиг это:
Код: Выделить всё
$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
Все заработало,ура