Начини на плащане Abuse

Инсталиране на 3proxy

05.06.2023, 23:17

3proxy е безплатен прокси сървър с отворен код, който се използва за различни цели, като филтриране на трафика, кеширане и блокиране на определени уебсайтове. Той поддържа различни протоколи, като SOCKS v4/v4a/v5, HTTP, HTTPS, FTP, POP3, SMTP, и поддържа методи за удостоверяване, като SOCKS5 потребителско име/парола, NTLM, LDAP, Kerberos и SSO.

Сървърът е с висока степен на персонализация, като осигурява подробно управление на използването на честотната лента и параметрите на връзката. 3proxy може да се инсталира на платформи Windows, Linux и macOS. Това е лек и лесен за използване прокси сървър, подходящ за малки и средни мрежи. Възможно е да наемете vps прокси сървър.

Инсталиране на 3proxy с поддръжка на http(s) и socks5-proxy

Трябва да се внимава, тъй като не е желателно сървърът да се инсталира без разрешение. Това може да доведе до неоторизирано използване на сървъра от нарушители за организиране на спам и голям трафик.

Като начало е необходимо да се инсталират няколко пакета и зависимости.

За AlmaLinux се изпълнява командата:

yum -y install gcc wget tar

и за Debian:

apt install -y build-essential wget tar

След това изтеглете файловете от официалния сайт на проекта 3proxy, разопаковайте архива и компилирайте изтеглените файлове.

След това създайте необходимите директории за конфигурационните файлове и дневниците, прехвърлете изпълнимия файл 3proxy и създайте нов потребител"proxyuser" и му присвоете права за директориите. За да създадете нов конфигурационен файл, изпълнете командата:

touch /etc/3proxy/3proxy.cfg

Задайте права само на потребителя root с chmod 600 /etc/3proxy/3proxy.cfg.

След като създадете нов конфигурационен файл, е необходимо да го попълните правилно. За да направите това, запишете uid и gid на потребителя"proxyuser", след което използвайте текстов редактор, за да копирате и поставите текста от примерния конфигурационен файл. Запазете промените в конфигурационния файл и вече имаме инсталиран 3proxy с поддръжка на http(s) и socks5-proxy.

Конфигурационен файл

По-долу е показан примерен конфигурационен файл:

Конфигуриране на сървъра да работи като proxyuser

(въведете uid и gid на нашия потребител, които научихме по-рано).
setgid 991
setuid 991

Посочете правилните сървъри за имена. Вижте /etc/resolv.conf:
nserver 8.8.8.8.8.8
nserver 8.8.4.4

Използвайте времетраенето по подразбиране и размера на кеша за DNS заявките:
1 5 30 60 180 180 1800 1800 1800 15 60
nscache 65536

Задайте режим на стартиране като демон:
daemon

Посочете IP адреса на външния интерфейс на сървъра:
външен 111.111.111.111.111.111 (или игнорирайте реда, ако IP адресът е същият).

Посочете IP адреса на вътрешния интерфейс на сървъра:
192.168.0.1 (или го игнорирайте, за да може проксито да слуша всички IP адреси).

Конфигурирайте http прокси на стандартен порт 3128:
(посочете вашия порт, като предварително се уверите, че той работи): proxy -p3128 -n -a.

Конфигуриране на прокси за чорапи на стандартен порт 1080:
socks -p1080 (посочете вашия порт, като преди това проверите дали работи).

Посочете пътя до логовете, формата на логовете и ротацията им:
log /var/log/3proxy/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
rotate 30

След това създайте инициализиращ файл за systemd и конфигурирайте правилните разрешения:

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

В този файл трябва да се вмъкне следният текст:

