Metody płatności Abuse

Instalacja 3proxy

05.06.2023, 23:17

3proxy to darmowy serwer proxy o otwartym kodzie źródłowym, który służy do różnych celów, takich jak filtrowanie ruchu, buforowanie i blokowanie określonych stron internetowych. Obsługuje różne protokoły, takie jak SOCKS v4/v4a/v5, HTTP, HTTPS, FTP, POP3, SMTP i obsługuje metody uwierzytelniania, takie jak nazwa użytkownika/hasło SOCKS5, NTLM, LDAP, Kerberos i SSO.

Serwer jest wysoce konfigurowalny, zapewniając szczegółowe zarządzanie wykorzystaniem przepustowości i parametrami połączenia. 3proxy można zainstalować na platformach Windows, Linux i macOS. Jest to lekki i łatwy w użyciu serwer proxy odpowiedni dla małych i średnich sieci. Istnieje możliwość wynajęcia serwera proxy vps.

Zainstaluj 3proxy z obsługą http(s) i socks5-proxy

Należy zachować ostrożność, ponieważ niepożądane jest instalowanie serwera bez autoryzacji. Może to prowadzić do nieautoryzowanego wykorzystania serwera przez intruzów do organizowania spamu i dużego ruchu.

Na początek należy zainstalować kilka pakietów i zależności.

Dla AlmaLinux polecenie:

yum -y install gcc wget tar

, a dla Debiana:

apt install -y build-essential wget tar

Następnie należy pobrać pliki z oficjalnej strony projektu 3proxy, rozpakować archiwum i skompilować pobrane pliki.

Następnie należy utworzyć niezbędne katalogi na pliki konfiguracyjne i logi, przenieść plik wykonywalny 3proxy oraz utworzyć nowego użytkownika"proxyuser" i przypisać mu prawa do katalogów. Aby utworzyć nowy plik konfiguracyjny, uruchom polecenie:

touch /etc/3proxy/3proxy.cfg

Przydziel uprawnienia tylko użytkownikowi root za pomocą chmod 600 /etc/3proxy/3proxy.cfg.

Po utworzeniu nowego pliku konfiguracyjnego konieczne jest jego poprawne wypełnienie. W tym celu należy zapisać uid i gid użytkownika"proxyuser", a następnie za pomocą edytora tekstu skopiować i wkleić tekst z przykładowego pliku konfiguracyjnego. Zapisujemy zmiany w pliku konfiguracyjnym i mamy zainstalowane 3proxy z obsługą http(s) i socks5-proxy.

Plik konfiguracyjny

Poniżej znajduje się przykładowy plik konfiguracyjny:

Konfigurowanie serwera do działania jako proxyuser

(wstawiamy uid i gid naszego użytkownika, którego poznaliśmy wcześniej).
setgid 991
setuid 991

Określ prawidłowe serwery nazw. Zobacz /etc/resolv.conf:
nserver 8.8.8.8.8
nserver 8.8.4.4

Użyj domyślnych limitów czasu i rozmiaru pamięci podręcznej dla zapytań DNS:
timeouts 1 5 30 60 180 180 1800 1800 15 60
nscache 65536

Określ tryb uruchamiania jako demon:
daemon

Określ adres IP zewnętrznego interfejsu serwera:
external 111.111.111.111.111 (lub zignoruj linię, jeśli IP jest takie samo).

Określ adres IP wewnętrznego interfejsu serwera:
internal 192.168.0.1 (lub zignoruj go, aby serwer proxy nasłuchiwał wszystkich adresów IP).

Skonfiguruj http proxy na standardowym porcie 3128:
proxy -p3128 -n -a (określ swój port, upewniając się wcześniej, że działa).

Konfiguracja socks proxy na standardowym porcie 1080:
socks -p1080 (określ swój port, upewniając się wcześniej, że działa).

Określ ścieżkę do logów, format logów i rotację:
log /var/log/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotate 30

Następnie należy utworzyć plik inicjalizacyjny dla systemd i skonfigurować odpowiednie uprawnienia:

# touch /etc/systemd/system/3proxy.service
# chmod 664 /etc/systemd/system/3proxy.service

Poniższy tekst powinien zostać wstawiony do tego pliku:

[Unit] 
Description=3proxy Proxy Server 
After=network.target 
[Service] 
Type=simple 
ExecStart=/usr/bin/3proxy /etc/3proxy/3proxy.cfg 
ExecStop=/bin/kill `/usr/bin/pgrep proxyuser` 
RemainAfterExit=yes 
Restart=on-failure 
[Install] 
WantedBy=multi-user.target

Zapisz i zaktualizuj konfigurację systemd:

# systemctl daemon-reload

Uruchom 3proxy i dodaj go do autoloadera:

# systemctl start 3proxy
# systemctl enable 3proxy
Pamiętaj, aby otworzyć port http proxy w firewalld lub iptables.

Konfiguracja została zakończona. Masz teraz http-proxy na porcie 3128 i socks-proxy na porcie 1080.

Rozwiązywanie niektórych problemów

