Commit Graph

482 Commits

Author SHA1 Message Date
z3APA3A
b2f82ed04f More accurate conditions in sockmap's main event loop 2020-10-19 13:11:44 +03:00
z3APA3A
01ec2f12d5 fail portmapping if name can not be resolved 2020-10-16 23:13:07 +03:00
z3APA3A
624c3e6ae1 correct IPv6 parsing where hostname is expected 2020-10-16 22:51:02 +03:00
z3APA3A
3f2659cb0f Use MAXFAILATTEMPT to limit socket failuers 2020-10-15 16:44:32 +03:00
z3APA3A
aeb0f4caa5 Better handle socket closing 2020-10-15 16:27:39 +03:00
z3APA3A
22555b58ec Do not sigmask main thread for standalone services 2020-10-15 16:00:43 +03:00
z3APA3A
a8b000b7f1 Allow to specify binding address for RADIUS 2020-10-15 12:21:46 +03:00
z3APA3A
9f6a8460ac limit failed mapping attempts to 13 2020-10-15 01:17:10 +03:00
z3APA3A
637cb2e76d adding guard for polling loop to prevent CPU exhastion in the case of system misbihavior 2020-10-14 18:58:52 +03:00
z3APA3A
47affa0add Correct returning 98 code from socksmap 2020-10-14 16:15:11 +03:00
z3APA3A
eb829b062b Major code refactoring
- sockmapping rewritten from stratch to minimilse polling. poll() is now
only called if blocking is actually expected, splice pipes are now
polled if splice fails, buffers flushing is much more accurate.
- logging code moved to separate files
- signal masks added to client threads to prevent unneeded interruptions
- bandwidth limitation will not delay the thread after client or server
shutdown
2020-10-09 15:42:34 +03:00
z3APA3A
3dd1969657 Move logging to log.c 2020-10-07 19:03:59 +03:00
z3APA3A
ebd7b34159 -N(NAT_address) option added for socks 2020-10-07 11:21:01 +03:00
z3APA3A
d0725163d1 countall / nocountall ssupport added 2020-10-06 14:29:08 +03:00
z3APA3A
cc6ec2445c Do not overwrite connection for HTTP "upgade" 2020-08-18 18:43:22 +03:00
z3APA3A
1075370594 Don't terminate connection on datagram sending issue in SOCKSv5 UDP ASSOCIATE 2020-08-08 13:56:34 +03:00
z3APA3A
1fd759d327 Correct typo (name resolution could fail on some platforms) 2020-08-07 12:14:03 +03:00
z3APA3A
c30b4637a5 Do not resolve hostname to IP on ACL destination 2020-08-06 17:57:50 +03:00
z3APA3A
8c511a19e9 Do not resolve hostname to IP on ACL destination 2020-08-06 17:56:28 +03:00
z3APA3A
3b5fa46e27 Change Proxy-authorization to Proxy-Authorization for compatiblity with RFC ignorant upstreams 2020-07-02 18:34:37 +03:00
z3APA3A
19eef46d7e Compile error in last commit corrected 2020-06-23 11:17:32 +03:00
z3APA3A
c532958b9f Do not cache external port 2020-06-17 16:14:34 +03:00
z3APA3A
1e7e94d7ac corrected 'acl' and 'ext' cach types added with previous commit
acl - allows to bind cache entry to ACL to prevent caching
authentication for different services
ext - allows to cache external address
both options are useful with RADIUS
2020-06-17 16:09:28 +03:00
z3APA3A
859713d10f Fail if can not bind to device 2020-06-17 16:05:23 +03:00
z3APA3A
9eac5c13a8 Correct wildcard hostname compare and make it case-insensitve where possible 2020-04-11 11:34:08 +03:00
z3APA3A
041134007d Correct ip/network/hostname parsing in ACLs 2020-04-11 09:58:47 +03:00
z3APA3A
9996856698 Send Basic vs basic for Basic HTTP auth to deal with reportedly broken implementation 2019-10-16 11:29:07 +03:00
z3APA3A
22cf9254c5 rename memory functions in pluginlink 2019-09-03 20:46:47 +03:00
z3APA3A
e7e7d2fddf "limit" support in authcache to bind sessions to ip 2019-08-21 15:20:43 +03:00
z3APA3A
336b411ea2 do not use "my" prefix for memory functions in pluginlink 2019-08-19 12:35:36 +03:00
z3APA3A
cb217d79c1 Fix: IPv6 support in TransparentPlugin 2019-08-13 12:38:03 +03:00
z3APA3A
8ad8a9ccd2 Remove unsupported "myalloc" code 2019-08-13 12:36:55 +03:00
z3APA3A
70ed1233fb Remove outdated LastFRipper plugin 2019-08-13 12:35:47 +03:00
z3APA3A
5471e0faf4 attempt to support IPv6 in netfilter transparent redirection 2019-08-12 14:11:08 +03:00
z3APA3A
bf4ef2284b Fix: out-of-bounds write and few more bugs in 'admin' configuration upload 2019-08-01 16:46:22 +03:00
z3APA3A
38a1ab80bc minor changes 2019-06-20 11:19:58 +03:00
z3APA3A
09507a2fe9 prevent warnings in proxymain 2019-01-25 23:40:35 +03:00
z3APA3A
5ee553e9a9 Correct: do not log 98/99 as an error 2019-01-20 17:52:00 +03:00
z3APA3A
eed6e2962e Do not log events 98 and 99 as errors 2019-01-20 17:33:35 +03:00
z3APA3A
02d52e89e9 Fix: config change may stop log rotation 2019-01-15 11:51:10 +03:00
z3APA3A
d7373be071 Revert "Fixed: logrotation may stop after config change"
This reverts commit ede4aee619.
2019-01-14 20:14:08 +03:00
z3APA3A
ede4aee619 Fixed: logrotation may stop after config change 2019-01-14 18:02:16 +03:00
z3APA3A
8af9ea8de8 back to non-blockin splice on sending 2019-01-11 23:26:52 +03:00
z3APA3A
603ab8187f make spliced sockmap more reliable 2019-01-11 23:10:39 +03:00
z3APA3A
953959efab print file descriptors 2019-01-11 19:38:34 +03:00
z3APA3A
03efdc451b Add POLLRDHUP support to spliced sockmap 2019-01-11 19:12:03 +03:00
z3APA3A
930d9823ea Use futex instead of pthread_mutex on Linux 2018-12-28 18:49:45 +03:00
z3APA3A
6fe36b01d1 Fixed: admin always starts with -s under Linux 2018-12-28 12:45:52 +03:00
z3APA3A
3f2e621902 Correct socket polling on mapping 2018-12-06 00:32:37 +03:00
z3APA3A
b7e3a85e88 Use non-blocking splice only on write to socket
to prevent race condition data is not copied to the pipe yet
2018-12-05 23:41:37 +03:00
z3APA3A
79ea433caf Can go to 100% CPU if one side have closed connection 2018-12-05 21:44:59 +03:00
z3APA3A
a0591c9786 Fix: $ is ignored in the begginning of quoted line 2018-12-05 14:21:03 +03:00
z3APA3A
68823c2921 Fix sockets option parsing 2018-05-25 18:19:19 +03:00
z3APA3A
46be58ab1d Add filename to XML data 2018-05-22 19:15:31 +03:00
z3APA3A
3d9ac1e1fb Flush splice pipe on socket close 2018-05-12 01:19:11 +03:00
z3APA3A
68fed46ea0 fix 'radius' is not applied correctly on configuration reload 2018-05-11 16:23:05 +03:00
z3APA3A
92b3dd8638 Use overloadable poll 2018-05-05 20:07:59 +03:00
z3APA3A
20fa72bd42 Add connback timeouts / improve logging 2018-05-05 19:59:37 +03:00
z3APA3A
eb09ae7c58 Support socket options for connback sockets and connection timeouts 2018-05-05 17:16:51 +03:00
z3APA3A
b8127257f9 Remove pstdin.h 2018-05-01 18:30:04 +03:00
z3APA3A
951304e18e Send Connection instead of Proxy-Connection to parent proxy 2018-04-27 22:17:37 +03:00
z3APA3A
0376e54196 simlify sockgetline 2018-04-27 19:23:20 +03:00
z3APA3A
572a5b3c34 Fixed: socks fails on 1-character username or password 2018-04-27 15:09:18 +03:00
z3APA3A
9bd81a18b9 Use native OpenSSL 1.0 static build for Windows 2018-04-27 01:54:28 +03:00
z3APA3A
f35f0a0608 Print counters traffic in megabytes in admin 2018-04-27 01:53:10 +03:00
z3APA3A
12b5ad143f correct trafic accounting in spliced map 2018-04-27 01:52:08 +03:00
z3APA3A
836fffddbe Include openssl/applink.c in windows plugin DLL 2018-04-25 14:38:32 +03:00
z3APA3A
1af6e65fba Fix getting group id by groupname 2018-04-24 19:21:35 +03:00
z3APA3A
acc64b03fd Fix recently broken admin -s 2018-04-23 13:49:39 +03:00
z3APA3A
0f9a9d6e37 Fix redirection to http in lite version 2018-04-23 02:34:36 +03:00
Vladimir Dubrovin
b7c667a682 Bugfixes for previous commit 2018-04-23 02:00:53 +03:00
Vladimir Dubrovin
97b97a5664 Typo corrected 2018-04-23 02:00:34 +03:00
z3APA3A
531e0707cf Simplify splicemap 2018-04-23 02:00:19 +03:00
z3APA3A
b3abf80a50 slicedmap - replace usleep with poll, remove SPLICE_F_MOVE
use poll instead of usleep (to get rid of potential blocking in future)
remove SPLICE_F_MOVE
2018-04-22 23:23:22 +03:00
z3APA3A
fd588949c9 remove unneeded check 2018-04-22 22:44:06 +03:00
z3APA3A
0b0de0d2ee cleaunup signed/unsigned mismatch 2018-04-22 21:57:17 +03:00
z3APA3A
d971601316 Rmove more icqpr related things 2018-04-22 21:46:18 +03:00
z3APA3A
24127196ce Remove ICQPR because OSCAR is outdated 2018-04-22 21:46:00 +03:00
z3APA3A
0425cbbdb5 corre usesplice setting 2018-04-22 20:30:16 +03:00
z3APA3A
d2705df891 Use splice by default if no filteers set
-s0 to disable splice
2018-04-22 20:03:04 +03:00
z3APA3A
a4bc89dc8f Fixed recently introduced logging bug
Logging could stop after configuration reload, introduced with
50277692f4
2018-04-22 01:12:54 +03:00
z3APA3A
a42bb38d76 Use WSAPoll on Windows (except lite version) 2018-04-21 23:57:42 +03:00
z3APA3A
78e180a054 fixed: race condition on service stop / restart
Do not close -l file descriptor while there are alive childrent
2018-04-21 17:25:01 +03:00
z3APA3A
de21bd0f6a potential memory leak fixed + TCP_CORK support
potential memleak fixed in very unlikely configuration
TCP_CORK used to prevent sending request apart of headers
2018-04-21 17:05:36 +03:00
z3APA3A
39be30ba5d Simplify socket options printing
+ add supported options to 3proxy help message
2018-04-21 17:02:20 +03:00
z3APA3A
e2906f1219 pass version thorugh building environment 2018-04-21 03:26:49 +03:00
z3APA3A
b76b3b49fa rename static buffer 2018-04-21 01:45:09 +03:00
z3APA3A
83441eebc7 Move log buffer to stack
Move log bufer to stack and remove mutex
2018-04-21 01:37:31 +03:00
z3APA3A
e469e9e369 Increase default stacksize 2018-04-21 01:29:15 +03:00
z3APA3A
d1b527b523 Minor logging changes 2018-04-21 01:24:18 +03:00
z3APA3A
50277692f4 Replace fclose+fopen with freopen where possible 2018-04-21 00:30:02 +03:00
z3APA3A
6c3a5db52f Get rid of pstdint.h 2018-04-20 19:32:49 +03:00
z3APA3A
5149996b20 Added support for username/groupname
Added support for username/groupname to seuid, setgid, chroot.
2018-04-17 18:46:01 +03:00
z3APA3A
be5aa53106 Allow transparent client proxy with 'parent 1000 extip 0.0.0.0' 2018-04-15 00:28:59 +03:00
z3APA3A
25028ed1b8 support IP_ socket options 2018-04-14 23:52:38 +03:00
z3APA3A
a0ae9ee6fa Removing unneeded checks 2018-04-06 17:45:42 +03:00
z3APA3A
7423cd0112 Clearing LdapPlugin compilation issues 2018-04-06 17:45:18 +03:00
z3APA3A
dc55d2b724 UDP portmap doesn't resolve hostname in UDP packet 2018-03-06 20:01:03 +03:00
z3APA3A
22ac04576f Change SSLv23_*_method to TLS_*_method for OpenSSL 1.1 2018-02-17 18:14:59 +03:00
z3APA3A
8b548dccc7 Remove "Proxy-Connection" headers as depricated 2018-02-17 18:14:13 +03:00
z3APA3A
6e240defdb typo in conf.c leads to infinite loop on some commands 2018-01-25 17:20:36 +03:00
z3APA3A
ff91a6fe72 connlim / noconnlim commands added to support connection / connectio rate limits 2018-01-12 19:09:42 +03:00
z3APA3A
2d1720c15f Move RADIUS related code to #ifndef NORADIUS 2017-12-22 18:53:50 +03:00
z3APA3A
4a553de100 RADIUS accounting added (not optimized yet) 2017-12-19 01:22:07 +03:00
z3APA3A
0bda7f332e Move sys/timeb.h to Win32 section. 2017-11-24 12:41:01 +03:00
z3APA3A
d60d00b7b6 Switch to preprocessor macro for version 2017-11-07 21:56:03 +03:00
z3APA3A
6e715df9e1 Fix IPv4/IPv6 addresses in webadmin 2017-11-07 21:53:04 +03:00
z3APA3A
2a781c4a9d Fix: TransparentPlugin for *BSD ipfw 2017-11-06 18:41:36 +03:00
z3APA3A
18e41cfbe9 add hostname logging to tcppm 2017-11-06 17:18:32 +03:00
z3APA3A
930a959779 Do not use SAISNULL in plugin 2017-10-30 18:20:14 +03:00
z3APA3A
ff1a560547 Add NULLADDR to prevent dynamic linkage error under Linux 2017-10-30 18:10:25 +03:00
z3APA3A
4bb706d140 Use parsehostname in TransparentPlugin 2017-10-30 13:43:53 +03:00
z3APA3A
2c8bf28065 Remove static to prevent race conditions 2017-10-18 17:07:12 +03:00
z3APA3A
8c372572fc Add check for nul address 2017-10-17 18:25:35 +03:00
z3APA3A
18c1ce0a22 Support for transparent / notransparent commands added 2017-10-17 18:00:09 +03:00
z3APA3A
b99fa7aaa4 Simplify transparent + add support for BSD PF/IPF 2017-10-17 17:07:35 +03:00
z3APA3A
105522b24e Fix: recursion detection was not working 2017-10-17 15:19:47 +03:00
z3APA3A
8e2a87421c Fix: %n terminated log string on IPv6 address 2017-10-10 18:21:34 +03:00
z3APA3A
984efe193b Prevent deadlock on thread creation error 2017-09-25 17:14:13 +03:00
z3APA3A
2554f06759 pthread_attr_destroy added to prevent memory leak on config reload 2017-09-13 22:05:38 +03:00
z3APA3A
ff9c94f616 Fix: invalid reverse check for dnsresolve 2017-09-08 15:53:42 +03:00
z3APA3A
8c0dc7d8c9 Change -Do option to -De (external) 2017-09-06 19:19:36 +03:00
z3APA3A
b033b150b1 change strdup to mystrdup 2017-08-16 12:08:48 +03:00
z3APA3A
b17b36cbce Add support to bind to interface (-Di / -Do) via SO_BINDTODEVICE 2017-08-14 18:22:15 +03:00
z3APA3A
6010190940 fix: do not fail external with "0.0.0.0" with NOIPV6 (lite version) 2017-07-19 19:23:55 +03:00
z3APA3A
d9e118e754 Change EPSV reply code to 229 2017-06-28 12:33:08 +03:00
z3APA3A
481b9e389f EPSV support for ftppr 2017-06-27 23:28:17 +03:00
z3APA3A
305f01acb5 closecoket() is used instead of so._closesocket 2017-06-26 16:46:26 +03:00
z3APA3A
b4043e944c Unify RADIUS code for logging 2017-06-25 18:40:26 +03:00
z3APA3A
2983575952 banlimits for old connection may stop functioning on configuration reload 2017-06-25 18:37:19 +03:00
z3APA3A
1996b11451 Fix - sometime request may go to parent proxy where it shouldn't 2017-06-25 18:33:28 +03:00
z3APA3A
e75b329e62 Fix ACL copy for last patch 2017-03-07 15:06:22 +03:00
z3APA3A
4251322aad Support hostnames for chained socks5+/socks4+/connect+ requests 2017-03-07 01:19:04 +03:00
z3APA3A
d40e5d458c FIX: tcppm may not work with parent proxy 2017-02-02 00:36:59 +03:00
z3apa3a
34443d6515 Add netinet/tcp.h to includes to support TCP socket options on *nix. 2016-12-25 03:33:15 +03:00
z3APA3A
cfc10e9efd Support for few more socket options 2016-12-25 03:22:52 +03:00
z3APA3A
c1beee44ef Add support for -os, -oc, -ol
-ocOPTIONS, -osOPTIONS, -olOPTIONS - options for client (oc), server
(os) or listening (ol) socket
e.g.
proxy -ocTCP_NODELAY,SO_KEEPALIVE,SO_DONTROUTE
2016-12-25 02:46:30 +03:00
z3APA3A
2ed83b0d6e set TCP_NODELAY for DNS resolution over TCP 2016-12-25 01:28:16 +03:00
z3APA3A
68deec5bcd Update PCRE version 2016-12-24 01:48:52 +03:00
z3APA3A
e2884b182a Add timeout for connect in all modules 2016-12-23 00:56:16 +03:00
z3APA3A
3c9ff54ae8 SSL_Plugin: switch to SHA-256 signature 2016-12-22 19:16:50 +03:00
z3APA3A
16f094168a Correct EINPROGRESS for Windows 2016-12-22 17:46:06 +03:00
z3apa3a
42ca640769 Corrected connect() timeout on *nix 2016-12-22 17:31:17 +03:00
z3APA3A
d1d86ed9b3 implement timeout on connect()
STRING_S timeout is used (15 sec by default)
2016-12-22 17:11:44 +03:00
z3APA3A
c5f8a8e139 Add support for Reply-Message (may be used to send code with Auth-Reject). 2016-12-21 01:33:34 +03:00
z3APA3A
7b4a34f6fc Support for Framed-IP-Address / Framed-IPv6-Address in RADIUS server's reply 2016-12-21 00:30:05 +03:00
z3APA3A
bfe7e89bd0 RADIUS authentication corrected and tested 2016-12-20 23:38:06 +03:00
z3APA3A
e7433d633c 'radius' and 'auth radius' support added (not tested yet)
Example:
radius secret 192.168.0.1 192.168.0.2
authcache ip,user
auth cache radius
2016-12-20 19:50:50 +03:00
z3apa3a
5cb3947c45 radauth.c: implements RADIUS authentication for 3proxy 2016-12-20 18:39:06 +03:00
z3APA3A
f709255d62 Copyrights cleaned, authradius.c added 2016-12-20 15:47:02 +03:00