3proxy - трафикті сүзгілеу, кэштеу және белгілі бір веб-сайттарды блоктау сияқты әртүрлі мақсаттарда пайдаланылатын тегін және бастапқы бастапқы прокси сервер. Ол SOCKS v4/v4a/v5, HTTP, HTTPS, FTP, POP3, SMTP сияқты әртүрлі протоколдарды қолдайды және SOCKS5 пайдаланушы аты/құпия сөз, NTLM, LDAP, Kerberos және SSO сияқты аутентификация әдістерін қолдайды.
Сервер жоғары конфигурацияланады, өткізу қабілеттілігін пайдалану мен қосылым параметрлерін егжей-тегжейлі басқаруды қамтамасыз етеді. 3проксиді Windows, Linux және macOS платформаларында орнатуға болады. Бұл шағын және орта желілерге жарамды жеңіл және пайдалану оңай прокси сервер. VPS проксиді жалға алуға болады.
Серверді авторизациясыз орнату ұсынылмайтындықтан, сақ болу керек. Бұл спам мен үлкен трафикті таратуды ұйымдастыру үшін зиянкестердің серверді рұқсатсыз пайдалануына әкелуі мүмкін.
Бастау үшін сізге бірнеше пакеттер мен тәуелділіктерді орнату қажет.
AlmaLinux үшін пәрмен орындалады:
yum -y install gcc wget tar
және Debian үшін:
apt install -y build-essential wget tar
Содан кейін біз файлдарды 3proxy жобасының ресми веб-сайтынан жүктеп аламыз, мұрағатты ашамыз және жүктелген файлдарды құрастырамыз.
Әрі қарай, конфигурация файлдары мен журналдары үшін қажетті каталогтарды жасаймыз, 3proxy
орындалатын файлын тасымалдаймыз, сонымен қатар жаңа « proxyuser
» пайдаланушысын жасаймыз және оған каталогтарға құқықтарды тағайындаймыз. Жаңа конфигурация файлын жасау үшін пәрменді орындаңыз:
touch /etc/3proxy/3proxy.cfg
Біз құқықтарды тек chmod 600 /etc/3proxy/3proxy.cfg
арқылы түбірлік пайдаланушыға тағайындаймыз.
Жаңа конфигурация файлын жасағаннан кейін оны дұрыс толтыру керек. Мұны істеу үшін " proxyuser
" пайдаланушысының uid
және gid
жазып алыңыз, содан кейін үлгі конфигурация файлынан мәтінді көшіру және қою үшін мәтін өңдегішін пайдаланыңыз. Конфигурация файлындағы өзгертулерді сақтаңыз және http(s) және socks5-прокси қолдауымен орнатылған 3proxy алыңыз.
Төменде үлгі конфигурация файлы берілген:
Прокси пайдаланушыдан серверді іске қосуды орнату
(біз бұрын білген пайдаланушының uid
және gid
енгіземіз).
setgid 991
setuid 991
Дұрыс атау серверлерін көрсетіңіз. Сіз оларды /etc/resolv.conf:
nserver 8.8.8.8
nserver 8.8.4.4
Біз DNS сұраулары үшін әдепкі күту уақытын және кэш өлшемін қолданамыз:
timeouts 1 5 30 60 180 1800 15 60
nscache 65536
Біз іске қосу режимін демон ретінде көрсетеміз:
daemon
Біз сервердің сыртқы интерфейсінің IP мекенжайын көрсетеміз:
external 111.111.111.111
(немесе бір IP болса, жолды елемеу).
Біз сервердің ішкі интерфейсінің IP мекенжайын көрсетеміз:
internal 192.168.0.1
(немесе прокси барлық IP мекенжайларын тыңдау үшін оны елемеу).
Біз 3128 стандартты портында http проксиін орнаттық:
proxy -p3128 -n -a
(оның жұмыс істейтінін тексергеннен кейін портты көрсетіңіз).
Біз 1080 стандартты портында шұлық проксиін конфигурациялаймыз:
socks -p1080
(оның жұмыс істейтінін тексергеннен кейін портты көрсетіңіз).
Біз журналдарға жолды, журнал пішімін және айналдыруды көрсетеміз:
log /var/log/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
Орнату аяқталды. Енді сізде 3128 портында http-прокси және 1080 портында жұмыс істейтін socks-proxy
бар.
Бірінші мәселе, жаңа доменді тіркегеннен кейін домендік атауды кэштеу себебінен ол сізге қолжетімді болмауы мүмкін. Бұл мәселені шешу үшін DNS жазбаларының жаңартылуын немесе сервердің IP мекенжайын және жаңа доменді hosts
файлына қосуын күту керек. Бұл DNS жазбалары жаңартылмайынша жаңа доменге кіруге мүмкіндік береді.
Екінші мәселе - әдепкі порттары бар прокси серверді пайдалансаңыз, сервер ерте ме, кеш пе анықталуы мүмкін. Бұл мәселені шешу үшін порттарды өзгерту ұсынылады.
Мысалы, http проксиінде 7834 портын және Socks үшін 7835 портын орнатуға болады. Дегенмен, мұндай порттарды да анықтауға болады, сондықтан желіаралық қалқанды серверге белгілі бір мекенжайлардан ғана кіруге рұқсат беретіндей конфигурациялауға болады, ал қалғандарына кіруге тыйым салынады. Бұл шешім өте икемді болмаса да, өте сенімді, өйткені сізде статикалық IP мекенжайына қол жеткізе алмауыңыз мүмкін.
Үшінші мәселе - егер сіз прокси-серверді қолдансаңыз және барлық қосылымдардың журналдарын сақтасаңыз, уақыт өте олар айтарлықтай үлкен болып, дискідегі бос орынның көп бөлігін алуы мүмкін. Бұл мәселені болдырмау үшін журналды айналдыру туралы алдын ала қамқорлық жасау керек немесе оларды мүлде сақтамау керек.
Соңғы бірнеше журнал файлдарын ғана сақтауға және ескі жазбаларды автоматты түрде жоюға мүмкіндік беретін журналды айналдырудың әртүрлі әдістері бар. Сондықтан дискінің толып кетуін болдырмау үшін журналды айналдыру процесін алдын ала орнатқан дұрыс. Бұл прокси серверді пайдалану кезінде барлық деректерді сақтауға және ақпараттың жоғалуын болдырмауға көмектеседі.
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
Докерде 3прокси орнату опциясын қарастырайық.
Алдымен сізге кейбір бумаларды орнату қажет (және жаңадан орнатылған Debian және Ubuntu ОЖ үшін сізге # apt update
пәрменімен apt
бумасының индексін жаңарту қажет болуы мүмкін).
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
қатысты болуы керек, яғни /usr/local/3proxy/logs
орнына /logs
logs. chroot nserver
үшін рұқсатты қажет етеді.
Ол үшін каталог пен 3proxy
конфигурация файлын жасаңыз:
# mkdir -p /etc/dockerapp/3proxy # touch /etc/dockerapp/3proxy/3poxy.conf
Әрі қарай, сізге ыңғайлы кез келген мәтіндік редакторды пайдаланып, жасалған конфигурация файлын өңдеуіңіз керек 3proxy.conf
. Docker жүйесінде 3проксиді іске қосу үшін минималды конфигурация жеткілікті:
nserver 8.8.8.8
socks -p3129
Журналды және пайдаланушыны қосу үшін 3proxy
конфигурация файлына келесіні қосу керек:
log /logs/3proxy.log auth strong users "proxyuser:CR:87beeef3f4ee4661ac1897eca216fc26"
" 87beeef3f4ee4661ac1897eca216fc26
" орнына пайдаланушы proxyuser
үшін құпия сөздің MD5 хэшін көрсету керек. Сіз MD5 хэшін онлайн генераторлар арқылы біле аласыз.
docker-compose
арқылы 3проксиді іске қосайық. Ол үшін .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
" желісін жасау
3прокси жасалуда... аяқталды
Тексерейік:
# docker ps
Біз контейнер идентификаторын, кескінін, күйін, пайдаланылған порттарды және атауын көрсететін жауап аламыз:
48cc0cd140cd 3proxy/3proxy:latest "/bin/3proxy /etc/3p…" 5