iptables neg_deposit

Ответить
electro_
Сообщения: 21
Зарегистрирован: Чт июл 18, 2013 11:47 am

iptables neg_deposit

Сообщение electro_ »

Добрый день, форумчане и земляне!

Есть задача по фильтру негативного депозита и перенаправления абонентов на страницу негативного депозита

1. Сейча реализовано все при помощи скрипта и работает редирект на 80 порту

AWK=/usr/bin/awk
REDIRECT_IP="91.196.176.6"
ALLOW_NET="91.196.176.0/24"
IPTABLES="/sbin/iptables"
DEBUG=1


EXIST=`${IPTABLES} -t nat -L PREROUTING -v | grep "${IFNAME} "; ${IPTABLES} -L -v | grep DROP | grep "${IFNAME} "`
if [ w != w"${EXIST}" ]; then
${IPTABLES} -t nat -D PREROUTING -i ${IFNAME} -p tcp -m tcp --dport 80 -j DNAT --to-destination ${REDIRECT_IP}:80
${IPTABLES} -D FORWARD -i ${IFNAME} -j DROP
fi;

#### Filters
if [ w${FILTERS} != w ] ; then
#Put there filters rule
#echo "Filter: ${FILTERS}"

if [ w${FILTERS} = wNEG_DEPOSIT ] ; then
#### Filters
$IPTABLES -t nat -A PREROUTING -i ${IFNAME} -p tcp -m tcp --dport 80 -j DNAT --to-destination $REDIRECT_IP:80
$IPTABLES -t nat -A PREROUTING -i ${IFNAME} -d ${ALLOW_NET} -j RETURN
$IPTABLES -t nat -A PREROUTING -i ${IFNAME} -d 62.149.25.124 -j RETURN
$IPTABLES -t nat -A PREROUTING -i ${IFNAME} -d 185.68.16.86 -j RETURN
$IPTABLES -t nat -A PREROUTING -i ${IFNAME} -d 91.222.137.199 -j RETURN
$IPTABLES -t nat -A PREROUTING -i ${IFNAME} -d 91.200.28.177 -j RETURN
$IPTABLES -t nat -A PREROUTING -i ${IFNAME} -d 195.85.198.17 -j RETURN
$IPTABLES -t nat -A PREROUTING -i ${IFNAME} -d 54.229.21.126 -j RETURN
$IPTABLES -t nat -A PREROUTING -i ${IFNAME} -d 52.30.57.18 -j RETURN
$IPTABLES -t nat -A PREROUTING -i ${IFNAME} -d 54.154.124.100/32 -j RETURN
$IPTABLES -t nat -A PREROUTING -i ${IFNAME} -d 54.154.124.224/32 -j RETURN
$IPTABLES -t nat -A PREROUTING -i ${IFNAME} -d 212.158.173.43 -j RETURN
$IPTABLES -I FORWARD -i ${IFNAME} -d ${ALLOW_NET} -j ACCEPT
$IPTABLES -I FORWARD -i ${IFNAME} -d 62.149.25.124 -j ACCEPT
$IPTABLES -I FORWARD -i ${IFNAME} -d 185.68.16.86 -j ACCEPT
$IPTABLES -I FORWARD -i ${IFNAME} -d 91.222.137.199 -j ACCEPT
$IPTABLES -I FORWARD -i ${IFNAME} -d 91.200.28.177 -j ACCEPT
$IPTABLES -I FORWARD -i ${IFNAME} -d 195.85.198.17 -j ACCEPT
$IPTABLES -I FORWARD -i ${IFNAME} -d 54.229.21.126 -j ACCEPT
$IPTABLES -I FORWARD -i ${IFNAME} -d 52.30.57.18 -j ACCEPT
$IPTABLES -I FORWARD -i ${IFNAME} -d 54.154.124.100/32 -j ACCEPT
$IPTABLES -I FORWARD -i ${IFNAME} -d 54.154.124.224/32 -j ACCEPT
$IPTABLES -I FORWARD -i ${IFNAME} -d 54.229.105.178/31 -j ACCEPT
$IPTABLES -I FORWARD -i ${IFNAME} -d 217.117.64.0/22 -j ACCEPT
$IPTABLES -I FORWARD -i ${IFNAME} -d 212.158.173.43 -j ACCEPT
$IPTABLES -A FORWARD -i ${IFNAME} -j DROP
if [ w${DEBUG} != w ] ; then
echo "UP neg filter / ${FILTERS} / '${IFNAME}'" >> /tmp/neg
fi;
exit;
fi;

#Max TCP Sessions filter
FILTER_ID=`echo ${FILTERS} | awk -F: '{ print $1 }'`;
if [ w${FILTER_ID} = wMAX_TCP ]; then
COUNT=`echo ${FILTERS} | awk -F: '{ print $2 }'`;

fi;
fi;

fi;

2. Что мне нужно

Все тоже самое, но при обращение на сайты на протокол https также перенаправлялись на страницу негативного депозита на 80 порт или на 443 порт

Сейчас много сайтов работает по https:// (google, vk, ok. facebook, ya, ). И все у кого негативный депозит, открывая например https://vk.com не перенапрявляются на страницу негативного депозита, тем самым не могут увидеть что у них не оплачено, что ооочень не удобно.

Готовы оплатить за реализацию в пределах разумного :)

kaktatak
Сообщения: 42
Зарегистрирован: Пн фев 15, 2010 3:04 pm

Re: iptables neg_deposit

Сообщение kaktatak »

Еще не внедрял в "продакшн" но эксперементировал со следующим:
Абонентамм с отрицательным балансом выдаю IP из негативного пулла.
В iptables делаем два правила для перенаправления 80 и 443 порта на порты sqiud (на хабре есть несколько годных статей про ssl_bump)
Самое главное не лезть в подмену сертификатов, а пользоваться только возможностью посмотреть адрес назначения.
в сквиде настраивается правила, что можно ходить на статистику и сайты куда можно, все остальное отрезаем и запрещаем.
При запрете в sqiud можно указать действие с перенаправлением на нужный адрес.
Получаем немного сложную, но в тоже время на мой взгляд правильно работающую схему с перенаправлением на заглушку.
как покажет под "большой" нагрузкой пока не скажу.

Ответить