Як налаштувати проксі SOCKS5 на віртуальному приватному сервері (VPS)

Як налаштувати проксі SOCKS5 на віртуальному приватному сервері (VPS)

08:31, 02.12.2022

Зміст статті
arrow

  • Які існують типи проксі
  • Як налаштувати проксі SOCKS5 на віртуальному сервері з Ubuntu 18 і вище
  • Встановлення SOCKS сервера Dante в Ubuntu 16.04

  • Як налаштувати автозапуск сервера
  • Висновок

Хоча проксі-сервери дуже схожі за своєю функцією на VPN, вони мають одну суттєву відмінність – трафік не шифрується, тобто рівень гарантування безпеки тут буде значно нижчим, аніж під час використання віртуальних приватних мереж. Незважаючи на це, проксі-сервери активно використовують, оскільки цей метод дає змогу:

  • приховати свою IP-адресу під час базової перевірки;
  • приховати своє фактичне місце розташування – сайти, на які ви заходите, фіксують лише регіон, у якому розташований проксі-сервер;
  • убезпечити ваш пристрій від небажаних сайтів завдяки блокуванню тих сайтів, які гарантовано несуть небезпеку, містять шкідливе ПЗ тощо.

Але при цьому варто розуміти, що проксі-сервер не може убезпечити вас від просунутих методів виявлення, він не шифрує трафік і може збирати дані про користувачів. Чи будуть ці дані передаватися третім особам – питання відкрите, тому використовуйте тільки перевірені проксі-сервери.

Далі в статті ми розповімо, як налаштувати проксі SOCKS5 на віртуальному приватному сервері, а також які варіації цієї технології існують.

Які існують типи проксі

Основних типів проксі існує п'ять:

  1. FTP проксі – їх використовують для завантаження даних на FTP сервери.
  2. CGI (анонімайзери) – як правило, це веб-сайти, за допомогою яких можна отримати доступ до будь-яких інших заблокованих сайтів. Тобто якщо ви, наприклад, хочете відвідати сайт, який заблоковано у вашій країні, достатньо перейти на такий сайт-анонімайзер і ввести шуканий URL в адресне поле. Нічого встановлювати на комп'ютер не потрібно – все відбувається через хмару. Єдиний недолік – можуть коштувати грошей.
  3. SMTP, POP3 і IMAP – технології, які використовують для надсилання та приймання електронної пошти.
  4. HTTP і HTTPS проксі – потрібні для перегляду веб-сторінок.
  5. SOCKS5 – сервіс, що перенаправляє вихідний і вхідний інтернет-трафік через віддалений проксі-сервер. Забезпечує маскування вашої реальної IP-адреси, приховує геолокацію і запобігає випадковому витоку конфіденційної інформації. Оптимальний варіант для обходу регіональної цензури для VPS.

Найбільш просунутою і масовою технологією є SOCKS5, і вона ж найкраще підходить для використання у зв'язці з VPS.

Як налаштувати проксі SOCKS5 на віртуальному сервері з Ubuntu 18 і вище

Відразу скажемо, швидко і просто не вийде. Але якщо чітко слідувати нашій інструкції, це не забере багато часу і сил.

