В тази статия ще покажем 3proxy конфигурация на специален сървър, захранван от операционната система ArchLinux/CentOS. 3proxy е един от най-подходящите и функционални инструменти. Поддържа различни видове протоколи: HTTP, HTTPS, FTP, SOCKS и други. Това ще ви помогне да настроите свой собствен прокси сървър за няколко минути.
Статията съдържа стъпка по стъпка инструкции за инсталиране на помощната програма и нейното по-нататъшно конфигуриране. Разглеждат се проблеми като инсталиране от официален източник, настройване на конфигурационни файлове, отваряне на нестандартни портове, както и са описани често срещани грешки и са дадени практически препоръки за тяхното решаване. Преди стартиране е необходимо да поръчате VPS или специален сървър, захранван от операционната система CentOS или ArchLinux. Всички действия в примера ще се извършват на специален сървър, захранван от операционната система CentOS7 с един специален статичен публичен IP адрес.
Инсталация
Стъпка
3proxy се инсталира директно от изходния код. gcc ще се използва като компилатор. Свързваме се със сървъра като root (суперпотребител) и инсталираме компилатора.
yum install gcc
Стъпка
Сега е необходимо да изтеглите изходните файлове на 3proxy. Можете да направите това, като посетите официалния уебсайт и копирате връзката към текущата версия:
Ако е необходима архивирана версия, можете също да изтеглите връзката директно от GitHub :
Към момента на писане на тази статия текущата версия е 0.9.3. Изтеглете го и веднага го разопаковайте:
wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz
tar -xvzf 0.9.3.tar.gz
Стъпка
Отидете в директорията с разопакования проект и компилирайте:
cd 3proxy-0.9.3/
make -f Makefile.Linux
Стъпка
Създаваме директории и копираме файла 3proxy в /usr/bin:
mkdir -p /var/log/3proxy
mkdir /etc/3proxy
cp bin/3proxy /usr/bin/
Стъпка
Създаваме потребител за работа с каталога. В този случай потребителското име е 3proxyuser:
useradd -s /usr/sbin/nologin -U -M -r 3proxyuser
Предоставяме правата за работа с директории на създадения потребител:
chown -R 3proxyuser:3proxyuser /etc/3proxy
chown -R 3proxyuser:3proxyuser /var/log/3proxy
chown -R 3proxyuser:3proxyuser /usr/bin/3proxy
Сега нека създадем конфигурационен файл с помощта на командата:
touch /etc/3proxy/3proxy.cfg
Ако е необходимо, можете да зададете разрешения за конфигурационния файл за root потребителя. Тази стъпка не е задължителна, но ще добави защита:
chmod 600 /etc/3proxy/3proxy.cfg
3прокси конфигурация
Стъпка
Необходимо е да попълните правилно конфигурационния файл, който е създаден по-рано. Първо разберете uid и gid на потребителя чрез командата:
id 3proxyuser
В нашия случай това са следните стойности:
За да попълните конфигурационния файл, можете да вземете готови конфигурации или да използвате документацията на официалния уебсайт. Също така, файл с пример вече е предварително инсталиран по подразбиране; можете да го намерите по пътя: /cfg/3proxy.cfg.sample
Като пример ще разгледаме 2 вида конфигурация: със и без регистриране . Всеки ред ще бъде придружен от коментари (те са маркирани със символа „#“).
Това е пример за готова конфигурация без логване :
# We specify the user's data that we found out in the previous command
setgid 995
setuid 997
# Type the NS-servers. It is possible to clarify your own servers at /etc/resolv.conf
nserver 1.1.1.1
nserver 8.8.8.8
# Cache size
nscache 65536
# Timeouts
timeouts 1 5 30 60 180 1800 15 60
# Authorization of users by login/password (if required). You may not to use it or specify the path to the file in which authorization data is stored, for example, users $/etc/3proxy/.authfile
# If you insert a password in md5 format, replace “CL” with “CR”, as indicated in the example. You can use 2 methods at the same time.
auth cache strong
users "userproxy:CL:passwordproxy"
users "userproxy2:CR:b89097a7ad0b94f13b3c313ae76699d4 "
# Launch mode. Daemon only.
Daemon
# We write the port through which the http connection will take place. The example shows the standard one. To establish a socks connection, use the command specified in the second line, the port is also standard.
proxy -p3128
socks -p1080
Разгледахме варианта с конфигурационен файл без регистриране. Сега ще създадем конфигурационен файл с регистриране и оторизация на потребителите ; той ще бъде използван по-късно по време на настройката на сървъра.
Уверете се, че сте предоставили информация за оторизация, тъй като сървърът може да бъде открит дори на нестандартни портове.
# Configuring the server to launch from the userproxy user and the passwordproxy password.
users userproxy:CL:passwordproxy
# Specify the user's uid and gid
setgid 995
setuid 997
# Nameservers (NS-servers)
nserver 1.1.1.1
nserver 8.8.8.8
# Timeouts
timeouts 1 5 30 60 180 1800 15 60
# Cache size (standard)
nscache 65536
# Indicate the launch mode
daemon
# We install http proxy on a non-standard 50001 port. If there are several IP addresses on the server, be sure to specify a specific address for connecting the network. For example, "-e91.150.32.146". The argument "i" is a local address.
proxy –p50001
# In a same way as socks proxy, we conduct the installation on a 50002 port.
socks –p50002
# Path to the directory with logs, logs format and proxy rotation
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 3proxyuser`
RemainAfterExit=yes
Restart=on-failure
[Install]
WantedBy=multi-user.target»
Моля, обърнете внимание: в стойността „ExecStop“ трябва да посочите потребителското име, създадено в стъпка № 5.
След което трябва да актуализирате конфигурацията на Daemon с командата:
systemctl daemon-reload
Стъпка
Единственото, от което се нуждаем, е да стартираме конфигурирания 3proxy, да го добавим към автоматично стартиране и също така да отворим портове в защитната стена.
Добавете го към автоматично стартиране, стартиране и проверка на състоянието:
systemctl enable 3proxy
systemctl start 3proxy
systemctl status 3proxy
След като проверим състоянието, виждаме информация, че 3proxy е стартиран успешно:
Остава само да отворите портове:
firewall-cmd --zone=public --add-port=50001/tcp
firewall-cmd --zone=public --add-port=50002/tcp
firewall-cmd –reload
Ако е необходимо, рестартирайте сървъра. Възможно е да проверите дали портовете са отворени с командата:
firewall-cmd --list-all
Какво трябва да бъде:
Както виждаме и двата порта са успешно отворени и се прослушват. http връзката е на първия порт, socks е на втория порт.
Проверете връзката чрез всяка удобна услуга:
Всичко работи. От наша страна не препоръчваме използването на незащитена връзка без оторизация с потребителско име/парола, както и със стандартен набор от портове . Докато настройвате конфигурационния файл, не забравяйте да посочите потребителско име и да създадете сложна парола, а също така променете портовете на нестандартни . В изключителни случаи е възможно да се използва оторизация по IP адрес.
Общи проблеми
Нещо се обърка и проксито не работи? Може би конфигурацията на 3proxy е направена неправилно. Нека разгледаме най-често срещаните проблеми и техните решения по време на инсталирането и конфигурирането на помощната програма.
Няма връзка
Най-често срещаният проблем за много потребители е недостъпна връзка, когато конфигурационните файлове изглеждат правилно конфигурирани. Ако сте сигурни, че всички настройки са конфигурирани правилно, хостинг доставчикът не ограничава избрания порт и всички данни показват работеща услуга, проблемът може да е в защитната стена или по-точно в нейната неправилна конфигурация. Например, може да има повече от две програми, инсталирани в системата, които ще са в конфликт помежду си. За да разрешите проблема, достатъчно е да използвате една конкретна защитна стена. Съветваме ви да изберете само iptables или firewall-cmd.
Услугата не се стартира
Услугата не стартира след настройка на всички необходими конфигурационни файлове. Това се случва, когато е пропусната стъпка от конфигурацията, не са дадени съответните права или е допусната незначителна грешка в конфигурационните файлове. Препоръчваме ви внимателно да проучите инструкциите стъпка по стъпка отново, може би сте пропуснали някоя от стъпките. Ако нищо не помогне, би било добре да преинсталирате операционната система и да следвате всички стъпки отначало. Препоръчваме да използвате примера, разположен на /cfg/3proxy.cfg.sample, като тестова конфигурация, и предварително инсталирания firewall-cmd като защитна стена.
Влизане
Последният, но не по-малко важен въпрос е свързан със съхранението на файлове. 3proxy отнема няколко mb по време на инсталацията, но размерът може да се увеличи значително само чрез регистриране с течение на времето. Факт е, че много потребители позволяват запис на дневници в отделен файл, но не настройват ротация и не изтриват неподходящи дневници. За решаване на този проблем могат да се използват три варианта:
- Активиране на регистриране;
- Периодично изтривайте неподходящи регистрационни файлове;
- Активирайте ротацията, както беше направено в конфигурацията по-горе. Например "rotate 30" в конфигурационния файл означава, че 3proxy ще съхранява само последните 30 файла.
Заключение
Инсталирането и конфигурирането на 3proxy на операционни системи CentOS и ArchLinux е доста проста, но в същото време ефективна задача. Статията обхваща стъпките за инсталиране на необходимите пакети, конфигуриране на конфигурационни файлове и стартиране на услугата. Придобитите знания ще ви позволят сами да инсталирате и конфигурирате вашия прокси сървър без никакви затруднения.