mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2025-12-10 07:44:50 +01:00
Update feed [iopsys] package [urlfilter]
This commit is contained in:
parent
9995b4a3f2
commit
b30434d872
2 changed files with 114 additions and 0 deletions
54
urlfilter/Makefile
Normal file
54
urlfilter/Makefile
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
#
|
||||
# Copyright (C) 2021 IOPSYS
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=urlfilter
|
||||
PKG_VERSION:=1.0.0
|
||||
|
||||
LOCAL_DEV:=0
|
||||
ifneq ($(LOCAL_DEV),1)
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_VERSION:=c11c1057e8f7bd96934fce1eef07f96d8349f683
|
||||
PKG_SOURCE_URL:=https://dev.iopsys.eu/iopsys/urlfilter.git
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
|
||||
endif
|
||||
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||
PKG_LICENSE:=GPL-2.0-only
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/urlfilter
|
||||
SECTION:=utils
|
||||
CATEGORY:=Utilities
|
||||
TITLE:=URL filter
|
||||
DEPENDS:=+libuci +libnetfilter-queue +libnfnetlink +libpthread +libubox +ubus
|
||||
endef
|
||||
|
||||
define Package/urlfilter/description
|
||||
Enables filtering of packets on the basis of URL and source MAC address.
|
||||
endef
|
||||
|
||||
TARGET_CFLAGS += \
|
||||
-I$(STAGING_DIR)/usr/include \
|
||||
-D_GNU_SOURCE
|
||||
|
||||
ifeq ($(LOCAL_DEV),1)
|
||||
define Build/Prepare
|
||||
$(CP) -rf ./urlfilter/* $(PKG_BUILD_DIR)/
|
||||
endef
|
||||
endif
|
||||
|
||||
define Package/urlfilter/install
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./files/etc/init.d/urlfilter $(1)/etc/init.d/urlfilter
|
||||
$(INSTALL_DIR) $(1)/usr
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/urlfilter $(1)/usr/sbin
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,urlfilter))
|
||||
60
urlfilter/files/etc/init.d/urlfilter
Normal file
60
urlfilter/files/etc/init.d/urlfilter
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
|
||||
START=21
|
||||
STOP=10
|
||||
|
||||
USE_PROCD=1
|
||||
NAME=urlfilter
|
||||
PROG=/usr/sbin/urlfilter
|
||||
|
||||
configure_firewall()
|
||||
{
|
||||
iptables -L FORWARD|grep -iqE "NFQUEUE"
|
||||
if [ "$?" -ne 0 ]; then
|
||||
echo "Applying firewall rule to setup NFQUEUE on forward traffic for urlfiltering"
|
||||
iptables -I FORWARD 1 -p tcp --dport 80 -j NFQUEUE --queue-num 0
|
||||
iptables -I FORWARD 2 -p tcp --dport 443 -j NFQUEUE --queue-num 0
|
||||
iptables -I INPUT 1 -p udp --dport 53 -j NFQUEUE --queue-num 0
|
||||
iptables -I INPUT 2 -p udp --sport 53 -j NFQUEUE --queue-num 0
|
||||
fi
|
||||
}
|
||||
|
||||
start_service() {
|
||||
if [ -f "/etc/config/urlfilter" ]; then
|
||||
procd_open_instance urlfilter
|
||||
procd_set_param command ${PROG}
|
||||
configure_firewall
|
||||
procd_set_param respawn
|
||||
procd_close_instance
|
||||
fi
|
||||
}
|
||||
|
||||
stop_service() {
|
||||
pidof $NAME >/dev/null
|
||||
if [ "$?" -eq 0 ]; then
|
||||
pidof $NAME > /dev/null 2>&1 && killall -q $NAME
|
||||
pidof $NAME > /dev/null 2>&1
|
||||
while pidof $NAME > /dev/null 2>&1; do
|
||||
killall -q -9 $NAME
|
||||
done
|
||||
fi
|
||||
|
||||
iptables -L FORWARD|grep -iqE "NFQUEUE"
|
||||
if [ "$?" -eq 0 ]; then
|
||||
echo "Deleting firewall rule to setup NFQUEUE on forward traffic for urlfiltering"
|
||||
iptables -D FORWARD -p tcp --dport 80 -j NFQUEUE --queue-num 0
|
||||
iptables -D FORWARD -p tcp --dport 443 -j NFQUEUE --queue-num 0
|
||||
iptables -D INPUT -p udp --dport 53 -j NFQUEUE --queue-num 0
|
||||
iptables -D INPUT -p udp --sport 53 -j NFQUEUE --queue-num 0
|
||||
fi
|
||||
}
|
||||
|
||||
reload_service() {
|
||||
stop
|
||||
start
|
||||
}
|
||||
|
||||
service_triggers() {
|
||||
procd_add_reload_trigger "urlfilter"
|
||||
procd_add_reload_trigger "firewall"
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue