aboutsummaryrefslogtreecommitdiff
path: root/net/pbr
Commit message (Collapse)AuthorAge
* pbr: bugfix: fix IPv6 interface errorsStan Grishin2024-04-15
| | | | | | | | | | * update license to AGPL-3.0-or-later * rename pbr_get_gateway to pbr_get_gateway4 for better readability * improve IPv6 "gateway" detection/display on start * prevent IPv6 interface errors on start * revert release format Signed-off-by: Stan Grishin <stangri@melmac.ca>
* pbr: update to 1.1.4-r15Stan Grishin2024-04-12
| | | | | | | | | | | | | | | | | | | | | | * delete obsolete files/etc/init.d/pbr.init * add files/etc/uci-defaults/91-pbr-iptables to help update from older OpenWrt * add files/etc/uci-defaults/91-pbr-nft to help update from older OpenWrt * update files/etc/uci-defaults/91-pbr-netifd to only add tables to supported ifaces * re-organize variants in the Makefile so that they hopefull work this time * update prerm for all variants for better user experience * update the -netifd prerm to remove leftofver entries from network and rt_tables file In the init script: * add decorations for netifd-interfaces related operations (blue ticks) * add rtTablesFile variables instead of hard-coding the rt_tables file * add function to check if the table is netifd-derived * add error messages/hints for failed interface setup and failed WAN discovery * make cleanup_rt_tables the netifd-compatible * streamline interface_process function with a clearer case statement * rename the interface_process `pre-init` option to `pre_init` to conform to the other functions options naming style Signed-off-by: Stan Grishin <stangri@melmac.ca>
* pbr: prepare migration to APKStan Grishin2024-03-23
| | | | | | | * remove dependencies/references to opkg * simplify wan/wan6 discovery Signed-off-by: Stan Grishin <stangri@melmac.ca>
* pbr: update to 1.1.4-5Stan Grishin2024-03-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This update includes the following changes: 1. Makefile * update copyright * attempt to implement the proper variants to avoid luci-app dependency on both variants * quietly stop service on uninstall 2. Config-file * add the list of dnsmasq instances to target in supported dnsmasq modes * for default pbr variant, set the `resolver_set` to `dnsmasq.nftset` * for iptables pbr variant, set the `resolver_set` to `dnsmasq.ipset` * add the `nft_file_support` (disabled by default) * introduce `procd_boot_delay` to delay service start on boot * introduce the following nft set creation options: * nft_set_auto_merge * nft_set_counter * nft_set_flags_interval * nft_set_flags_timeout * nft_set_gc_interval * nft_set_policy * nft_set_timeout * add the pbr.user.wg_server_and_client custom user script to allow running wg server and client at the same time * add the "Ignore Local Requests" sample policy 3. Hotplug firewall/interface scripts * better logged messages 4. The pbr and pbr-iptables uci defaults script * use functions from the init script * improve vpn-policy-routing migration 5. The pbr-netifd uci defaults script * use functions from the init script * improve uci operations 6. Introduce the firewall.include file 7. Improve pbr.user.aws custom user script 8. Improve pbr.user.netflix custom user script 9. Introduce pbr.user.wg_server_and_client custom user script 10. Update the init file: * refactor some code to allow the init script file to be sourced by the uci defaults scripts and the luci rpcd script for shared functions * add support for `nft_file_mode` in which service prepares the fw4-compatible atomic nft/include file for faster operations on service reload * improve Tor support (nft mode only) * implement support for nft set options * update validation functions for new options/parameters Signed-off-by: Stan Grishin <stangri@melmac.ca>
* pbr: bugfix: create IPv6 routesStan Grishin2023-05-11
| | | | | | | | * add missing space in str_contains * unquote variable to make sure IPv6 rotues are added * add IPv6 routes display to status output in nft mode Signed-off-by: Stan Grishin <stangri@melmac.ca>
* pbr: ipv6 & migration bugfixesStan Grishin2023-05-05
| | | | | | | | * suppress RTNETLINK errors when inserting ipv6 routes * only display global scope IPv6 gateways in status/WebUI * stop and disable vpn-policy-routing when migrating Signed-off-by: Stan Grishin <stangri@melmac.ca>
* pbr: update to 1.1.1-1Stan Grishin2023-05-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | *** MAKEFILE *** * remove libubus dependency as it was causing issues https://forum.openwrt.org/t/policy-based-routing-pbr-package-discussion/140639/318 * move firewall hotplug directory/file creation out of default section into pbr and pbr-iptables packages sections in preparation for dropping it from pbr * fix no new line after output when uninstalling packages *** UCI-DEFAULTS *** * only add firewall include to firewall config if the include file exists * add shellcheck exception to netifd uci-defaults file *** SCRIPTS *** * more informative logging for firewall and iface hotplug scripts * more informative logging for firewall include script *** SERVICE *** * introduce lock-file to prevent package starting on external events if it hasn't been auto- or manually started before * use the `ip`, not `ip-full` command to prevent errors on OpenWrt 21.02 * parse firewall WAN zone to append list of interfaces * append error and warning "arrays" with new messages * used shared memory to store the service output/logging messages * improve is_ovpn function to filter out false positives when interface names started with `tun` * introduce is_valid_ovpn to find OpenVPN tunnels where the device name in OpenVPN config matches the device name in network config * introduce opkg_get_version to compare versions of principal and luci packages * better code to obtain AdGuardHome version with betas installed * optimize code and add better logging for errors when inserting policies with iptables * optimize code and add better logging for errors when inserting policies with nft * bugfix: insert policies in all specified protocols * bugfix: support using physical devices in policies in nft mode * bugfix: use iptPrefix, not nftPrefix in iptables commands * implement Tor support in nft mode * bugfix: fix spelling for User File Syntax error * restart service fully (instead of quick reload) for OpenVPN interface events, as the order/number of supported interfaces * more verbose output (showing handles) of status in nft mode * improve `icmp_interface`, `ignored_interface`, `supported_interface` validation regexes * improve `interface`, validation regex Signed-off-by: Stan Grishin <stangri@melmac.ca>
* pbr: bugfix: fix is_domain()Stan Grishin2023-01-22
| | | | | | * fixes https://github.com/openwrt/packages/issues/20352 Signed-off-by: Stan Grishin <stangri@melmac.ca>
* pbr: update to 1.0.1-14Stan Grishin2023-01-17
| | | | | | | | * improve install/uninstall messages * fix ips add command * add boot() to init file Signed-off-by: Stan Grishin <stangri@melmac.ca>
* pbr: update to 1.0.1-10Stan Grishin2023-01-16
| | | | | | | | | | | | | | | Bugfixes: * better error information for empty tid/mark and failure to resolve domains * better handling of entries in /etc/iproute2/rt_tables * update packages definitions and descriptions * remove firewall4 from dependencies to prevent dependency recursion Updates: * introduce nft_user_set_policy and nft_user_set_counter to control options for user nft sets this service creares * use counters in internal nft sets Signed-off-by: Stan Grishin <stangri@melmac.ca>
* pbr: add provides: pbr to variantsStan Grishin2022-12-23
| | | | Signed-off-by: Stan Grishin <stangri@melmac.ca>
* pbr: bugfix: Makefile, rt_tables fixStan Grishin2022-12-22
| | | | Signed-off-by: Stan Grishin <stangri@melmac.ca>
* pbr: update to 1.0.1-1Stan Grishin2022-12-19
| | | | | | | | | | * add more error/warning messages * better return statements from ips/nftset functions * better error/warning handling when inserting policies * comment out unnecessary nft set/ipst clean ups * shellchecked status functions Signed-off-by: Stan Grishin <stangri@melmac.ca>
* pbr: detect missing iptablesStan Grishin2022-12-12
| | | | Signed-off-by: Stan Grishin <stangri@melmac.ca>
* pbr: initial commitStan Grishin2022-12-03
* The makefile produces the nft and iptables capable `pbr` package and the `pbr-iptables` package for legacy setups * This replaces `vpnbypass` and `vpn-policy-routing` packages * I'm soliciting feedback on this package and my intention is to update the version to 1.0.0 before this is merged, but I need the feedback on this and luci-app-pbr before then. Signed-off-by: Stan Grishin <stangri@melmac.ca>