From 2d6eeff5f3ca52e476c266fc8e266c12a8dfdbb2 Mon Sep 17 00:00:00 2001 From: Vladimir Dubrovin <3proxy@3proxy.ru> Date: Sun, 12 Apr 2026 13:58:42 +0300 Subject: [PATCH] FIx typos, update documentation --- Dockerfile.busybox | 56 ++++ Dockerfile.full | 8 +- README | 276 ---------------- README.md | 302 ++++++++++++++++++ cfg/3proxy.cfg.sample | 24 +- doc/html/howtoe.html | 2 +- doc/html/howtor.html | 2 +- scripts/add3proxyuser.sh | 2 +- src/3proxy.c | 2 +- src/auth.c | 2 +- src/authradius.c | 2 +- src/auto.c | 2 +- src/common.c | 2 +- src/conf.c | 2 +- src/dnspr.c | 2 +- src/ftppr.c | 2 +- src/log.c | 2 +- src/mycrypt.c | 2 +- src/plugins.c | 2 +- src/plugins/TrafficPlugin/ReadMe.txt | 2 +- .../TransparentPlugin/transparent_plugin.c | 2 +- src/pop3p.c | 2 +- src/proxy.c | 2 +- src/proxy.h | 2 +- src/proxymain.c | 2 +- src/smtpp.c | 2 +- src/sockgetchar.c | 2 +- src/sockmap.c | 2 +- src/socks.c | 2 +- src/stringtable.c | 2 +- src/structures.h | 2 +- src/tcppm.c | 2 +- src/tlspr.c | 2 +- src/udppm.c | 2 +- src/webadmin.c | 2 +- 35 files changed, 404 insertions(+), 322 deletions(-) create mode 100644 Dockerfile.busybox delete mode 100644 README create mode 100644 README.md diff --git a/Dockerfile.busybox b/Dockerfile.busybox new file mode 100644 index 0000000..045371f --- /dev/null +++ b/Dockerfile.busybox @@ -0,0 +1,56 @@ +# 3proxy.full is fully functional 3proxy build based on busybox:glibc +# +# Examples are for podman, for docker change 'podman' to 'docker' +# +#to build: +# podman build -f Dockerfile.busybox -t 3proxy.busybox . +#to run: +# +# echo nserver 8.8.8.8 >/path/to/local/config/directory/3proxy.cfg +# echo proxy -p3129 >>/path/to/local/config/directory/3proxy.cfg +# podman run --read-only -p 3129:3129 -v /path/to/local/config/directory:/etc/3proxy -name 3proxy.busybox 3proxy.busybox +# +# use "log" without pathname in config to log to stdout. +# plugins are located in /usr/local/3proxy/libexec (/libexec for chroot config) +# symlinked as /lib and /lib64 in both root and chroot configurations, so no need +# to specify full path to plugin. SSLPlugin is supported. +# +# Since 0.9.6 image is distroless, no reason to use chroot, chroot +# configuration is supported for compatibility only. + + +FROM docker.io/gcc AS buildenv +COPY . 3proxy +RUN cd 3proxy &&\ + apt --assume-yes update && apt --assume-yes install libssl-dev libpcre2-dev &&\ + make -f Makefile.Linux &&\ + strip bin/3proxy &&\ + mkdir /dist &&\ + mkdir /dist/etc &&\ + mkdir /dist/etc/3proxy &&\ + mkdir /dist/bin &&\ + mkdir /dist/usr &&\ + mkdir /dist/lib &&\ + mkdir /dist/usr/local &&\ + mkdir /dist/usr/local/3proxy &&\ + mkdir /dist/usr/local/3proxy/conf &&\ + cp bin/3proxy /dist/bin &&\ + cp bin/*.so /dist/lib &&\ + cp scripts/3proxy.cfg.inchroot /dist/etc/3proxy/3proxy.cfg +RUN cd /dist &&\ + ln -s /lib lib64 &&\ + ln -s /lib usr/lib &&\ + ln -s /lib usr/lib64 &&\ + cp /lib64/ld-*.so.* /dist/lib &&\ + cp "/lib/`gcc -dumpmachine`"/libdl.so.* /dist/lib &&\ + cp "/lib/`gcc -dumpmachine`"/libcrypto.so.* /dist/lib &&\ + cp "/lib/`gcc -dumpmachine`"/libssl.so.* /dist/lib &&\ + cp "/lib/`gcc -dumpmachine`"/libpcre2-8.so.* /dist/lib &&\ + cp "/lib/`gcc -dumpmachine`"/libz.so.* /dist/lib &&\ + cp "/lib/`gcc -dumpmachine`"/libzstd.so.* /dist/lib &&\ + ls -lR /dist + +FROM docker.io/busybox:glibc +COPY --from=buildenv /dist / +RUN ln -s /lib /usr/local/3proxy/libexec +CMD ["/bin/3proxy", "/etc/3proxy/3proxy.cfg"] diff --git a/Dockerfile.full b/Dockerfile.full index 81f6691..0cdac90 100644 --- a/Dockerfile.full +++ b/Dockerfile.full @@ -1,8 +1,8 @@ -# 3proxy.full is fully functional 3proxy build based on busybox:glibc +# 3proxy.full is fully functional distroless 3proxy build # -# Example are for podman, for docker change 'podman' to 'docker' +# Examples are for podman, for docker change 'podman' to 'docker' # -#to build: +#to build: # podman build -f Dockerfile.full -t 3proxy.full . #to run: # @@ -16,7 +16,7 @@ # to specify full path to plugin. SSLPlugin is supported. # # Since 0.9.6 image is distroless, no reason to use chroot, chroot -# configuration is supported for compatility only. +# configuration is supported for compatibility only. FROM docker.io/gcc AS buildenv diff --git a/README b/README deleted file mode 100644 index 2fabd5b..0000000 --- a/README +++ /dev/null @@ -1,276 +0,0 @@ -# 3APA3A 3proxy tiny proxy server -(c) 2002-2025 by Vladimir '3APA3A' Dubrovin <3proxy@3proxy.org> - - -Branches: -Master (stable) branch - 3proxy 0.9 -Devel branch - 3proxy 10 (don't use it) - - -* Download - Binaries and sources for released (master) versions (Windows, Linux): - https://github.com/z3APA3A/3proxy/releases - - Docker images: - https://hub.docker.com/r/3proxy/3proxy - Archive of old versions: https://github.com/z3APA3A/3proxy-archive - -* Documentation - Documentation (man pages and HTML) available with download, on https://3proxy.org/ - and in github wiki https://github.com/3proxy/3proxy/wiki - -* Windows installation - -3proxy [path_to_config_file] --install - - installs and starts proxy as Windows service - (config file should be located in the same directory or may be optionally specified) - -3proxy --remove - - removes the service (should be stopped before via - 'net stop 3proxy'). - -* To build in Linux - -With Makefile: - -git clone https://github.com/z3apa3a/3proxy -cd 3proxy -ln -s Makefile.Linux Makefile -make -sudo make install - - -Default configuration (for Linux/Unix): -3proxy uses 2 configuration files: -/etc/3proxy/3proxy.cfg (before-chroot). This configuration file is executed before chroot and should not be modified. -/usr/local/3proxy/conf/3proxy.cfg symlinked from /etc/3proxy/conf/3proxy.cfg (after-chroot) is a main configuration file. Modify this file, if required. -All paths in /usr/local/3proxy/conf/3proxy.cfg are relative to chroot directory (/usr/local/3proxy). For future versions it's planned to move -3proxy chroot direcory to /var. -Log files are created in /usr/local/3proxy/logs symlinked from /var/log/3proxy. -By default, socks is started on 0.0.0.0:1080 and proxy on 0.0.0.0:3128 with basic auth, no users are added by default. - -use /etc/3proxy/conf/add3proxyuser.sh script to add users. - -usage: /etc/3proxy/conf/add3proxyuser.sh username password [day_limit] [bandwidth] - day_limit - traffic limit in MB per day - bandwidth - bandwith in bits per second 1048576 = 1Mbps - -or modify /etc/3proxy/conf/ files directly. - - -With CMake: - -git clone https://github.com/z3apa3a/3proxy -cd 3proxy -mkdir build && cd build -cmake .. -cmake --build . -sudo cmake --install . - - -CMake does not use chroot configuration, config file is /etc/3proxy/3proxy.cfg - -* For MacOS X / FreeBSD / *BSD - -With Makefile: - -git clone https://github.com/z3apa3a/3proxy -cd 3proxy -ln -s Makefile.FreeBSD Makefile -make - - -(binaries are in bin/ directory) - -With CMake (recommended): - -git clone https://github.com/z3apa3a/3proxy -cd 3proxy -mkdir build && cd build -cmake .. -cmake --build . -sudo cmake --install . - - -This installs binaries to /usr/local/bin/, configuration to /etc/3proxy/, -plugins to /usr/local/lib/3proxy/, rc scripts to rc.d for BSD and launchd plist to /Library/LaunchDaemons/ for MacOS. - -Service management on macOS: - -# Load and start service -sudo launchctl load /Library/LaunchDaemons/org.3proxy.3proxy.plist - -# Stop service -sudo launchctl stop org.3proxy.3proxy - -# Start service -sudo launchctl start org.3proxy.3proxy - -# Unload and disable service -sudo launchctl unload /Library/LaunchDaemons/org.3proxy.3proxy.plist - - - Features: - 1. General - + IPv6 support for incoming and outgoing connection, - can be used as a proxy between IPv4 and IPv6 networks - in either direction. - + HTTP/1.1 Proxy with keep-alive client and server support, - transparent proxy support. - + HTTPS (CONNECT) proxy (compatible with HTTP/2 / SPDY) - + Anonymous and random client IP emulation for HTTP proxy mode - + FTP over HTTP support. - + DNS caching with built-in resolver - + DNS proxy - + DNS over TCP support, redirecting DNS traffic via parent - proxy - + SOCKSv4/4.5 Proxy - + SOCKSv5 Proxy - + SOCKSv5 UDP and BIND support (fully compatible with - SocksCAP/FreeCAP for UDP) - + Transparent SOCKS redirection for HTTP, POP3, FTP, SMTP - + SNI proxy (based on TLS hostname) - + TLS (SSL) server - may be used as https:// type proxy - + POP3 Proxy - + FTP proxy - + TCP port mapper (port forwarding) - + UDP port mapper (port forwarding) - + SMTP proxy - + Threaded application (no child process). - + Web administration and statistics - + Plugins for functionality extension - + Native 32/64 bit application - 2. Proxy chaining and network connections - + Can be used as a bridge between client and different proxy type - (e.g. convert incoming HTTP proxy request from client to SOCKSv5 - request to parent server). - + Connect back proxy support to bypass firewalls - + Parent proxy support for any type of incoming connection - + Username/password authentication for parent proxy(s). - + HTTPS/SOCKS4/SOCKS5 and ip/port redirection parent support - + Random parent selection - + Chain building (multihop proxing) - + Load balancing between few network connections by choosing network - interface - 3. Logging - + tuneable log format compatible with any log parser - + stdout logging - + file logging - + syslog logging (Unix) - + ODBC logging - + RADIUS accounting - + log file rotation - + automatic log file processing with external archiver (for files) - + Character filtering for log files - + different log files for different servces are supported - 4. Access control - + ACL-driven Access control by username, source IP, - destination IP/hostname, destination port and destination action - (POST, PUT, GET, etc), weekday and daytime. - + ACL-driven (user/source/destination/protocol/weekday/daytime or - combined) bandwith limitation for incoming and (!)outgoing trafic. - + ACL-driven traffic limitation per day, week or month for incoming and - outgoing traffic - + Connection limitation and ratelimting - + User authentication by username / password - + RADIUS Authentication and Authorization - + User authentication by DNS hostname - + Authentication cache with possibility to limit user to single IP address - + Access control by username/password for SOCKSv5 and HTTP/HTTPS/FTP - + Cleartext or encrypted (crypt/MD5 or NT) passwords. - + Connection redirection - + Access control by requested action (CONNECT/BIND, - HTTP GET/POST/PUT/HEAD/OTHER). - + All access control entries now support weekday and time limitations - + Hostnames and * templates are supported instead of IP address - 5. Extensions - + Regular expression filtering (with PCRE2) via PCREPlugin - + Authentication with Windows username/password (cleartext only) - + SSL/TLS decryptions with certificate spoofing - + Transparent redirection support for Linux and *BSD - 6. Configuration - + support for configuration files - + support for includes in configuration files - + interface binding - + socket options - + running as daemon process - + utility for automated networks list building - + configuration reload on any file change - Unix - + support for chroot - + support for setgid - + support for setuid - + support for signals (SIGUSR1 to reload configuration) - Windows - + support --install as service - + support --remove as service - + support for service START, STOP, PAUSE and CONTINUE commands (on - PAUSE no new connection accepted, but active connections still in - progress, on CONTINUE configuration is reloaded) - Windows 95/98/ME - + support --install as service - + support --remove as service - 6. Compilation - + MSVC (static) - + OpenWatcom (static) - + Intel Windows Compiler (msvcrt.dll) - + Windows/gcc (msvcrt.dll) - + Cygwin/gcc (cygwin.dll) - + Unix/gcc - + Unix/ccc - + Solaris - + Mac OS X, iPhone OS - + Linux and derivered systems - + Lite version for Windows 95/98/NT/2000/XP/2003 - + 32 bit and 64 bit versions for Windows Vista and above, Windows 2008 server and above - -3proxy Combined proxy server may be used as - executable or service (supports installation and removal). - It uses config file to read it's configuration (see - 3proxy.cfg.sample for details). - 3proxy.exe is all-in-one, it doesn't require all others .exe - to work. - See 3proxy.cfg.sample for examples, see man 3proxy.cfg - -proxy HTTP proxy server, binds to port 3128 -ftppr FTP proxy server, binds to port 21 -socks SOCKS 4/5 proxy server, binds to port 1080 -ftppr FTP proxy server, please do not mess it with FTP over HTTP - proxy used in browsers -pop3p POP3 proxy server, binds to port 110. You must specify - POP3 username as username@target.host.ip[:port] - port is 110 by default. - Exmple: in Username configuration for you e-mail reader - set someuser@pop.example.org, to obtains mail for someuser - from pop.somehost.ru via proxy. -smtpp SMTP proxy server, binds to port 25. You must specify - SMTP username as username@target.host.ip[:port] - port is 25 by default. - Exmple: in Username configuration for you e-mail reader - set someuser@mail.example.org, to send mail as someuser - via mail.somehost.ru via proxy. -tcppm TCP port mapping. Maps some TCP port on local machine to - TCP port on remote host. -tlspr TLS proxy (SNI proxy) - sniffs hostname from TLS handshake -udppm UDP port mapping. Maps some UDP port on local machine to - UDP port on remote machine. Only one user simulationeously - can use UDP mapping, so it cann't be used for public service - in large networks. It's OK to use it to map to DNS server - in small network or to map Counter-Strike server for single - client (you can use few mappings on different ports for - different clients in last case). -mycrypt Program to obtain crypted password fro cleartext. Supports - both MD5/crypt and NT password. - mycrypt password - produces NT password - mycrypt salt password - produces MD5/crypt password with salt "salt". - - -Run utility with --help option for command line reference. - -Latest version is available from https://3proxy.org/ - -Want to donate the project? https://3proxy.org/donations/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..03db0df --- /dev/null +++ b/README.md @@ -0,0 +1,302 @@ +# 3APA3A 3proxy tiny proxy server + +(c) 2002-2025 by Vladimir '3APA3A' Dubrovin <3APA3A@security.nnov.ru> + +## Branches + +- **Master** (stable) branch - 3proxy 0.9 +- **Devel** branch - 3proxy 10 (don't use it) + +## Download + +Binaries and sources for released (master) versions (Windows, Linux): +https://github.com/z3APA3A/3proxy/releases + +Docker images: +https://hub.docker.com/r/3proxy/3proxy + +Archive of old versions: +https://github.com/z3APA3A/3proxy-archive + +## Documentation + +Documentation (man pages and HTML) available with download, on https://3proxy.org/ and in github wiki https://github.com/3proxy/3proxy/wiki + +## Windows Installation + +Install and start proxy as Windows service: + +```bash +3proxy [path_to_config_file] --install +``` + +Config file should be located in the same directory or may be optionally specified. + +Remove the service (should be stopped before via `net stop 3proxy`): + +```bash +3proxy --remove +``` + +## Building on Linux + +### With Makefile + +```bash +git clone https://github.com/z3apa3a/3proxy +cd 3proxy +ln -s Makefile.Linux Makefile +make +sudo make install +``` + +### Default Configuration (Linux/Unix) + +3proxy uses 2 configuration files: +- `/etc/3proxy/3proxy.cfg` (before-chroot) - This configuration file is executed before chroot and should not be modified. +- `/usr/local/3proxy/conf/3proxy.cfg` symlinked from `/etc/3proxy/conf/3proxy.cfg` (after-chroot) - Main configuration file. Modify this file if required. + +All paths in `/usr/local/3proxy/conf/3proxy.cfg` are relative to chroot directory (`/usr/local/3proxy`). For future versions it's planned to move 3proxy chroot directory to `/var`. + +Log files are created in `/usr/local/3proxy/logs` symlinked from `/var/log/3proxy`. + +By default, socks is started on 0.0.0.0:1080 and proxy on 0.0.0.0:3128 with basic auth, no users are added by default. + +### Adding Users + +Use `/etc/3proxy/conf/add3proxyuser.sh` script to add users: + +```bash +/etc/3proxy/conf/add3proxyuser.sh username password [day_limit] [bandwidth] +``` + +Parameters: +- `day_limit` - traffic limit in MB per day +- `bandwidth` - bandwidth in bits per second (1048576 = 1Mbps) + +Or modify `/etc/3proxy/conf/` files directly. + +### With CMake + +```bash +git clone https://github.com/z3apa3a/3proxy +cd 3proxy +mkdir build && cd build +cmake .. +cmake --build . +sudo cmake --install . +``` + +CMake does not use chroot configuration, config file is `/etc/3proxy/3proxy.cfg` + +## MacOS X / FreeBSD / *BSD + +### With Makefile + +```bash +git clone https://github.com/z3apa3a/3proxy +cd 3proxy +ln -s Makefile.FreeBSD Makefile +make +``` + +Binaries are in `bin/` directory. + +### With CMake (recommended) + +```bash +git clone https://github.com/z3apa3a/3proxy +cd 3proxy +mkdir build && cd build +cmake .. +cmake --build . +sudo cmake --install . +``` + +This installs: +- Binaries to `/usr/local/bin/` +- Configuration to `/etc/3proxy/` +- Plugins to `/usr/local/lib/3proxy/` +- rc scripts to `rc.d` for BSD +- launchd plist to `/Library/LaunchDaemons/` for MacOS + +### Service Management on macOS + +```bash +# Load and start service +sudo launchctl load /Library/LaunchDaemons/org.3proxy.3proxy.plist + +# Stop service +sudo launchctl stop org.3proxy.3proxy + +# Start service +sudo launchctl start org.3proxy.3proxy + +# Unload and disable service +sudo launchctl unload /Library/LaunchDaemons/org.3proxy.3proxy.plist +``` + +## Features + +### 1. General + +- IPv6 support for incoming and outgoing connection, can be used as a proxy between IPv4 and IPv6 networks in either direction +- HTTP/1.1 Proxy with keep-alive client and server support, transparent proxy support +- HTTPS (CONNECT) proxy (compatible with HTTP/2 / SPDY) +- Anonymous and random client IP emulation for HTTP proxy mode +- FTP over HTTP support +- DNS caching with built-in resolver +- DNS proxy +- DNS over TCP support, redirecting DNS traffic via parent proxy +- SOCKSv4/4.5 Proxy +- SOCKSv5 Proxy +- SOCKSv5 UDP and BIND support (fully compatible with SocksCAP/FreeCAP for UDP) +- Transparent SOCKS redirection for HTTP, POP3, FTP, SMTP +- SNI proxy (based on TLS hostname) +- TLS (SSL) server - may be used as https:// type proxy +- POP3 Proxy +- FTP proxy +- TCP port mapper (port forwarding) +- UDP port mapper (port forwarding) +- SMTP proxy +- Threaded application (no child process) +- Web administration and statistics +- Plugins for functionality extension +- Native 32/64 bit application + +### 2. Proxy Chaining and Network Connections + +- Can be used as a bridge between client and different proxy type (e.g. convert incoming HTTP proxy request from client to SOCKSv5 request to parent server) +- Connect back proxy support to bypass firewalls +- Parent proxy support for any type of incoming connection +- Username/password authentication for parent proxy(s) +- HTTPS/SOCKS4/SOCKS5 and ip/port redirection parent support +- Random parent selection +- Chain building (multihop proxing) +- Load balancing between few network connections by choosing network interface + +### 3. Logging + +- Tuneable log format compatible with any log parser +- stdout logging +- File logging +- Syslog logging (Unix) +- ODBC logging +- RADIUS accounting +- Log file rotation +- Automatic log file processing with external archiver (for files) +- Character filtering for log files +- Different log files for different services are supported + +### 4. Access Control + +- ACL-driven Access control by username, source IP, destination IP/hostname, destination port and destination action (POST, PUT, GET, etc), weekday and daytime +- ACL-driven (user/source/destination/protocol/weekday/daytime or combined) bandwidth limitation for incoming and (!)outgoing traffic +- ACL-driven traffic limitation per day, week or month for incoming and outgoing traffic +- Connection limitation and ratelimiting +- User authentication by username / password +- RADIUS Authentication and Authorization +- User authentication by DNS hostname +- Authentication cache with possibility to limit user to single IP address +- Access control by username/password for SOCKSv5 and HTTP/HTTPS/FTP +- Cleartext or encrypted (crypt/MD5 or NT) passwords +- Connection redirection +- Access control by requested action (CONNECT/BIND, HTTP GET/POST/PUT/HEAD/OTHER) +- All access control entries now support weekday and time limitations +- Hostnames and * templates are supported instead of IP address + +### 5. Extensions + +- Regular expression filtering (with PCRE2) via PCREPlugin +- Authentication with Windows username/password (cleartext only) +- SSL/TLS decryptions with certificate spoofing +- Transparent redirection support for Linux and *BSD + +### 6. Configuration + +- Support for configuration files +- Support for includes in configuration files +- Interface binding +- Socket options +- Running as daemon process +- Utility for automated networks list building +- Configuration reload on any file change + +**Unix:** +- Support for chroot +- Support for setgid +- Support for setuid +- Support for signals (SIGUSR1 to reload configuration) + +**Windows:** +- Support `--install` as service +- Support `--remove` as service +- Support for service START, STOP, PAUSE and CONTINUE commands (on PAUSE no new connection accepted, but active connections still in progress, on CONTINUE configuration is reloaded) + +**Windows 95/98/ME:** +- Support `--install` as service +- Support `--remove` as service + +### 7. Compilation + +- MSVC (static) +- OpenWatcom (static) +- Intel Windows Compiler (msvcrt.dll) +- Windows/gcc (msvcrt.dll) +- Cygwin/gcc (cygwin.dll) +- Unix/gcc +- Unix/ccc +- Solaris +- Mac OS X, iPhone OS +- Linux and derived systems +- Lite version for Windows 95/98/NT/2000/XP/2003 +- 32 bit and 64 bit versions for Windows Vista and above, Windows 2008 server and above + +## Executables + +### 3proxy +Combined proxy server may be used as executable or service (supports installation and removal). It uses config file to read its configuration (see `3proxy.cfg.sample` for details). `3proxy.exe` is all-in-one, it doesn't require all others .exe to work. See `3proxy.cfg.sample` for examples, see `man 3proxy.cfg` + +### proxy +HTTP proxy server, binds to port 3128 + +### ftppr +FTP proxy server, binds to port 21. Please do not mess it with FTP over HTTP proxy used in browsers + +### socks +SOCKS 4/5 proxy server, binds to port 1080 + +### pop3p +POP3 proxy server, binds to port 110. You must specify POP3 username as `username@popserver[:port]` (port is 110 by default). + +Example: in Username configuration for your e-mail reader set `someuser@pop.somehost.ru`, to obtain mail for someuser from pop.somehost.ru via proxy. + +### smtpp +SMTP proxy server, binds to port 25. You must specify SMTP username as `username@smtpserver[:port]` (port is 25 by default). + +Example: in Username configuration for your e-mail reader set `someuser@mail.somehost.ru`, to send mail as someuser via mail.somehost.ru via proxy. + +### tcppm +TCP port mapping. Maps some TCP port on local machine to TCP port on remote host. + +### tlspr +TLS proxy (SNI proxy) - sniffs hostname from TLS handshake + +### udppm +UDP port mapping. Maps some UDP port on local machine to UDP port on remote machine. Only one user simultaneously can use UDP mapping, so it can't be used for public service in large networks. It's OK to use it to map to DNS server in small network or to map Counter-Strike server for single client (you can use few mappings on different ports for different clients in last case). + +### mycrypt +Program to obtain crypted password for cleartext. Supports both MD5/crypt and NT password. + +```bash +mycrypt password # produces NT password +mycrypt salt password # produces MD5/crypt password with salt "salt" +``` + +--- + +Run utility with `--help` option for command line reference. + +Latest version is available from https://3proxy.org/ + +Want to donate the project? https://3proxy.org/donations/ diff --git a/cfg/3proxy.cfg.sample b/cfg/3proxy.cfg.sample index f9f1af0..3c84987 100644 --- a/cfg/3proxy.cfg.sample +++ b/cfg/3proxy.cfg.sample @@ -2,7 +2,7 @@ # Yes, 3proxy.cfg can be executable, in this case you should place # something like #config /usr/local/3proxy/3proxy.cfg -# to show which configuration 3proxy should re-read on realod. +# to show which configuration 3proxy should re-read on reload. #system "echo Hello world!" # you may use system to execute some external command if proxy starts @@ -24,7 +24,7 @@ timeouts 1 5 30 60 180 1800 15 60 # Here we can change timeout values users 3APA3A:CL:3apa3a "test:CR:$1$qwer$CHFTUFGqkjue9HyhcMHEe1" -# note that "" required, overvise $... is treated as include file name. +# note that "" required, otherwise $... is treated as include file name. # $1$qwer$CHFTUFGqkjue9HyhcMHEe1 is 'test' in MD5 crypt format. #users $/usr/local/etc/3proxy/passwd # this example shows you how to include passwd file. For included files @@ -39,7 +39,7 @@ service #log /var/log/3proxy/log D log c:\3proxy\logs\3proxy.log D -# log allows to specify log file location and rotation, D means logfile +# log allows you to specify log file location and rotation, D means logfile # is created daily #logformat "L%d-%m-%Y %H:%M:%S %z %N.%p %E %U %C:%c %R:%r %O %I %h %T" @@ -60,7 +60,7 @@ log c:\3proxy\logs\3proxy.log D # #Compatible with ISA 2000/2004 firewall FWSEXTD.log (fields are TAB-delimited): # -#"- + L%C %U unnknown:0:0.0 N %Y-%m-%d %H:%M:%S fwsrv 3PROXY - %n %R %r %D %O %I %r TCP Connect - - - %E - - - - -" +#"- + L%C %U unknown:0:0.0 N %Y-%m-%d %H:%M:%S fwsrv 3PROXY - %n %R %r %D %O %I %r TCP Connect - - - %E - - - - -" # #Compatible with HTTPD standard log (Apache and others) # @@ -90,7 +90,7 @@ auth iponly # auth specifies type of user authentication. If you specify none proxy # will not do anything to check name of the user. If you specify # nbname proxy will send NetBIOS name request packet to UDP/137 of -# client and parse request for NetBIOS name of messanger service. +# client and parse request for NetBIOS name of messenger service. # Strong means that proxy will check password. For strong authentication # unknown user will not be allowed to use proxy regardless of ACL. # If you do not want username to be checked but wanna ACL to work you should @@ -102,7 +102,7 @@ auth iponly #parent 1000 http 192.168.1.2 80 * * * 80 #allow * 192.168.1.0/24 * 25,53,110,20-21,1024-65535 # we will allow everything if username matches ADMINISTRATOR or root or -# client ip is 127.0.0.1 or 192.168.1.1. Overwise we will redirect any request +# client ip is 127.0.0.1 or 192.168.1.1. Otherwise we will redirect any request # to port 80 to our Web-server 192.168.0.2. # We will allow any outgoing connections from network 192.168.1.0/24 to # SMTP, POP3, FTP, DNS and unprivileged ports. @@ -124,7 +124,7 @@ internal 192.168.1.1 # have open proxy in your network in this case. auth none -# no authentication is requires +# no authentication is required dnspr @@ -134,7 +134,7 @@ dnspr #external $./external.ip #internal $./internal.ip -# this is just an alternative form fo giving external and internal address +# this is just an alternative form for giving external and internal address # allows you to read this addresses from files auth none @@ -149,7 +149,7 @@ tcppm 25 mail.my.provider 25 # Now we can use our proxy as SMTP and DNS server. # -s switch for UDP means "single packet" service - instead of setting # association for period of time association will only be set for 1 packet. -# It's very userfull for services like DNS but not for some massive services +# It's very useful for services like DNS but not for some massive services # like multimedia streams or online games. auth strong @@ -158,7 +158,7 @@ internal 127.0.0.1 allow 3APA3A 127.0.0.1 maxconn 3 admin -#only allow acces to admin interface for user 3APA3A from 127.0.0.1 address +#only allow access to admin interface for user 3APA3A from 127.0.0.1 address #via 127.0.0.1 address. # map external 80 and 443 ports to internal Web server @@ -178,14 +178,14 @@ admin #chroot /usr/local/jail #setgid 65535 #setuid 65535 -# now we needn't any root rights. We can chroot and setgid/setuid. +# now we no longer need root rights. We can chroot and setgid/setuid. auth strong flush # We want to protect internal interface deny * * 127.0.0.1,192.168.1.1 -# and llow HTTP and HTTPS traffic. +# and allow HTTP and HTTPS traffic. allow * * * 80-88,8080-8088 HTTP allow * * * 443,8443 HTTPS proxy -n diff --git a/doc/html/howtoe.html b/doc/html/howtoe.html index 1b99e67..dfca84c 100644 --- a/doc/html/howtoe.html +++ b/doc/html/howtoe.html @@ -500,7 +500,7 @@ ISA 2004 proxy WEB.w3c (fields are TAB-delimited): ISA 2000/2004 firewall FWSEXTD.log (fields are TAB-delimited):
-"-	+ L%C	%U	unnknown:0:0.0	N	%Y-%m-%d
+"-	+ L%C	%U	unknown:0:0.0	N	%Y-%m-%d
 	%H:%M:%S	fwsrv	3PROXY	-	%n	%R	%r
 	%D	%O	%I	%r	TCP	Connect	-	-
 	-	%E	-	-	-	-	-"
