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=domru
#ISP=tiera #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 # CHOSE NETWORK INTERFACE BEHIND NAT
SLAVE_ETH=eth0 SLAVE_ETH=eth0
@ -90,6 +94,16 @@ case "$1" in
DAEMON=$TPWS DAEMON=$TPWS
DAEMON_OPTS="--port=$TPPORT --split-http-req=host --user=$TPWS_USER --bind-addr=127.0.0.1" 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 esac
echo -n "Starting $DESC: " 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 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 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 esac
echo -n "Stopping $DESC: " 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=beeline
#ISP=domru #ISP=domru
#ISP=tiera #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 USE_PROCD=1
# start betfore firewall - we need ipset populated # 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_OPTS="--port=$TPPORT --split-http-req=host --bind-addr=127.0.0.1 --user=$TPWS_USER"
DAEMON=$TPWS DAEMON=$TPWS
;; ;;
custom)
# PLACEHOLDER
echo !!! NEED ATTENTION !!!
echo Select which daemon and what options work for you
DAEMON_OPTS=20
DAEMON=/bin/sleep
;;
esac esac
} }

View File

@ -6,12 +6,16 @@ stop on runlevel [!2345]
# CHOOSE ISP HERE. UNCOMMENT ONLY ONE LINE. # CHOOSE ISP HERE. UNCOMMENT ONLY ONE LINE.
#env ISP=mns #env ISP=mns
#env ISP=rt #env ISP=rt
#env ISP=beeline env ISP=beeline
env ISP=domru #env ISP=domru
#env ISP=tiera #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 # CHOSE NETWORK INTERFACE BEHIND NAT
env SLAVE_ETH=eth0 env SLAVE_ETH=eth1
env QNUM=200 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 -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 -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 -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) tiera)
adduser --disabled-login --no-create-home --system --quiet $TPWS_USER adduser --disabled-login --no-create-home --system --quiet $TPWS_USER
sysctl -w net.ipv4.conf.$SLAVE_ETH.route_localnet=1 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 -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 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 esac
end script end script
@ -79,6 +94,14 @@ script
NFEXE=$TPWS NFEXE=$TPWS
NFARG="--port=$TPPORT --split-http-req=host --user=$TPWS_USER --bind-addr=127.0.0.1" 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 esac
$NFEXE $NFARG $NFEXE $NFARG
[ -n "$NFEXE" ] && $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 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 "|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 "|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) tiera)
sysctl -w net.ipv4.conf.$SLAVE_ETH.route_localnet=0 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 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 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 esac
end script end script

View File

@ -141,6 +141,25 @@ tkt : помогает разделение http запроса на сегме
tiera : сама тиера до последнего ничего не банила. Похоже, что банит вышестоящий оператор, возможно telia. tiera : сама тиера до последнего ничего не банила. Похоже, что банит вышестоящий оператор, возможно telia.
Требуется сплит http запросов в течение всей сессии. Требуется сплит 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 Способы получения списка заблокированных IP
------------------------------------------- -------------------------------------------
@ -217,15 +236,22 @@ ubuntu 12,14
Имеется готовый конфиг для upstart : zapret.conf. Его нужно скопировать в /etc/init и настроить по аналогии с debian. Имеется готовый конфиг для upstart : zapret.conf. Его нужно скопировать в /etc/init и настроить по аналогии с debian.
Запуск службы : "start zapret" Запуск службы : "start zapret"
Останов службы : "stop zapret" Останов службы : "stop zapret"
Просмотр сообщений : cat /var/log/upstart/zapret.log
Ubuntu 12 так же, как и debian 7, оснащено ядром 3.2. См замечание в разделе "debian 7". Ubuntu 12 так же, как и debian 7, оснащено ядром 3.2. См замечание в разделе "debian 7".
ubuntu 16,debian 8 ubuntu 16,debian 8
------------------ ------------------
Процесс аналогичен debian 7, однако требуется зарегистрировать init скрипты в systemd после их копирования в /etc/init.d. Процесс аналогичен debian 7, однако требуется зарегистрировать init скрипты в systemd после их копирования в /etc/init.d.
install : /usr/lib/lsb/install_initd zapret По умолчанию lsb-core может быть не установлен.
remove : /usr/lib/lsb/remove_initd zapret 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 системы Другие linux системы
-------------------- --------------------