Pierwszym problemem jest możliwość, że po zarejestrowaniu nowej domeny nie będzie ona dostępna z powodu buforowania nazw domen. Aby rozwiązać ten problem, należy poczekać na aktualizację rekordów DNS lub dodać adres IP serwera i nowej domeny do pliku hosts. Pozwoli to na dostęp do nowej domeny do czasu aktualizacji rekordów DNS.

Problem drugi - jeśli korzystasz z serwera proxy z domyślnymi portami, prędzej czy później serwer może zostać wykryty. Aby rozwiązać ten problem, zaleca się zmianę portów.

Na przykład, można ustawić port 7834 na http proxy i 7835 na Socks. Jednak takie porty również mogą zostać wykryte, więc można skonfigurować zaporę sieciową tak, aby zezwalała na dostęp do serwera tylko z określonych adresów, podczas gdy inne będą pozbawione dostępu. To rozwiązanie jest dość niezawodne, choć niezbyt elastyczne, ponieważ możesz nie mieć dostępu do statycznego adresu IP.

Trzeci problem polega na tym, że jeśli korzystasz z serwera proxy i przechowujesz dzienniki wszystkich połączeń, z czasem mogą one stać się dość duże i zająć większość wolnego miejsca na dysku. Aby uniknąć tego problemu, należy zadbać o rotację logów lub nie przechowywać ich wcale.

Istnieją różne metody rotacji logów, które pozwalają zachować tylko kilka ostatnich plików logów i automatycznie usuwać starsze logi. Dlatego najlepiej jest skonfigurować proces rotacji logów z wyprzedzeniem, aby uniknąć przepełnienia dysku. Pomoże to zachować wszystkie dane i uniknąć utraty informacji podczas korzystania z serwera proxy.

Uproszczona konfiguracja anonimowego serwera proxy http(s) na porcie 3128

users proxyuser:CL:password

daemon

log /var/log/3proxy/3proxy.log D

rotate 30

auth strong

proxy -n -a

setgid 65534

setuid 65534

Konieczne jest również utworzenie katalogu na logi i ustawienie uprawnień (uruchamiamy serwer z minimalnymi prawami nobody w systemie za pomocą dyrektyw setgid/setud):

mkdir /var/log/3proxy ; chown nobody /var/log/3proxy

Instalacja 3proxy w Dockerze

Rozważmy instalację 3proxy w Dockerze.

Przede wszystkim musimy zainstalować kilka pakietów (a w przypadku niedawno zainstalowanych systemów Debian i Ubuntu może być również konieczne zaktualizowanie indeksu pakietów apt za pomocą # apt update).

Dla AlmaLinux i CentOS:

# yum install docker docker-compose

Dla Ubuntu i Debiana:

# apt install docker docker.io docker-compose

Pobierz obraz:

# docker pull 3proxy/3proxy

Domyślnie 3proxy używa bezpiecznego środowiska chroot w /usr/local/3proxy z uid 65535 i gid 65535 i oczekuje, że plik konfiguracyjny 3proxy zostanie umieszczony w /usr/local/etc/3proxy. Ścieżki w pliku konfiguracyjnym powinny być określone względem /usr/local/3proxy, tj. powinny być /logs zamiast /usr/local/3proxy/logs. W chroot wymagane są uprawnienia dla nserver.

Aby to zrobić, utwórz katalog i plik konfiguracyjny 3proxy:

# mkdir -p /etc/dockerapp/3proxy
# touch /etc/dockerapp/3proxy/3poxy.conf

Następnie użyj dowolnego edytora tekstu, aby edytować utworzony plik konfiguracyjny 3proxy .conf. Aby uruchomić 3proxy w Dockerze, wystarczy minimalna konfiguracja:

nserver 8.8.8.8.8
socks -p3129

Aby dodać logowanie i użytkownika, należy dodać do pliku konfiguracyjnego 3proxy:

log /logs/3proxy.log 
auth strong 
users "proxyuser:CR:87beeef3f4ee4661ac1897eca216fc26"

Zamiast"87beeef3f4ee4661ac1897eca216fc26" należy podać hash MD5 hasła dla proxyuser. Skrót MD5 można znaleźć za pomocą generatorów online.

Uruchommy 3proxy za pomocą docker-compose. Będzie to wymagało utworzenia pliku konfiguracyjnego w formacie .yml:

# touch /etc/dockerapp/3proxy/docker-compose.yml

Wstaw tam poniższy tekst za pomocą edytora tekstu:

version: "2.1" 
services: 
  3proxysvc: 
image: 3proxy/3proxy:latest 
container_name: 3proxy 
volumes: 
   - /etc/dockerapp/3proxy/conf:/usr/local/3proxy/conf 
ports: 
   - 8080:3129 
restart: unless-stopped

Zapisz. W tym pliku określiliśmy port zewnętrzny 8080. Teraz możemy go uruchomić:

# docker-compose -f /etc/dockerapp/3proxy/docker-compose.yml up -d

Otrzymamy następującą odpowiedź:

Tworzenie sieci"3proxy_default" z domyślnym sterownikiem
Tworzenie 3proxy ... done

Test:

# docker ps

Otrzymujemy odpowiedź z identyfikatorem kontenera, obrazem, statusem, używanymi portami i nazwą:

48cc0cd140cd 3proxy/3proxy:latest "/bin/3proxy /etc/3p..." 5