[package] redsocks: add package
Redsocks is a daemon running on the local system, that will transparently tunnel any TCP connection via a remote SOCKS4, SOCKS5 or HTTP proxy server. It uses the system firewall's redirection facility to intercept TCP connections, thus the redirection is system-wide, with fine-grained control, and does not depend on LD_PRELOAD libraries. Signed-off-by: Sebastian Muszynski <basti@linkt.de> git-svn-id: svn://svn.openwrt.org/openwrt/packages@33799 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
8c54687eb5
commit
4b12de81eb
52
net/redsocks/Makefile
Normal file
52
net/redsocks/Makefile
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2012 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=redsocks
|
||||||
|
PKG_VERSION:=0.4
|
||||||
|
PKG_RELEASE=$(PKG_SOURCE_VERSION)
|
||||||
|
|
||||||
|
PKG_SOURCE_PROTO:=git
|
||||||
|
PKG_SOURCE_URL:=https://github.com/darkk/redsocks.git
|
||||||
|
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||||
|
PKG_SOURCE_VERSION:=a9cfd090119385a1ef973baf94342a2db20595b9
|
||||||
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
define Package/redsocks
|
||||||
|
SECTION:=net
|
||||||
|
CATEGORY:=Network
|
||||||
|
SUBMENU:=Web Servers/Proxies
|
||||||
|
DEPENDS:=+libevent2
|
||||||
|
TITLE:=Redirect any TCP connection to a SOCKS or HTTPS proxy server
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/redsocks/description
|
||||||
|
Redsocks is a daemon running on the local system, that will transparently
|
||||||
|
tunnel any TCP connection via a remote SOCKS4, SOCKS5 or HTTP proxy server. It
|
||||||
|
uses the system firewall's redirection facility to intercept TCP connections,
|
||||||
|
thus the redirection is system-wide, with fine-grained control, and does
|
||||||
|
not depend on LD_PRELOAD libraries.
|
||||||
|
|
||||||
|
Redsocks supports tunneling TCP connections and UDP packets. It has
|
||||||
|
authentication support for both, SOCKS and HTTP proxies.
|
||||||
|
|
||||||
|
Also included is a small DNS server returning answers with the "truncated" flag
|
||||||
|
set for any UDP query, forcing the resolver to use TCP.
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/redsocks/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/redsocks $(1)/usr/sbin/
|
||||||
|
$(INSTALL_DIR) $(1)/etc/init.d
|
||||||
|
$(INSTALL_BIN) ./files/redsocks.init $(1)/etc/init.d/redsocks
|
||||||
|
$(INSTALL_DIR) $(1)/etc
|
||||||
|
$(INSTALL_CONF) $(PKG_BUILD_DIR)/redsocks.conf.example $(1)/etc/redsocks.conf
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,redsocks))
|
14
net/redsocks/files/redsocks.init
Normal file
14
net/redsocks/files/redsocks.init
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/sh /etc/rc.common
|
||||||
|
|
||||||
|
START=80
|
||||||
|
APP=redsocks
|
||||||
|
PID_FILE=/var/run/$APP.pid
|
||||||
|
|
||||||
|
start() {
|
||||||
|
start-stop-daemon -S -x $APP -p $PID_FILE -m -b -- -c /etc/redsocks.conf
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
start-stop-daemon -K -n $APP -p $PID_FILE -s TERM
|
||||||
|
rm -rf $PID_FILE
|
||||||
|
}
|
28
net/redsocks/patches/010-fix-undeclared.diff
Normal file
28
net/redsocks/patches/010-fix-undeclared.diff
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
diff -ur redsocks-0.4.orig/redudp.c redsocks-0.4/redudp.c
|
||||||
|
--- redsocks-0.4.orig/redudp.c 2012-07-27 20:30:40.283988208 +0200
|
||||||
|
+++ redsocks-0.4/redudp.c 2012-07-27 20:31:35.759985938 +0200
|
||||||
|
@@ -33,6 +33,10 @@
|
||||||
|
#include "redsocks.h"
|
||||||
|
#include "redudp.h"
|
||||||
|
|
||||||
|
+#define IP_ORIGDSTADDR 20
|
||||||
|
+#define IP_TRANSPARENT 19
|
||||||
|
+#define IP_RECVORIGDSTADDR IP_ORIGDSTADDR
|
||||||
|
+
|
||||||
|
#define redudp_log_error(client, prio, msg...) \
|
||||||
|
redsocks_log_write_plain(__FILE__, __LINE__, __func__, 0, &(client)->clientaddr, get_destaddr(client), prio, ## msg)
|
||||||
|
#define redudp_log_errno(client, prio, msg...) \
|
||||||
|
diff -ur redsocks-0.4.orig/utils.c redsocks-0.4/utils.c
|
||||||
|
--- redsocks-0.4.orig/utils.c 2012-07-27 20:30:40.283988208 +0200
|
||||||
|
+++ redsocks-0.4/utils.c 2012-07-27 20:31:20.075986580 +0200
|
||||||
|
@@ -26,6 +26,10 @@
|
||||||
|
#include "utils.h"
|
||||||
|
#include "redsocks.h" // for redsocks_close
|
||||||
|
|
||||||
|
+#define IP_ORIGDSTADDR 20
|
||||||
|
+#define IP_TRANSPARENT 19
|
||||||
|
+#define IP_RECVORIGDSTADDR IP_ORIGDSTADDR
|
||||||
|
+
|
||||||
|
int red_recv_udp_pkt(int fd, char *buf, size_t buflen, struct sockaddr_in *inaddr, struct sockaddr_in *toaddr)
|
||||||
|
{
|
||||||
|
socklen_t addrlen = sizeof(*inaddr);
|
Loading…
x
Reference in New Issue
Block a user