[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

Запишете и актуализирайте конфигурацията на systemd:

# systemctl daemon-reload

Стартирайте 3proxy и го добавете към автозадавача:

# systemctl start 3proxy
# systemctl enable 3proxy
Не забравяйте да отворите порта за http прокси във firewalld или iptables.

Конфигурацията е завършена. Вече имате http-прокси на порт 3128 и socks-прокси на порт 1080.

Отстраняване на някои проблеми

Първият проблем е, че има вероятност, след като регистрирате нов домейн, той да не е достъпен за вас поради кеширането на имената на домейни. За да решите този проблем, трябва да изчакате DNS записите да бъдат актуализирани или да добавите IP адреса на вашия сървър и новия домейн към файла hosts. Това ще ви позволи да получите достъп до новия домейн, докато DNS записите бъдат актуализирани.

Втори проблем - ако използвате прокси сървър с портове по подразбиране, рано или късно сървърът може да бъде открит. За да се реши този проблем, се препоръчва да се променят портовете.

Например, можете да зададете порт 7834 за http прокси сървъра и 7835 за Socks. Такива портове обаче също могат да бъдат открити, затова можете да конфигурирате защитната стена така, че да разрешава достъп до сървъра само от определени адреси, а на други ще бъде отказан достъп. Това решение е доста надеждно, въпреки че не е твърде гъвкаво, тъй като може да нямате достъп до статичен IP адрес.

Третият проблем е, че ако използвате прокси сървър и съхранявате логове за всички връзки, с течение на времето те могат да станат доста големи и да заемат по-голямата част от свободното място на диска ви. За да избегнете този проблем, трябва да се погрижите за ротация на логовете или изобщо да не ги водите.

Съществуват различни методи за ротация на логовете, които ви позволяват да запазвате само последните няколко файла с логове и автоматично да изтривате по-старите. Ето защо е най-добре да настроите процеса на ротация на дневниците предварително, за да избегнете препълване на диска. Това ще помогне да се запазят всички данни и да се избегне загубата на информация при използване на прокси сървър.

Опростена конфигурация на анонимен http(s) прокси сървър на порт 3128

users proxyuser:CL:password

daemon

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

rotate 30

auth strong

proxy -n -a

setgid 65534

setuid 65534

Необходимо е също така да се създаде директория за дневници и да се зададат права (стартираме сървъра с минимални права на никой в системата, като използваме директивите setgid/setud):

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

Инсталиране на 3proxy в Docker

Нека да разгледаме инсталирането на 3proxy в Docker.

Първо, трябва да инсталираме някои пакети (а за наскоро инсталираните операционни системи Debian и Ubuntu може да се наложи и да актуализираме индекса на пакетите apt с # apt update).

За AlmaLinux и CentOS:

# yum install docker docker-compose

За Ubuntu и Debian:

# apt install docker docker.io docker-compose

Изтегляне на изображение:

# docker pull 3proxy/3proxy

По подразбиране 3proxy използва защитена среда chroot в /usr/local/3proxy с uid 65535 и gid 65535 и очаква конфигурационният файл на 3proxy да бъде поставен в /usr/local/etc/3proxy. Пътищата в конфигурационния файл трябва да бъдат зададени относително към /usr/local/3proxy, т.е. трябва да бъде /logs вместо /usr/local/3proxy/logs. В chroot се изисква разрешение за nserver.

За да направите това, създайте директория и конфигурационен файл на 3proxy:

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

След това използвайте всеки текстов редактор, който ви харесва, за да редактирате създадения конфигурационен файл 3proxy .conf. За да стартирате 3proxy в Docker, минималната конфигурация е достатъчна:

nserver 8.8.8.8.8.8
socks -p3129

За да добавите регистриране и потребител, трябва да добавите в конфигурационния файл 3proxy:

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

Вместо"87beeef3f4ee4661ac1897eca216fc26"трябва да посочите MD5 хеша на паролата за проксипотребителя. Можете да откриете MD5 хеша, като използвате онлайн генератори.

Нека да стартираме 3proxy с помощта на docker-compose. За целта е необходимо да се създаде конфигурационен файл във формат .yml:

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

Въведете следния текст в него, като използвате текстов редактор:

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

Запишете. В този файл сме посочили външния порт 8080. Сега можем да го стартираме:

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

Ще получим следния отговор:

Създаване на мрежа"3proxy_default" с драйвер по подразбиране
Създаване на 3proxy ... готово

Тест:

# docker ps

Получаваме отговор с идентификатора на контейнера, образа, състоянието, използваните портове и името:

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