init.d: openwrt-minimal iptables

This commit is contained in:
bol-van 2024-10-21 18:29:51 +03:00
parent de095dd2f2
commit 00e0b28616
3 changed files with 98 additions and 6 deletions

View File

@ -1720,10 +1720,14 @@ install_easy.sh автоматизирует ручные варианты пр
Установка на openwrt в режиме острой нехватки места на диске
------------------------------------------------------------
Инструкция только для openwrt 22 и выше с nftables. Требуется около 120 кб на диске.
Придется отказаться от всего, кроме tpws.
Требуется около 120-150 кб на диске. Придется отказаться от всего, кроме tpws.
* Инструкция для openwrt 22 и выше с nftables.
Никаких зависимостей устанавливать не нужно.
Установка :
Скопируйте все из init.d/openwrt-minimal/tpws/* в корень openwrt.
Скопируйте бинарник tpws подходящей архитектуры в /usr/bin/tpws.
Установите права на файлы : chmod 755 /etc/init.d/tpws /usr/bin/tpws
@ -1736,9 +1740,37 @@ fw4 reload
/etc/init.d/tpws disable
/etc/init.d/tpws stop
rm -f /etc/nftables.d/90-tpws.nft /etc/init.d/tpws /usr/bin/tpws
rm -f /etc/nftables.d/90-tpws.nft /etc/firewall.user /etc/init.d/tpws /usr/bin/tpws
fw4 restart
* Инструкция для openwrt 21 и ниже с iptables.
Установите зависимости :
opkg update
opkg install iptables-mod-extra
только для IPV6 : opkg install ip6tables-mod-nat
Убедитесь, что в /etc/firewall.user нет ничего значимого.
Если есть - не следуйте слепо инструкции. Обьедините код или создайте свой firewall include в /etc/config/firewall.
Установка :
Скопируйте все из init.d/openwrt-minimal/tpws/* в корень openwrt.
Скопируйте бинарник tpws подходящей архитектуры в /usr/bin/tpws.
Установите права на файлы : chmod 755 /etc/init.d/tpws /usr/bin/tpws
Отредактируйте /etc/config/tpws
/etc/init.d/tpws enable
/etc/init.d/tpws start
fw3 restart
Полное удаление :
/etc/init.d/tpws disable
/etc/init.d/tpws stop
rm -f /etc/nftables.d/90-tpws.nft /etc/firewall.user /etc/init.d/tpws
touch /etc/firewall.user
fw3 restart
Android
-------

View File

@ -1,9 +1,12 @@
Minimal tpws startup script for low storage openwrt with nftables.
Minimal tpws startup script for low storage openwrt.
--- openwrt with NFTABLES (22+)
Make sure you are running openwrt with nftables, not iptables.
No opkg dependencies required !
* install :
Make sure you are running openwrt with nftables, not iptables.
Copy everything from tpws directory to the root of the router.
Copy tpws binary for your architecture to /usr/bin/tpws
Set proper access rights : chmod 755 /etc/init.d/tpws /usr/bin/tpws
@ -16,5 +19,34 @@ fw4 reload
/etc/init.d/tpws disable
/etc/init.d/tpws stop
rm -f /etc/nftables.d/90-tpws.nft /etc/init.d/tpws
rm -f /etc/nftables.d/90-tpws.nft /etc/firewall.user /etc/init.d/tpws
fw4 restart
--- openwrt with IPTABLES (21-)
Make sure you are running openwrt with iptables, not nftables.
Make sure you do not have anything valuable in /etc/firewall.user.
If you have - do not blindly follow instruction in firewall.user part.
Merge the code instead or setup your own firewall include in /etc/config/firewall.
opkg update
opkg install iptables-mod-extra
IPV6 ONLY : opkg install ip6tables-mod-nat
* install :
Copy everything from tpws directory to the root of the router.
Copy tpws binary for your architecture to /usr/bin/tpws
Set proper access rights : chmod 755 /etc/init.d/tpws /usr/bin/tpws
EDIT /etc/config/tpws
/etc/init.d/tpws enable
/etc/init.d/tpws start
fw3 restart
* full uninstall :
/etc/init.d/tpws disable
/etc/init.d/tpws stop
rm -f /etc/nftables.d/90-tpws.nft /etc/firewall.user /etc/init.d/tpws
touch /etc/firewall.user
fw3 restart

View File

@ -0,0 +1,28 @@
TP_PORT=900
TP_USER=daemon
exists()
{
which "$1" >/dev/null 2>/dev/null
}
ipt()
{
$IPTABLES $FW_EXTRA_PRE -C "$@" $FW_EXTRA_POST >/dev/null 2>/dev/null || $IPTABLES $FW_EXTRA_PRE -I "$@" $FW_EXTRA_POST
}
redirect_port()
{
ipt PREROUTING -t nat -p tcp --dport $1 -j REDIRECT --to-port $2
ipt OUTPUT -t nat -p tcp --dport $1 -m owner ! --uid-owner $TP_USER -j REDIRECT --to-port $2
}
redirect()
{
redirect_port 80 $TP_PORT
redirect_port 443 $TP_PORT
}
for IPTABLES in iptables ip6tables; do
exists $IPTABLES && redirect
done