custom ISP placeholder

This commit is contained in:
bolvan 2016-12-09 16:33:29 +03:00
parent 37e373ef31
commit 2c30f8e4c2
5 changed files with 98 additions and 7 deletions

View File

@ -17,6 +17,10 @@ ISP=mns
#ISP=domru
#ISP=tiera
# If ISP is unlisted then uncomment "custom"
# Find out what works for your ISP and modify "# PLACEHOLDER" parts of this script
#ISP=custom
# CHOSE NETWORK INTERFACE BEHIND NAT
SLAVE_ETH=eth0
@ -90,6 +94,16 @@ case "$1" in
DAEMON=$TPWS
DAEMON_OPTS="--port=$TPPORT --split-http-req=host --user=$TPWS_USER --bind-addr=127.0.0.1"
;;
custom)
# PLACEHOLDER
echo !!! NEED ATTENTION !!!
echo Select daemon and options that work for you
echo \(optional\) Prepare environment for running daemon
echo Configure iptables for required actions
echo Study how other sections work
DAEMON=/bin/sleep
DAEMON_OPTS=20
;;
esac
echo -n "Starting $DESC: "
@ -125,6 +139,13 @@ case "$1" in
iptables -t nat -D OUTPUT -p tcp --dport 80 -m owner ! --uid-owner $TPWS_USER -m set --match-set zapret dst -j DNAT --to 127.0.0.1:$TPPORT
DAEMON=$TPWS
;;
custom)
# PLACEHOLDER
echo !!! NEED ATTENTION !!!
echo Clear firewall rules here. Remove iptables changes made previously.
echo Select which daemon to stop.
echo Study how other sections work
;;
esac
echo -n "Stopping $DESC: "

View File

@ -0,0 +1,3 @@
# put it to /etc/firewall.user
# study how other firewall.user scripts work and put here rules that work for you

View File

@ -7,7 +7,10 @@
ISP=beeline
#ISP=domru
#ISP=tiera
#ISP=none
# If ISP is unlisted then uncomment "custom"
# Find out what works for your ISP and modify "# PLACEHOLDER" parts of this script
#ISP=custom
USE_PROCD=1
# start betfore firewall - we need ipset populated
@ -65,6 +68,13 @@ get_daemon() {
DAEMON_OPTS="--port=$TPPORT --split-http-req=host --bind-addr=127.0.0.1 --user=$TPWS_USER"
DAEMON=$TPWS
;;
custom)
# PLACEHOLDER
echo !!! NEED ATTENTION !!!
echo Select which daemon and what options work for you
DAEMON_OPTS=20
DAEMON=/bin/sleep
;;
esac
}

View File

@ -6,12 +6,16 @@ stop on runlevel [!2345]
# CHOOSE ISP HERE. UNCOMMENT ONLY ONE LINE.
#env ISP=mns
#env ISP=rt
#env ISP=beeline
env ISP=domru
env ISP=beeline
#env ISP=domru
#env ISP=tiera
# If ISP is unlisted then uncomment "custom"
# Find out what works for your ISP and modify "# PLACEHOLDER" parts of this script
#env ISP=custom
# CHOSE NETWORK INTERFACE BEHIND NAT
env SLAVE_ETH=eth0
env SLAVE_ETH=eth1
env QNUM=200
@ -45,7 +49,11 @@ pre-start script
iptables -t raw -I PREROUTING -p udp --sport 53 -m string --hex-string "|5cfff164|" --algo bm -j DROP --from 40 --to 300
iptables -t raw -C PREROUTING -p udp --sport 53 -m string --hex-string "|2a022698a00000000000000000000064|" --algo bm -j DROP --from 40 --to 300 ||
iptables -t raw -I PREROUTING -p udp --sport 53 -m string --hex-string "|2a022698a00000000000000000000064|" --algo bm -j DROP --from 40 --to 300
;;
iptables -t raw -C PREROUTING -p udp --sport 53 -m string --hex-string "|5cfff16e|" --algo bm -j DROP --from 40 --to 300 ||
iptables -t raw -I PREROUTING -p udp --sport 53 -m string --hex-string "|5cfff16e|" --algo bm -j DROP --from 40 --to 300
iptables -t raw -C PREROUTING -p udp --sport 53 -m string --hex-string "|2a022698a00000000000000000000110|" --algo bm -j DROP --from 40 --to 300 ||
iptables -t raw -I PREROUTING -p udp --sport 53 -m string --hex-string "|2a022698a00000000000000000000110|" --algo bm -j DROP --from 40 --to 300
;;
tiera)
adduser --disabled-login --no-create-home --system --quiet $TPWS_USER
sysctl -w net.ipv4.conf.$SLAVE_ETH.route_localnet=1
@ -54,6 +62,13 @@ pre-start script
iptables -t nat -C OUTPUT -p tcp --dport 80 -m owner ! --uid-owner $TPWS_USER -m set --match-set zapret dst -j DNAT --to 127.0.0.1:$TPPORT ||
iptables -t nat -I OUTPUT -p tcp --dport 80 -m owner ! --uid-owner $TPWS_USER -m set --match-set zapret dst -j DNAT --to 127.0.0.1:$TPPORT
;;
custom)
# PLACEHOLDER
echo !!! NEED ATTENTION !!!
echo \(optional\) Prepare environment for running daemon
echo Configure iptables for required actions
echo Study how other sections work
;;
esac
end script
@ -79,6 +94,14 @@ script
NFEXE=$TPWS
NFARG="--port=$TPPORT --split-http-req=host --user=$TPWS_USER --bind-addr=127.0.0.1"
;;
custom)
# PLACEHOLDER
echo !!! NEED ATTENTION !!!
echo Select which daemon and what options work for you
echo Study how other sections work
NFEXE=/bin/sleep
NFARG=20
;;
esac
$NFEXE $NFARG
[ -n "$NFEXE" ] && $NFEXE $NFARG
@ -98,11 +121,19 @@ pre-stop script
iptables -t nat -D OUTPUT -p tcp --dport 80 -m owner ! --uid-owner $TPWS_USER -m set --match-set zapret dst -j DNAT --to 127.0.0.1:$TPPORT
iptables -t raw -D PREROUTING -p udp --sport 53 -m string --hex-string "|5cfff164|" --algo bm -j DROP --from 40 --to 300
iptables -t raw -D PREROUTING -p udp --sport 53 -m string --hex-string "|2a022698a00000000000000000000064|" --algo bm -j DROP --from 40 --to 300
iptables -t raw -D PREROUTING -p udp --sport 53 -m string --hex-string "|5cfff16e|" --algo bm -j DROP --from 40 --to 300
iptables -t raw -D PREROUTING -p udp --sport 53 -m string --hex-string "|2a022698a00000000000000000000110|" --algo bm -j DROP --from 40 --to 300
;;
tiera)
sysctl -w net.ipv4.conf.$SLAVE_ETH.route_localnet=0
iptables -t nat -D PREROUTING -p tcp --dport 80 -i $SLAVE_ETH -m set --match-set zapret dst -j DNAT --to 127.0.0.1:$TPPORT
iptables -t nat -D OUTPUT -p tcp --dport 80 -m owner ! --uid-owner $TPWS_USER -m set --match-set zapret dst -j DNAT --to 127.0.0.1:$TPPORT
;;
custom)
# PLACEHOLDER
echo !!! NEED ATTENTION !!!
echo Clear firewall rules here. Remove iptables changes made previously.
echo Study how other sections work
;;
esac
end script

