diff --git a/config b/config index 20a92a9..9d6e7bf 100644 --- a/config +++ b/config @@ -21,7 +21,7 @@ TPWS_OPT_HTTPS="--split-pos=3" #SLAVE_ETH=eth0 -# for install_easy select which init script will be used to get ip or host list +# select which init script will be used to get ip or host list # possible value : get_user.sh get_antizapret.sh get_combined.sh get_reestr.sh get_hostlist.sh # comment if not required GETLIST="get_antizapret.sh" diff --git a/docs/readme.txt b/docs/readme.txt index 63302d5..745afc7 100644 --- a/docs/readme.txt +++ b/docs/readme.txt @@ -158,6 +158,9 @@ get_reestr.sh может использовать мультипоточный Все варианты рассмотренных скриптов автоматически создают и заполняют ipset. Варианты 2-4 дополнительно вызывают вариант 1. +5) ipset/get_config.sh. этот скрипт вызывает то, что прописано в переменной GETLIST из файла config +Если переменная не определена, то никаких действий не выполняется. + На роутерах не рекомендуется вызывать эти скрипты чаще раза за 2 суток, поскольку сохранение идет либо во внутреннюю флэш память роутера, либо в случае extroot - на флэшку. В обоих случаях слишком частая запись может убить флэшку, но если это произойдет с внутренней @@ -205,7 +208,7 @@ tpws должен запускаться без фильтрации по ipset. Выбор параметров ---------------- -Файл /opt/zapret/config используется различными компонентами системы и содержит основные настройки. +Файл /opt/zapret/config используется различными компонентами системы и содержит основные настройки. Его нужно просмотреть и при необходимости отредактировать. Выберите MODE : @@ -231,8 +234,9 @@ TPWS_OPT_HTTPS="--split-pos=3" название внутреннего сетевого интерфейса (LAN). Параметр GETLIST указывает инсталятору install_easy.sh какой скрипт дергать -для обновления списка заблокированных ip или хостов. - +для обновления списка заблокированных ip или хостов. Он же вносится в crontab. +Поместите сюда название скрипта, который будете использовать для обновления листов. +Если не нужно, то параметр следует закомментировать. Пример установки на debian-подобную систему ------------------------------------------- @@ -265,41 +269,14 @@ TPWS_OPT_HTTPS="--split-pos=3" Включить автозапуск службы : systemctl enable zapret -В зависимости от выбранного MODE : - -MODE содержит "ipset" : -Удалить старые ip листы, если они были созданы ранее : - rm /opt/zapret/ipset/zapret-ip.txt /opt/zapret/ipset/zapret-ip-user.txt /opt/zapret/ipset/zapret-ip-ipban.txt /opt/zapret/ipset/zapret-ip-user-ipban.txt +Удалить старые листы, если они были созданы ранее : + rm /opt/zapret/ipset/zapret-ip.txt /opt/zapret/ipset/zapret-ip-user.txt /opt/zapret/ipset/zapret-ip-ipban.txt /opt/zapret/ipset/zapret-ip-user-ipban.txt /opt/zapret/ipset/zapret-hosts.txt По желанию прописать в /opt/zapret/ipset/zapret-hosts-user.txt свои домены. -Выбрать каким скриптом из перечисленных будем получать список ip заблокированных адресов : - /opt/zapret/ipset/get_user.sh - /opt/zapret/ipset/get_antizapret.sh - /opt/zapret/ipset/get_combined.sh - /opt/zapret/ipset/get_reestr.sh -Выполнить этот скрипт первый раз вручную для начального заполнения списка. +Выполнить скрипт обновления листа : + /opt/zapret/ipset/get_config.sh Зашедулить задание обновления листа : crontab -e - Создать строчку "0 12 * * */2 <выбранный скрипт>" -Например : - Создать строчку "0 12 * * */2 /opt/zapret/ipset/get_antizapret.sh" - -MODE содержит "hostlist" : -Удалить список доменов РКН, если он уже есть : - rm /opt/zapret/ipset/zapret-hosts.txt -По желанию прописать в /opt/zapret/ipset/zapret-hosts-user.txt свои домены -ЕСЛИ вы хотите использовать список заблокированных доменов РКН: -Выполнить : - /opt/zapret/ipset/get_hostlist.sh -Зашедулить задание обновления листа : - crontab -e - Создать строчку "0 12 * * */2 /opt/zapret/ipset/get_hostlist.sh" -ИНАЧЕ будет использоваться только zapret-hosts-user.txt - -MODE=custom -Сами должны знать что делать - -Иные MODE : -Ничего делать не нужно + Создать строчку "0 12 * * */2 /opt/zapret/ipset/get_config.sh" Запустить службу : systemctl start zapret @@ -440,47 +417,20 @@ ipset можно выкинуть, если не будем пользовать Настроить параметры согласно разделу "Выбор параметров". -В зависимости от выбранного MODE : - -MODE содержит "ipset" : -Удалить старые ip листы, если они были созданы ранее : - rm /opt/zapret/ipset/zapret-ip.txt /opt/zapret/ipset/zapret-ip-user.txt /opt/zapret/ipset/zapret-ip-ipban.txt /opt/zapret/ipset/zapret-ip-user-ipban.txt +Удалить старые листы, если они были созданы ранее : + rm /opt/zapret/ipset/zapret-ip.txt /opt/zapret/ipset/zapret-ip-user.txt /opt/zapret/ipset/zapret-ip-ipban.txt /opt/zapret/ipset/zapret-ip-user-ipban.txt /opt/zapret/ipset/zapret-hosts.txt По желанию прописать в /opt/zapret/ipset/zapret-hosts-user.txt свои домены. -Выбрать каким скриптом из перечисленных будем получать список ip заблокированных адресов : - /opt/zapret/ipset/get_user.sh - /opt/zapret/ipset/get_antizapret.sh - /opt/zapret/ipset/get_combined.sh - /opt/zapret/ipset/get_reestr.sh -Выполнить этот скрипт первый раз вручную для начального заполнения списка. +Выполнить скрипт обновления листа : + /opt/zapret/ipset/get_config.sh Зашедулить задание обновления листа : crontab -e - Создать строчку "0 12 * * */2 <выбранный скрипт>" -Например : - Создать строчку "0 12 * * */2 /opt/zapret/ipset/get_antizapret.sh" - -MODE содержит "hostlist" : -Удалить список доменов РКН, если он уже есть : - rm /opt/zapret/ipset/zapret-hosts.txt -По желанию прописать в /opt/zapret/ipset/zapret-hosts-user.txt свои домены -ЕСЛИ вы хотите использовать список заблокированных доменов РКН: -Выполнить : - /opt/zapret/ipset/get_hostlist.sh -Зашедулить задание обновления листа : - crontab -e - Создать строчку "0 12 * * */2 /opt/zapret/ipset/get_hostlist.sh" -ИНАЧЕ будет использоваться только zapret-hosts-user.txt - -MODE=custom -Сами должны знать что делать - -Иные MODE : -Ничего делать не нужно + Создать строчку "0 12 * * */2 /opt/zapret/ipset/get_config.sh" Включить автозапуск службы и запустить ее : /etc/init.d/zapret enable /etc/init.d/zapret start -В зависимости от выбранного в инит скрипте MODE скопировать нужный файл настроек фаервола : +В зависимости от выбранного в файле config MODE скопировать нужный файл настроек фаервола : cp /opt/zapret/init.d/openwrt/firewall.zapret.$MODE /etc/firewall.zapret Например : cp /opt/zapret/init.d/openwrt/firewall.zapret.tpws_ipset_https /etc/firewall.zapret @@ -506,13 +456,14 @@ MODE=custom ЕСЛИ СОВСЕМ ВСЕ УЖАСНО С МЕСТОМ : не надо устанавливать дополнительные пакеты через opkg. оставьте лишь /opt/zapret/tpws/tpws, /opt/zapret/config, /etc/init.d/zapret, /etc/firewall.zapret используйте MODE=tpws_all или tpws_all_https -такой вариант потребует около 100 кб места и полностью статичен. +такой вариант потребует около 100 кб места и полностью статичен. отсутствуют любые загрузки, обновления, изменения файлов. tpws без ipset использует всего лишь DNAT, который есть по умолчанию СОВЕТ : Покупайте только роутеры с USB. В USB можно воткнуть флэшку и вынести на нее корневую файловую систему или использовать ее в качестве оверлея. Не надо мучать себя, запихивая незапихиваемое в 8 мб встроенной флэшки. Для комфортной работы с zapret нужен роутер с 16 Mb встроенной памяти или USB разъемом и 64 (а лучше 128) Mb RAM. +Списки РКН растут, скоро уже и 16 Mb не будет хватать (если уже не). Простая установка на openwrt diff --git a/install_easy.sh b/install_easy.sh index 9964cf0..b0d11b5 100755 --- a/install_easy.sh +++ b/install_easy.sh @@ -12,7 +12,7 @@ ZAPRET_CONFIG=$EXEDIR/config SYSTEMD_SYSV_GENERATOR=/lib/systemd/system-generators/systemd-sysv-generator SYSTEMD_SYSV_GENERATOR2=/usr$SYSTEMD_SYSV_GENERATOR -[ -n "$GETLIST" ] && GET_LIST="$EXEDIR/ipset/$GETLIST" +GET_LIST="$EXEDIR/ipset/get_config.sh" GET_LIST_PREFIX=/ipset/get_ exists() diff --git a/ipset/get_config.sh b/ipset/get_config.sh new file mode 100755 index 0000000..0ae2c8f --- /dev/null +++ b/ipset/get_config.sh @@ -0,0 +1,10 @@ +#!/bin/sh +# run script specified in config + +SCRIPT=$(readlink -f $0) +EXEDIR=$(dirname $SCRIPT) + +. "$EXEDIR/../config" + +[ -z "$GETLIST" ] && return +[ -x "$EXEDIR/$GETLIST" ] && "$EXEDIR/$GETLIST"