Насамперед орендуйте VPS (https://www.hostzealot.com/vps ) на базі Ubuntu 18.04.4 LTS (https://www.hostzealot.com/vps/os-ubuntu ). Тут усе просто – зв'яжіться з хостинг-провайдером, який вас цікавить, і повідомте, який тарифний план вас цікавить. Вам допоможуть підібрати оптимальний за потужністю VPS або VDS індивідуально.

Далі підключіться до сервера від імені адміністратора та оновіть пакети:

apt update
apt full-upgrade


Дізнайтеся, яка версія пакета Dante SOCKS сервера у ваших репозиторіях:

apt search dante-server
 
dante-server/jammy 1.4.2+dfsg-7build4 amd64
  SOCKS (v4 and v5) proxy daemon (danted)


Тепер встановлюємо Dante:

apt install dante-server


І ставимо його в автозавантаження:

systemctl is-enabled danted
enabled


Тепер відкрийте конфігураційний файл /etc/danted.conf у режимі редагування і пропишіть туди необхідні параметри. Приклад вмісту:

logoutput: syslog stdout /var/log/sockd.log
#logoutput: stderr
 
internal: ens3 port = 1080
external: ens3
 
socksmethod: username
#socksmethod: username none
 
user.privileged: root
user.unprivileged: nobody
user.libwrap: nobody
 
client pass {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: error connect disconnect
}
 
client block {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: connect error
}
 
socks pass {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: error connect disconnect
}
 
socks block {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: connect error

}


Тут потрібні деякі роз'яснення:

  • logoutput – визначає механізм реєстрації підключень (у нашому прикладі все відбуватиметься через стандартний системний лог).
  • user.privived – надання серверу root-прав для перевірки дозволів.
  • user.uncitationd – необхідно, щоб заблокувати роботу сервера як користувача без привілеїв.
  • internal – задає порт, на якому запущено сервіс, а також IP-адреси, дозволені для підключення.
  • external – визначає мережевий інтерфейс для вихідних підключень.

Тепер переходимо до створення користувача, який і буде використовувати наш SOCKS5 сервер. Його обов'язково потрібно додати в групу проксі:

useradd -s /bin/false proxyuser && sudo passwd proxyuser
usermod -aG proxy proxyuser


Далі у фаєрволі дозволяємо порт TCP 1080 для підключення клієнтів:

sudo ufw allow 1080/tcp


На цьому налаштування проксі SOCKS5 на VPS завершено. Після цього перевірте підключення через Dante – скористайтеся яким-небудь безкоштовним антидетект-браузером із підтримкою SOCKS5: наприклад, Dolphin Anty або будь-яким іншим аналогічним.

Як налаштувати проксі socks5 на віртуальному приватному сервері (vps)

Встановлення SOCKS сервера Dante в Ubuntu 16.04

На таких старих версіях Ubuntu за замовчуванням встановлено застарілу версію Dante Server 1.1.19, яка, до всього іншого, не працює з логіном і паролем. Тобто доступ до проксі регулюється виключно шляхом модифікації правил iptables. Таким чином, спершу нам потрібно встановити і налаштувати необхідний для збірки набір софта і залежностей:

apt-get install -y autoconf automake libtool pkg-config checkinstall libwrap0 libwrap0-dev libpam0g-dev


Слідом створюємо каталог для подальшої роботи і переходимо в нього:

mkdir dante && cd ~/dante


Тепер перейдіть на офіційний сайт розробників і завантажте останню версію Dante. Зробити це можна і через командний рядок:

wget https://www.inet.no/dante/files/dante-1.4.2.tar.gz


Розпакуйте і перейдіть у відповідний каталог:

tar -zxvf dante-1.4.2.tar.gz
cd dante-1.4.2


Задайте конфігурацію збірки:

./configure --prefix=/etc/dante


У підсумку має вийти щось подібне:

Configure status:
Client:        	 Enabled
Server:        	Enabled
Preloading:	Enabled
Libwrap:     	Enabled
BSD Auth:   	Disabled, usable bsd_auth.h not found
PAM:           	Enabled
GSSAPI:       	Not found/disabled
KRB5:          	 Not found/disabled
SASL:          	  Not found/disabled
UPNP:          	Not found/disabled
Compatability: 	issetugid setproctitle strlcpy strvis
Modules:
redirect:      	Not found
bandwidth: 	Not found
ldap:         	    Not found


Наступний крок – компіляція вихідних кодів:

make


Тепер можете приступати до встановлення зібраного сервера. Найкраще робити це через checkinstall:

checkinstall
# Нажмите y, затем Enter для создания каталога с документацией.
The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs?  [y]: y

Preparing package documentation...OK

# Описание можно не прописывать, везде жмите Enter
Please write a description for the package.
End your description with an empty line or EOF.

>> 


Коли встановлення буде завершено, буде створено deb-пакет (dante_1.4.2-1_amd64.deb), його в будь-який момент можна встановити на іншу віртуальну машину, але тепер більше не знадобиться попередня конфігурація і збірка.

Якщо буде потрібно видалити встановлений пакет, використовуйте команду:

dpkg -r dante


Як налаштувати автозапуск сервера

Перейдіть у директорію /etc/init.d/ і створіть скрипт із назвою sockd:

nano /etc/init.d/sockd


Його вміст має мати такий вигляд:

#! /bin/sh
### BEGIN INIT INFO
# Provides:      	sockd
# Required-Start:	$remote_fs $syslog
# Required-Stop: 	$remote_fs $syslog
# Default-Start: 	2 3 4 5
# Default-Stop:  	0 1 6
# Short-Description: Start the dante SOCKS server.
# Description:   	SOCKS (v4 and v5) proxy server daemon (sockd).
#                	This server allows clients to connect to it and
#                    request proxying of TCP or UDP network traffic
#                	with extensive configuration possibilities.
### END INIT INFO
#
# dante SOCKS server init.d file. Based on /etc/init.d/skeleton:
# Version:  @(#)skeleton  1.8  03-Mar-1998  miquels@cistron.nl
# Via: https://gitorious.org/dante/pkg-debian
PATH=/sbin:/usr/sbin:/bin:/usr/bin
NAME=sockd
DAEMON=/etc/dante/sbin/$NAME
DAEMON_ARGS="-D"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
DESC="Dante SOCKS daemon"
CONFFILE=/etc/$NAME.conf
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
. /lib/lsb/init-functions
set -e
# This function makes sure that the Dante server can write to the pid-file.
touch_pidfile ()
{
  if [ -r $CONFFILE ]; then
    uid="`sed -n -e 's/[[:space:]]//g' -e 's/#.*//' -e '/^user\.privileged/{s/[^:]*://p;q;}' $CONFFILE`"
	if [ -n "$uid" ]; then
      touch $PIDFILE
      chown $uid $PIDFILE
	fi
  fi
}
case "$1" in
  start)
	if ! egrep -cve '^ *(#|$)' \
        -e '^(logoutput|user\.((not)?privileged|libwrap)):' \
        $CONFFILE > /dev/null
	then
        echo "Not starting $DESC: not configured."
        exit 0
	fi
	echo -n "Starting $DESC: "
    touch_pidfile
    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
        || return 1
    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
        $DAEMON_ARGS \
        || return 2
	echo "$NAME."
	;;
  stop)
	echo -n "Stopping $DESC: "
    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
    RETVAL="$?"
	[ "$RETVAL" = 2 ] && return 2
    start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
	[ "$?" = 2 ] && return 2
	echo "$NAME."
	;;
  reload|force-reload)
	#
    #   If the daemon can reload its config files on the fly
    #   for example by sending it SIGHUP, do it here.
	#
    #   Make this a do-nothing entry, if the daemon responds to changes in its config file
    #   directly anyway.
	#
 	echo "Reloading $DESC configuration files."
     start-stop-daemon --stop --signal 1 --quiet --pidfile \
        $PIDFILE --exec $DAEMON -- -D
  ;;
  restart)
	#
    #   If the "reload" option is implemented, move the "force-reload"
    #   option to the "reload" entry above. If not, "force-reload" is
    #   just the same as "restart".
	#
	echo -n "Restarting $DESC: "
    start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON
	sleep 1
    touch_pidfile
    start-stop-daemon --start --quiet --pidfile $PIDFILE \
      --exec $DAEMON -- -D
	echo "$NAME."
	;;
  status)
    status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
	;;
  *)
    N=/etc/init.d/$NAME
	# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
	echo "Usage: $N {start|stop|restart|status|force-reload}" >&2
	exit 1
	;;
