Задать вопрос
@tamogavk
@deni4ka

Проблемы с медком и iptables?

Не получается на шлюзе в iptables открыть порты для 465,993 для того, чтобы медок мог отправлять отчеты, при отправке пишет ошибка передачи, телнетом порты не прозваниваются. Правило вроде есть, вот конфиг:
$ip -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

$ip -A INPUT -i lo -j ACCEPT
$ip -A INPUT -p icmp -j ACCEPT
$ip -A INPUT -p tcp --dport 4491 -j ACCEPT
$ip -A INPUT -p tcp --dport 465 -j ACCEPT
$ip -A INPUT -p tcp --dport 993 -j ACCEPT
$ip -A INPUT -p udp --dport 53 -j ACCEPT
$ip -A INPUT -i $LOCAL_IF -s $LOCAL_NET -j ACCEPT
$ip -A INPUT -i tun+ -j ACCEPT
$ip -A INPUT ! -i $EXTERNAL_IF -p tcp --dport 3128 -j ACCEPT
$ip -A INPUT ! -i $EXTERNAL_IF -p udp --dport 67:68 -j ACCEPT

$ip -A INPUT -j LOG --log-prefix INPUT_ -m limit --limit 5/min
$ip -A INPUT -j DROP

### FORWARD Rulese
$ip -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$ip -A FORWARD -s 10.20.31.43 -d 87.240/16 -j DROP
#CP-pos
$ip -t nat -A POSTROUTING -s 10.20.31.50 -o $EXTERNAL_IF -j MASQUERADE
$ip -A FORWARD -s 10.20.31.50 -d 213.133.168.141 -j ACCEPT
$ip -A FORWARD -s 10.20.31.50 -d 185.34.224.110 -j ACCEPT
$ip -A FORWARD -s 10.20.31.50 -d 212.109.37.162 -j ACCEPT
$ip -A FORWARD -s 10.20.31.50 -j DROP

#cam
$ip -A FORWARD -d 10.20.31.31 -p udp -m multiport --dports 8001 -j ACCEPT
$ip -A FORWARD -d 10.20.31.32 -p udp -m multiport --dports 8001 -j ACCEPT
$ip -A FORWARD -d 10.20.31.33 -p udp -m multiport --dports 8001 -j ACCEPT
$ip -A FORWARD -d 10.20.31.31 -p tcp -m multiport --dports 8000 -j ACCEPT
$ip -A FORWARD -d 10.20.31.32 -p tcp -m multiport --dports 8000 -j ACCEPT
$ip -A FORWARD -d 10.20.31.33 -p tcp -m multiport --dports 8000 -j ACCEPT
$ip -A FORWARD -d 10.20.31.31 -p tcp -m multiport --dports 80 -j ACCEPT
$ip -A FORWARD -d 10.20.31.32 -p tcp -m multiport --dports 80 -j ACCEPT
$ip -A FORWARD -d 10.20.31.33 -p tcp -m multiport --dports 80 -j ACCEPT

#
$ip -A FORWARD -i $LOCAL_IF -s $LOCAL_NET -j ACCEPT

$ip -A FORWARD -s $WCS_NET2 -d 10.0.0.0/8 -j DROP
$ip -A FORWARD -s $WCS_NET2 ! -d 192.168/16 -j ACCEPT
$ip -A FORWARD -s $WCS_NET3 -d 10.0.0.0/8 -j DROP
$ip -A FORWARD -s $WCS_NET3 ! -d 192.168/16 -j ACCEPT
#### Plan #####
$ip -A FORWARD -s $WCS_NET -d 216.137.61.0/24 -j ACCEPT
$ip -A FORWARD -s $WCS_NET -d 54.224.0.0/12 -p tcp --dport 80 -j ACCEPT
$ip -A FORWARD -s $WCS_NET -m multiport -p tcp --dports 53,5432,8291 -j ACCEPT
$ip -A FORWARD -s $WCS_NET -p udp --dport 53 -j ACCEPT
$ip -A FORWARD -s $WCS_NET -p icmp -j ACCEPT
# $ip -A FORWARD -s $WCS_NET -d 10.20.31.250 -j ACCEPT
$ip -A FORWARD -s $WCS_NET -d 10.0.0.0/8 -j DROP
$ip -A FORWARD -s $WCS_NET -j DROP

$ip -A FORWARD -i tun+ -j ACCEPT
$ip -A FORWARD -o tun+ -j ACCEPT

$ip -A FORWARD -j LOG --log-prefix FORWARD_ -m limit --limit 5/min
$ip -A FORWARD -j DROP

### NAT Prerouting
$ip -t nat -A PREROUTING -s $LOCAL_NET ! -d 192.168/16 -p tcp --dport 80 -j REDIRECT --to-port 3128
$ip -t nat -A PREROUTING -s $WCS_NET ! -d 192.168/16 -p tcp --dport 80 -j REDIRECT --to-port 3128