diff --git a/doc/html/howtor.html b/doc/html/howtor.html
index e4c5349..3cbec6b 100644
--- a/doc/html/howtor.html
+++ b/doc/html/howtor.html
@@ -513,7 +513,7 @@
   -	Internal	External	0x0	Allowed"
Формат ISA 2000/2004 firewall FWSEXTD.log (поля разделены табуляцией):
-  "-	+ L%C	%U	unnknown:0:0.0	N	%Y-%m-%d
+  "-	+ L%C	%U	unknown:0:0.0	N	%Y-%m-%d
   %H:%M:%S	fwsrv	3PROXY	-	%n	%R	%r
   %D	%O	%I	%r	TCP	Connect	-	-
   -	%E	-	-	-	-	-"
diff --git a/scripts/add3proxyuser.sh b/scripts/add3proxyuser.sh index 8f6b5d5..b4bed87 100644 --- a/scripts/add3proxyuser.sh +++ b/scripts/add3proxyuser.sh @@ -10,6 +10,6 @@ if [ $2 ]; then else echo usage: $0 username password [day_limit] [bandwidth] echo " "day_limit - traffic limit in MB per day - echo " "bandwidth - bandwith in bits per second 1048576 = 1Mbps + echo " "bandwidth - bandwidth in bits per second 1048576 = 1Mbps fi diff --git a/src/3proxy.c b/src/3proxy.c index 67f5cde..6170745 100644 --- a/src/3proxy.c +++ b/src/3proxy.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/auth.c b/src/auth.c index 3758308..b1395e3 100644 --- a/src/auth.c +++ b/src/auth.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/authradius.c b/src/authradius.c index 405639c..a1bf540 100644 --- a/src/authradius.c +++ b/src/authradius.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2000-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/auto.c b/src/auto.c index 9d94a1a..ba04470 100644 --- a/src/auto.c +++ b/src/auto.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/common.c b/src/common.c index e705c19..556d658 100644 --- a/src/common.c +++ b/src/common.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/conf.c b/src/conf.c index f9c44c0..23841a0 100644 --- a/src/conf.c +++ b/src/conf.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/dnspr.c b/src/dnspr.c index cd84d44..fb7d02a 100644 --- a/src/dnspr.c +++ b/src/dnspr.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/ftppr.c b/src/ftppr.c index 96a514a..e9b12e5 100644 --- a/src/ftppr.c +++ b/src/ftppr.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/log.c b/src/log.c index 3a4e661..969d258 100644 --- a/src/log.c +++ b/src/log.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/mycrypt.c b/src/mycrypt.c index 4629042..ada3f5e 100644 --- a/src/mycrypt.c +++ b/src/mycrypt.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/plugins.c b/src/plugins.c index c1146a4..37d6aec 100644 --- a/src/plugins.c +++ b/src/plugins.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/plugins/TrafficPlugin/ReadMe.txt b/src/plugins/TrafficPlugin/ReadMe.txt index 43f6531..e00e487 100644 --- a/src/plugins/TrafficPlugin/ReadMe.txt +++ b/src/plugins/TrafficPlugin/ReadMe.txt @@ -63,5 +63,5 @@ plugin "TrafficPlugin.dll" start debug ///////////////////////////////////////////////////////////////////////////// Copyright: (c) Maslov Michael aka Flexx(rus) All rights reserved. - Plugin was writen on Visual C++ 6.0 SP5 + Plugin was written on Visual C++ 6.0 SP5 Using structures.h from 3proxy distr. \ No newline at end of file diff --git a/src/plugins/TransparentPlugin/transparent_plugin.c b/src/plugins/TransparentPlugin/transparent_plugin.c index f191f17..0388a32 100644 --- a/src/plugins/TransparentPlugin/transparent_plugin.c +++ b/src/plugins/TransparentPlugin/transparent_plugin.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/pop3p.c b/src/pop3p.c index 68eb325..ca18f74 100644 --- a/src/pop3p.c +++ b/src/pop3p.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/proxy.c b/src/proxy.c index 4efc464..a71b73b 100644 --- a/src/proxy.c +++ b/src/proxy.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/proxy.h b/src/proxy.h index d932654..3d89ece 100644 --- a/src/proxy.h +++ b/src/proxy.h @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/proxymain.c b/src/proxymain.c index 7ffaeec..bc4d654 100644 --- a/src/proxymain.c +++ b/src/proxymain.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/smtpp.c b/src/smtpp.c index 49d351b..d6e6380 100644 --- a/src/smtpp.c +++ b/src/smtpp.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/sockgetchar.c b/src/sockgetchar.c index 3f715b2..2af0afe 100644 --- a/src/sockgetchar.c +++ b/src/sockgetchar.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/sockmap.c b/src/sockmap.c index d12a94b..b6c0056 100644 --- a/src/sockmap.c +++ b/src/sockmap.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/socks.c b/src/socks.c index b233d82..f194a56 100644 --- a/src/socks.c +++ b/src/socks.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/stringtable.c b/src/stringtable.c index 7ca393c..b40e110 100644 --- a/src/stringtable.c +++ b/src/stringtable.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/structures.h b/src/structures.h index 9d6d006..5697807 100644 --- a/src/structures.h +++ b/src/structures.h @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/tcppm.c b/src/tcppm.c index 7d0b0df..a8c91bd 100644 --- a/src/tcppm.c +++ b/src/tcppm.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/tlspr.c b/src/tlspr.c index c44402d..44d3053 100644 --- a/src/tlspr.c +++ b/src/tlspr.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/udppm.c b/src/udppm.c index 5a2f731..aedad14 100644 --- a/src/udppm.c +++ b/src/udppm.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement diff --git a/src/webadmin.c b/src/webadmin.c index cf51eea..27e55f2 100644 --- a/src/webadmin.c +++ b/src/webadmin.c @@ -1,5 +1,5 @@ /* - 3APA3A simpliest proxy server + 3APA3A simplest proxy server (c) 2002-2021 by Vladimir Dubrovin <3proxy@3proxy.org> please read License Agreement