esac

exit 0


Збережіть зміни, і не забудьте цей скрипт зробити виконуваним:

chmod +x /etc/init.d/sockd


Перечитайте всіх демонів:

systemctl daemon-reload


І додайте sockd в автозапуск:

systemctl enable sockd
systemctl start sockd


І наостанок усе перевірте:

systemctl status sockd


Відтепер ви можете керувати проксі-сервером SOCKS за допомогою стандартних команд systemctl.

Висновок

Звичайно, описані методи – не найпростіші у виконанні, тут потрібне певне розуміння принципів роботи описаних утиліт і протоколів. Як альтернативу ви можете використовувати платні VPN – це позбавить від зайвого головного болю і дасть змогу безпечно обходити регіональні блокування, зберігаючи повну анонімність і конфіденційність.

views 5m, 48s
views 2
Поділитися

Чи була ця стаття корисною для вас?

Популярні пропозиції VPS

Інші статті на цю тему

cookie

Чи приймаєте ви файли cookie та політику конфіденційності?

Ми використовуємо файли cookie, щоб забезпечити вам найкращий досвід роботи на нашому сайті. Якщо ви продовжуєте користуватися сайтом, не змінюючи налаштувань, вважайте, що ви згодні на отримання всіх файлів cookie на сайті HostZealot.