Commit Graph

432 Commits

Author SHA1 Message Date
z3APA3A
da215a152e Preauthorization added
ACL which can be checked prior to request parsing and authentication
(first entries with only IP and time, if any) are automatically marked
as preauthentication and checked immediately after connection is
accepted, prior to any resources are allocated. Connection is silently
dropped if preauthentication fails.
2020-10-16 01:38:21 +03:00
z3APA3A
cb509c360f Use MAXFAILATTEMPT to limit socket failuers 2020-10-15 16:45:13 +03:00
z3APA3A
6092fd640f Better handle socket closing 2020-10-15 16:25:37 +03:00
z3APA3A
c63392f1ea Do not sigmask main thread for standalone services 2020-10-15 16:01:41 +03:00
z3APA3A
ef6d1d14e6 Allow to specify binding address for RADIUS 2020-10-15 12:28:53 +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
7f0797178b Correct returning 98 code from socksmap 2020-10-14 16:16:27 +03:00
z3APA3A
47affa0add Correct returning 98 code from socksmap 2020-10-14 16:15:11 +03:00
z3APA3A
a4f95462b3 intermediate commit 2020-10-14 16:10:35 +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