View File

@ -141,6 +141,25 @@ tkt : помогает разделение http запроса на сегме
tiera : сама тиера до последнего ничего не банила. Похоже, что банит вышестоящий оператор, возможно telia.
Требуется сплит http запросов в течение всей сессии.
Другие провайдеры
-----------------
Первым делом необходимо выяснить не подменят ли ваш провайдер DNS.
Посмотрите во что ресолвятся заблокированные хосты у вашего провайдера и через какой-нибудь web net tools, которых можно нагуглить множество. Сравните.
Если ответы разные, то попробуйте заресолвить те же хосты с DNS сервера 8.8.8.8 через вашего провайдера.
Если ответ от 8.8.8.8 нормальный - поменяйте DNS. Если ответ ненормальный, значит провайдер перехватывает запросы на сторонние DNS.
Используйте dnscrypt.
Далее необходимо выяснить какой метод обхода DPI работает на вашем провайдере.
В этом вам поможет скрипт https://github.com/ValdikSS/blockcheck.
Выберите какой демон вы будете использовать : nfqws или tpws.
Подготовьте вручную правила iptables для вашего случая, выполните их.
Запустите демон с нужными параметрами вручную.
Проверьте работает ли.
Когда вы найдете рабочий вариант, отредактируйте init скрипт для вашей системы.
Раскомментируйте ISP=custom. Добавьте ваш код в места "# PLACEHOLDER" по аналогии с секциями для других провайдеров для найденной рабочей комбинации.
Для openwrt поместите в /etc/firewall.user свой код по аналогии с готовыми скриптами.
Способы получения списка заблокированных IP
-------------------------------------------
@ -217,15 +236,22 @@ ubuntu 12,14
Имеется готовый конфиг для upstart : zapret.conf. Его нужно скопировать в /etc/init и настроить по аналогии с debian.
Запуск службы : "start zapret"
Останов службы : "stop zapret"
Просмотр сообщений : cat /var/log/upstart/zapret.log
Ubuntu 12 так же, как и debian 7, оснащено ядром 3.2. См замечание в разделе "debian 7".
ubuntu 16,debian 8
------------------
Процесс аналогичен debian 7, однако требуется зарегистрировать init скрипты в systemd после их копирования в /etc/init.d.
install : /usr/lib/lsb/install_initd zapret
remove : /usr/lib/lsb/remove_initd zapret
По умолчанию lsb-core может быть не установлен.
apt-get update
apt-get --no-install-recommends install lsb-core
install : /usr/lib/lsb/install_initd zapret
remove : /usr/lib/lsb/remove_initd zapret
start : sytemctl start zapret
stop : systemctl stop zapret
status, output messages : systemctl status zapret
Другие linux системы
--------------------