### NAT Postrouting
#mail
$ip -t nat -A POSTROUTING -d mail.shf.com.ua -o $EXTERNAL_IF -p tcp -m multiport --dports 80,443,465,993,995 -j MASQUERADE
#
$ip -t nat -A POSTROUTING -p icmp -s $LOCAL_NET -o $EXTERNAL_IF -j MASQUERADE
$ip -t nat -A POSTROUTING -p udp -s $LOCAL_NET -o $EXTERNAL_IF -j MASQUERADE
$ip -t nat -A POSTROUTING -s $LOCAL_NET -o $EXTERNAL_IF -p tcp -m multiport --dports 25,110,143,443,4446,5190,6642,6649,7780,30583,60606,4566,5432 -j MASQUERADE
$ip -t nat -A POSTROUTING -s $WCS_NET -o $EXTERNAL_IF -j MASQUERADE
$ip -t nat -A POSTROUTING -s $WCS_NET2 -o $EXTERNAL_IF -j MASQUERADE
$ip -t nat -A POSTROUTING -s $WCS_NET3 -o $EXTERNAL_IF -j MASQUERADE

#cam
$ip -t nat -A PREROUTING -p udp -d 94.179.145.78 --dport 8011 -j DNAT --to-destination 10.20.31.31:8001
$ip -t nat -A PREROUTING -p udp -d 94.179.145.78 --dport 8012 -j DNAT --to-destination 10.20.31.32:8001
$ip -t nat -A PREROUTING -p udp -d 94.179.145.78 --dport 8013 -j DNAT --to-destination 10.20.31.33:8001
$ip -t nat -A PREROUTING -p tcp -d 94.179.145.78 --dport 8111 -j DNAT --to-destination 10.20.31.31:8000
$ip -t nat -A PREROUTING -p tcp -d 94.179.145.78 --dport 8112 -j DNAT --to-destination 10.20.31.32:8000
$ip -t nat -A PREROUTING -p tcp -d 94.179.145.78 --dport 8113 -j DNAT --to-destination 10.20.31.33:8000
$ip -t nat -A PREROUTING -p tcp -d 94.179.145.78 --dport 8081 -j DNAT --to-destination 10.20.31.31:80
$ip -t nat -A PREROUTING -p tcp -d 94.179.145.78 --dport 8082 -j DNAT --to-destination 10.20.31.32:80
$ip -t nat -A PREROUTING -p tcp -d 94.179.145.78 --dport 8083 -j DNAT --to-destination 10.20.31.33:80
#CP-pos
$ip -t nat -A POSTROUTING -s 10.20.31.50 -o $EXTERNAL_IF -j MASQUERADE
#
#Radio
# $ip -t nat -A POSTROUTING -p tcp -s 10.20.31.200 --dport 8000 -o $EXTERNAL_IF -j MASQUERADE
#
#Evolution
$ip -t nat -A POSTROUTING -s 10.20.31.210 -p tcp -m multiport --dports 1212,1213,1214,1215 -o $EXTERNAL_IF -j MASQUERADE

}
#buh
$ip -t nat -A POSTROUTING -s 10.20.31.18 -p tcp -m multiport --dports 25,110,143 -o $EXTERNAL_IF -j MASQUERADE

  • Вопрос задан
  • 499 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
martin74ua
@martin74ua Куратор тега Системное администрирование
Linux administrator
465 и 993 -это почта.
Внимание вопрос - а куда вам эти порты открыть надо? у вас они сейчас открыты к вам из интернета
Ответ написан
@krosh
Вопрос в том, откуда куда должен идти трафик? Из локальной сети на mail.shf.com.ua? или из интернета локально на шлюз?

Фильтрация в таблице nat не рекомендуется:

$ip -t nat -A POSTROUTING -d mail.shf.com.ua -o $EXTERNAL_IF -p tcp -m multiport --dports 80,443,465,993,995 -j MASQUERADE


Рекомендую заменить на:

-t nat -A POSTROUTING -j MASQUERADE
-P FORWARD DROP
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i $LOCAL_IF -o $EXTERNAL_IF -s $LOCAL_NET -d mail.shf.com.ua  -p tcp -m multiport --dports 80,443,465,993,995  -m comment --comment "РАЗРЕШЕНО ИСХ Почтовые протоколы + http/s" -j ACCEPT


Если трафик идет на шлюз, а не транзитный, то смотрите процесс на порту:
netstat -antp |grep 465

У Вас в правилах бардак. Надо бы сначала из причесать, а уже потом разбираться. Скорей всего из-за этого что-то и не работает. А бардак просто от незнания.

Почему используете MASQUERADE, а не SNAT? Внешний адрес динамический?

Проблема таких скриптов, в том, что не ясно какой набор правил будет в итоге. А если работа скрипта прервется на полпути? Где очистка цепочек перед загрузкой новых правил? Политики по умолчанию? Используйте iptables-save, iptables-restore. Либо генерируйте сценарием файл с правилами, а грузите есть через iptables-restore.

Нужно хотя бы iptables -L --line-numbers показать, чтобы фактическое состояние смотреть, а не то, что в скрипте прописано.

Хотите разобраться? Сохраните все правила и очистите все цепочки и начинайте настройку именно с открытия нужных портов и маскарадинга трафика. Потом усложняйте правила.

В блоке #cam уж используйте multiport, они же есть в других правилах ниже.

80 порт Вы редиректите на прокси, а 443/https маскарадите. Будьте последовательны в своих намерениях. Либо пользуйте прокси на все порты, либо используйте НАТ/маскардинг для всего трафика.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
oia
@oia
а можно узнать с какого перепугу они должны быть у тебя при телнете доступны ? ты же отправляешь а не висит у тебя сервис на этих портах
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы