РАЗБОР
Статья
Собственный SOCKS5 Proxy сервер
[ обложка статьи ]
Режим чтения
Введение
Приветствую всех на форуме. Решил написать небольшую статью про Proxy Server. Хочу вам продемонстрировать поднятие proxy сервера на своем выделенном сервере (VPS). Иногда бывает необходимо пропустить трафик одного приложения через удаленный сервер и использование VPN в таком случае не целесообразно и не удобно, тем более если это на постоянной основе. Гораздо легче один раз прописать в приложении идентификационные данные proxy сервера и забыть об этом. Так сказать Fire and Forget. Хотя в другой ситуации когда нам требуется перенаправить весь трафик - то VPN просто незаменим.
Основная часть
Мы будем делать SOCKS5 Proxy
В отличие от HTTP прокси-серверов, SOCKS передаёт все данные от клиента, ничего не добавляя от себя, то есть с точки зрения конечного сервера, данные, полученные им от SOCKS-прокси, идентичны данным, которые клиент передал бы напрямую, без проксирования. SOCKS более универсален, он не зависит от конкретных протоколов уровня приложений (7-го уровня модели OSI) и оперирует на уровне TCP-соединений (4‑й уровень модели OSI). SOCKS 5-й версии поддерживает аутентификацию пользователя.
Таким образом мы получаем:
- Постоянный и Надежный Proxy сервер. Уверенность в том что наши данные на другом конце провода не будут кем-то расшифровываться.
- Производительность - высокая пропускная способность и низкое время отклика.
- Полный контроль.
Ну что же, начнем
Два основных компонента рассматриваемых в этой статье это: Debian 9 и Dante-Server. В место Debian у вас может быть любая Linux OS, а Dante был выбран за не имением достойной альтернативы на мой взгляд.
Поехали, первым делом подключаемся по SSH к нашему серверу. В своих предыдущих статьях я показывал аренду и настройку VPS.
Обновляем систему и пакеты.
Bash:
apt update && apt dist-upgrade
И ставим Dante-Server
Bash:
apt install dante-server
Сразу же после установки открываем и правим конфигурационный файл.
Bash:
vi /etc/danted.conf
Код:
logoutput: stderr
internal: eth0 port = 8467
external: eth0
socksmethod: username
user.privileged: root
user.unprivileged: nobody
user.libwrap: nobody
client pass {
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: connect error
}
logoutput: stderr - программ будет писать логи только о критических ошибках. Для отладки можно добавить параметр syslog чтобы ввелись логи подключения в /etc/log/syslog.
internal: eth0 port = 8467 - листенер сервера на нестандартном порту на eth0.
external: eth0 - исходящий трафик будет проходить через интерфейс eth0.
socksmethod: username - для авторизации по локальному пользователю.
user.privileged: root - чтобы dante-server смогла читать файл /etc/passwd для авторизации пользователей.
client pass и socks pass - доступ ото всюду, куда угодно.
Подробнее о директивах конфигурации можете прочитать в самом файле или в сети.
Добавим пользователя для установки соединения с нашим proxy, чтобы не использовать рабочих системных пользователей.
Bash:
useradd -s /bin/false codebyuser && passwd codebyuser
Разрешаем TCP порт 8467 который должен слушаться.
Bash:
#Если вы пользуетесь iptables:
iptables -A INPUT -p tcp --dport 8467 -j ACCEPT
#Если UFW
ufw allow 8467/tcp
Запускаем dante-server и добавляем в авто-загрузку.
Bash:
systemctl restart danted
systemctl enable danted
Проверяем соединение с proxy на нашей локальной Linux машине:
Bash:
curl --socks5 codebyuser:codebypass@11.22.33.44:8467 ident.me; echo
Как видно все работает. Можно смело прописывать конфиг в приложение на котором требуется использование прокси.
На этом все, всем спасибо за внимание!
AI-выжимка
сгенерировано ИИ
Тезисы статьи скоро
Статья читается полностью. Тезисы со ссылками на разделы появятся позже.
Содержание
Связанное по теме
Codeby Academy
Практика и мастерство
От основ до продвинутого — программы для практиков Codeby.
Перейти к курсу →
Почему для поднятия соксов ты выбрал программу dante-server, а не более популярную 3proxy ?
Установка 3proxy на CentOS 7
Часть 1.
Аренда VDS.
Часть 2.
Подготовка VDS к установке 3proxy.
Итак, у нас имеется:
# uname -a
Linux zeroxzed.ru 3.10.0-123.20.1.el7.x86_64 #1 SMP Thu Jan 29 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Меняем имя хоста (при необходимости) :
Проверить какое у нас используется hostname можно командой:
# hostname
Изменить имя хоста можно следующей командой
Для CentOS 6 в файле /etc/sysconfig/network
HOSTNAME=example.com
Для CentOS 7 командой:
# hostnamectl set-hostname новое_имя_хоста
# hostnamectl set-hostname word-music.ru
Перезапустим сетевой интерфейс чтобы изменения вступили в силу:
# /etc/init.d/network restart
Проверяем работает ли у нас все:
# hostname
Первым делом обновим систему:
# yum -y update
Для удобства администрирования, я всегда устанавливаю Midnight Commander, или просто mc:
# yum -y install mc
Подсветка синтаксиса в Midnight Commander
Для подсветки файлов, у которых нет своих цветовых настроек:
# cp /usr/share/mc/syntax/cxx.syntax /usr/share/mc/syntax/unknown.syntax
Дальше нам пригодятся сетевые утилиты.
# yum -y install net-tools.x86_64
Отключаем SELinux.
# mcedit /etc/sysconfig/selinux
меняем значение
SELINUX=disabled
Чтобы изменения вступили в силу, перезагружаемся:
# reboot
Или примените исключение:
# setenforce 0
Отключить IPv6 везде где только можно:
В файл /etc/sysctl.conf
Добавляем следующие строки:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
# echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
# echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
# mcedit /etc/sysconfig/network-scripts/ifcfg-eth0
IPV6INIT=no
# mcedit /etc/sysconfig/network
добавить
NETWORKING_IPV6=no
IPV6INIT=no
SSH:
/etc/ssh/sshd_config
до
#AddressFamily any
#ListenAddress 0.0.0.0
после
AddressFamily inet
ListenAddress 0.0.0.0
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Перезагрузка и проверка:
# reboot
# netstat -tulnp
Все строки с ::: это ipv6 протокол
Удаляем NetworkManager в CentOS 7
Это программа, облегчающая определение и конфигурацию средств для автоматического подключения к сети.
Полезна она только для домашнего ПК или ноутбука, на сервере же может создавать проблемы с настройкой сети,
т.к. может самостоятельно менять настройки.
# systemctl stop NetworkManager && systemctl disable NetworkManager && systemctl restart network
Настраиваем время
Установим нужный часовой пояс:
# yum -y install tzdata
# mv /etc/localtime /etc/localtime.bak
# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Синхронизируем время:
Можно запускать синхронизацию времени вручную:
# ntpdate pool.ntp.org
Или установить сервер ntp (настройки в файле /etc/ntp.conf):
# yum install ntp
# service ntpd start
# chkconfig ntpd on
Узнать, какое время на сервере можно с помощью команды date:
# date
Часть 3.
Установка программы 3proxy.
Устанавливаем нужные пакеты для компиляции
yum update && yum -y install wget gcc mc
Загружаем 3proxy
wget https://github.com/z3APA3A/3proxy/archive/0.8.10.tar.gz
Разархивируем скачанный архив командой
tar -xvzf 0.8.10.tar.gz
Переходим в папку с распакованными файлами:
# cd 3proxy-0.8.10
Перед компиляцией используя mcedit добавим одну строчку в src/proxy.h, чтобы сервер был анонимным
# mcedit /src/proxy.h
добавить пункт
#define ANONYMOUS 1
Можно добавить эту строку командой
# sed -i '1s/^/#define ANONYMOUS 1\n/' ./src/proxy.h
Компилируем:
make -f Makefile.Linux
Во время компиляции могут появляться следующие ошибки:
3proxy.c:1103: warning: pointer targets in passing argument 1 of …
Но они не критичны и их мы игнорируем
Создаем папки:
# mkdir /usr/local/etc/3proxy
# mkdir /usr/local/etc/3proxy/bin
# mkdir /usr/local/etc/3proxy/logs
# mkdir /usr/local/etc/3proxy/stat
яяяПереносим исполняемый файл
# cp src/3proxy /usr/local/etc/3proxy/bin
Переносим файл для автозапуска
# cp ./scripts/rc.d/proxy.sh /etc/init.d/3proxy
Ставим в автозагрузку:
/sbin/chkconfig 3proxy on
# systemctl enable 3proxy.service
Записываем информацию в файл автозагрузки CentOS
# chkconfig 3proxy on
Создаем новый конфигурационный файл
# touch /usr/local/etc/3proxy/3proxy.cfg
Или переносим из образца конфигурационный файл
# cp cfg/3proxy.cfg.sample /usr/local/etc/3proxy/3proxy.cfg
Редактируем 3proxy.cfg
# mcedit /usr/local/etc/3proxy/3proxy.cfg
Насчет конфига - никаких лишних пробелов, табуляций и т.п. знаков в начале строки,
иначе строка конфига будет считаться закоментированной и значит, не будет обрабатываться.
поменять порт на 2110 и не забыть дать пользователям разрешение на этот нестандартный порт:
**********************************************
daemon
# IP адреса
# меняем 192.168.1.2 на ip адрес вашего сервера (internal и external)
internal 192.168.1.2
external 192.168.1.2
auth strong
users admin:CL
assword
proxy -n -a -p2110 -ixxx.xxx.xxx.xxx -exxx.xxx.xxx.xxx
proxy -n -a -p3128 -iyyy.yyy.yyy.yyy -eyyy.yyy.yyy.yyy
# Конфигурация FTP (ftp и icq), Web-proxy (http и https), SOCKS5-proxy
flush
allow admin,vasyawww
maxconn 32
# разрешим использовать прокси только тем пользователям, которых добавили в самом начале конфига и с определенным IP
allow zerochaos,zchaos 192.168.1.4,95.95.95.95 * * *
# запустим ftp прокси на порту 3127
#ftppr -p3127
# запустим web прокси на порту 3128
proxy -p3128
# запустим socks прокси на порту 3129
#socks -p3129
***********************************************
Выставляем права
# chown -R nobody:nogroup /usr/local/etc/3proxy
- эта команда выдаёт ошибку о том, что инвалид-группа "nobody:nogroup " .
# chown -R root /usr/local/etc/3proxy
Даём разрешение на выполнение скрипта:
# chmod +x /etc/init.d/3proxy
Запускаем
# service 3proxy start
Проверить, запущена ли служба 3proxy можно командой
# systemctl status 3proxy.service
Дальше — настраиваем огненную стену:
# Открываем порт для http- и socks- прокси:
$ firewall-cmd --zone=public --add-port=2110/tcp --permanent
$ firewall-cmd --zone=public --add-port=3129/tcp --permanent
$ firewall-cmd --reload
# Блокируем ICMP трафик (echo-запросы) для того, чтоб наш сервер **не отвечал** на пинги:
# Проверяем состояние:
$ firewall-cmd --zone=public --query-icmp-block=echo-reply
$ firewall-cmd --zone=public --query-icmp-block=echo-request
# Блокируем:
$ firewall-cmd --zone=public --add-icmp-block=echo-reply --permanent
$ firewall-cmd --zone=public --add-icmp-block=echo-request --permanent
# Перечитаем правила:
$ firewall-cmd --reload
# И проверим теперь:
$ firewall-cmd --zone=public --query-icmp-block=echo-reply
$ firewall-cmd --zone=public --query-icmp-block=echo-request
Проверяем слушается ли наш порт:
# netstat -an | grep -i listen
# netstat -lnpt | grep 3128
# netstat -lnpt | grep 3129
Если утилита netstat не установлена, то установить её можно командой
# yum -y install net-tools
Проверим висит ли наш процесс:
ps ax | grep [3]proxy
****************************************************************
***************************************************************
Для применения настроек выполните команду:
# systemctl restart 3proxy
Перегружаем сервер командой reboot и проверяем работоспособность.
Часть 4.
Проверка работоспособности.
**************************************************************************************
2 СПОСОБ
Установка
yum install 3proxy -y
Отредактировать настройки
nano /etc/3proxy/3proxy.cfg
Запуск
/usr/local/etc/3proxy/bin/3proxy /usr/local/3proxy/3proxy.cfg
или
service 3proxy start
Установка 3proxy на CentOS 7
Часть 1.
Аренда VDS.
Часть 2.
Подготовка VDS к установке 3proxy.
Итак, у нас имеется:
# uname -a
Linux zeroxzed.ru 3.10.0-123.20.1.el7.x86_64 #1 SMP Thu Jan 29 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Меняем имя хоста (при необходимости) :
Проверить какое у нас используется hostname можно командой:
# hostname
Изменить имя хоста можно следующей командой
Для CentOS 6 в файле /etc/sysconfig/network
HOSTNAME=example.com
Для CentOS 7 командой:
# hostnamectl set-hostname новое_имя_хоста
# hostnamectl set-hostname word-music.ru
Перезапустим сетевой интерфейс чтобы изменения вступили в силу:
# /etc/init.d/network restart
Проверяем работает ли у нас все:
# hostname
Первым делом обновим систему:
# yum -y update
Для удобства администрирования, я всегда устанавливаю Midnight Commander, или просто mc:
# yum -y install mc
Подсветка синтаксиса в Midnight Commander
Для подсветки файлов, у которых нет своих цветовых настроек:
# cp /usr/share/mc/syntax/cxx.syntax /usr/share/mc/syntax/unknown.syntax
Дальше нам пригодятся сетевые утилиты.
# yum -y install net-tools.x86_64
Отключаем SELinux.
# mcedit /etc/sysconfig/selinux
меняем значение
SELINUX=disabled
Чтобы изменения вступили в силу, перезагружаемся:
# reboot
Или примените исключение:
# setenforce 0
Отключить IPv6 везде где только можно:
В файл /etc/sysctl.conf
Добавляем следующие строки:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
# echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
# echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
# mcedit /etc/sysconfig/network-scripts/ifcfg-eth0
IPV6INIT=no
# mcedit /etc/sysconfig/network
добавить
NETWORKING_IPV6=no
IPV6INIT=no
SSH:
/etc/ssh/sshd_config
до
#AddressFamily any
#ListenAddress 0.0.0.0
после
AddressFamily inet
ListenAddress 0.0.0.0
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Перезагрузка и проверка:
# reboot
# netstat -tulnp
Все строки с ::: это ipv6 протокол
Удаляем NetworkManager в CentOS 7
Это программа, облегчающая определение и конфигурацию средств для автоматического подключения к сети.
Полезна она только для домашнего ПК или ноутбука, на сервере же может создавать проблемы с настройкой сети,
т.к. может самостоятельно менять настройки.
# systemctl stop NetworkManager && systemctl disable NetworkManager && systemctl restart network
Настраиваем время
Установим нужный часовой пояс:
# yum -y install tzdata
# mv /etc/localtime /etc/localtime.bak
# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Синхронизируем время:
Можно запускать синхронизацию времени вручную:
# ntpdate pool.ntp.org
Или установить сервер ntp (настройки в файле /etc/ntp.conf):
# yum install ntp
# service ntpd start
# chkconfig ntpd on
Узнать, какое время на сервере можно с помощью команды date:
# date
Часть 3.
Установка программы 3proxy.
Устанавливаем нужные пакеты для компиляции
yum update && yum -y install wget gcc mc
Загружаем 3proxy
wget https://github.com/z3APA3A/3proxy/archive/0.8.10.tar.gz
Разархивируем скачанный архив командой
tar -xvzf 0.8.10.tar.gz
Переходим в папку с распакованными файлами:
# cd 3proxy-0.8.10
Перед компиляцией используя mcedit добавим одну строчку в src/proxy.h, чтобы сервер был анонимным
# mcedit /src/proxy.h
добавить пункт
#define ANONYMOUS 1
Можно добавить эту строку командой
# sed -i '1s/^/#define ANONYMOUS 1\n/' ./src/proxy.h
Компилируем:
make -f Makefile.Linux
Во время компиляции могут появляться следующие ошибки:
3proxy.c:1103: warning: pointer targets in passing argument 1 of …
Но они не критичны и их мы игнорируем
Создаем папки:
# mkdir /usr/local/etc/3proxy
# mkdir /usr/local/etc/3proxy/bin
# mkdir /usr/local/etc/3proxy/logs
# mkdir /usr/local/etc/3proxy/stat
яяяПереносим исполняемый файл
# cp src/3proxy /usr/local/etc/3proxy/bin
Переносим файл для автозапуска
# cp ./scripts/rc.d/proxy.sh /etc/init.d/3proxy
Ставим в автозагрузку:
/sbin/chkconfig 3proxy on
# systemctl enable 3proxy.service
Записываем информацию в файл автозагрузки CentOS
# chkconfig 3proxy on
Создаем новый конфигурационный файл
# touch /usr/local/etc/3proxy/3proxy.cfg
Или переносим из образца конфигурационный файл
# cp cfg/3proxy.cfg.sample /usr/local/etc/3proxy/3proxy.cfg
Редактируем 3proxy.cfg
# mcedit /usr/local/etc/3proxy/3proxy.cfg
Насчет конфига - никаких лишних пробелов, табуляций и т.п. знаков в начале строки,
иначе строка конфига будет считаться закоментированной и значит, не будет обрабатываться.
поменять порт на 2110 и не забыть дать пользователям разрешение на этот нестандартный порт:
**********************************************
daemon
# IP адреса
# меняем 192.168.1.2 на ip адрес вашего сервера (internal и external)
internal 192.168.1.2
external 192.168.1.2
auth strong
users admin:CL
proxy -n -a -p2110 -ixxx.xxx.xxx.xxx -exxx.xxx.xxx.xxx
proxy -n -a -p3128 -iyyy.yyy.yyy.yyy -eyyy.yyy.yyy.yyy
# Конфигурация FTP (ftp и icq), Web-proxy (http и https), SOCKS5-proxy
flush
allow admin,vasyawww
maxconn 32
# разрешим использовать прокси только тем пользователям, которых добавили в самом начале конфига и с определенным IP
allow zerochaos,zchaos 192.168.1.4,95.95.95.95 * * *
# запустим ftp прокси на порту 3127
#ftppr -p3127
# запустим web прокси на порту 3128
proxy -p3128
# запустим socks прокси на порту 3129
#socks -p3129
***********************************************
Выставляем права
# chown -R nobody:nogroup /usr/local/etc/3proxy
- эта команда выдаёт ошибку о том, что инвалид-группа "nobody:nogroup " .
# chown -R root /usr/local/etc/3proxy
Даём разрешение на выполнение скрипта:
# chmod +x /etc/init.d/3proxy
Запускаем
# service 3proxy start
Проверить, запущена ли служба 3proxy можно командой
# systemctl status 3proxy.service
Дальше — настраиваем огненную стену:
# Открываем порт для http- и socks- прокси:
$ firewall-cmd --zone=public --add-port=2110/tcp --permanent
$ firewall-cmd --zone=public --add-port=3129/tcp --permanent
$ firewall-cmd --reload
# Блокируем ICMP трафик (echo-запросы) для того, чтоб наш сервер **не отвечал** на пинги:
# Проверяем состояние:
$ firewall-cmd --zone=public --query-icmp-block=echo-reply
$ firewall-cmd --zone=public --query-icmp-block=echo-request
# Блокируем:
$ firewall-cmd --zone=public --add-icmp-block=echo-reply --permanent
$ firewall-cmd --zone=public --add-icmp-block=echo-request --permanent
# Перечитаем правила:
$ firewall-cmd --reload
# И проверим теперь:
$ firewall-cmd --zone=public --query-icmp-block=echo-reply
$ firewall-cmd --zone=public --query-icmp-block=echo-request
Проверяем слушается ли наш порт:
# netstat -an | grep -i listen
# netstat -lnpt | grep 3128
# netstat -lnpt | grep 3129
Если утилита netstat не установлена, то установить её можно командой
# yum -y install net-tools
Проверим висит ли наш процесс:
ps ax | grep [3]proxy
****************************************************************
***************************************************************
Для применения настроек выполните команду:
# systemctl restart 3proxy
Перегружаем сервер командой reboot и проверяем работоспособность.
Часть 4.
Проверка работоспособности.
**************************************************************************************
2 СПОСОБ
Установка
yum install 3proxy -y
Отредактировать настройки
nano /etc/3proxy/3proxy.cfg
Запуск
/usr/local/etc/3proxy/bin/3proxy /usr/local/3proxy/3proxy.cfg
или
service 3proxy start
Не нравится мне 3proxy.Почему для поднятия соксов ты выбрал программу dante-server, а не более популярную 3proxy ?
Установка 3proxy на CentOS 7
Часть 1.
Аренда VDS.
Часть 2.
Подготовка VDS к установке 3proxy.
Итак, у нас имеется:
# uname -a
Linux zeroxzed.ru 3.10.0-123.20.1.el7.x86_64 #1 SMP Thu Jan 29 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Меняем имя хоста (при необходимости) :
Проверить какое у нас используется hostname можно командой:
# hostname
Изменить имя хоста можно следующей командой
Для CentOS 6 в файле /etc/sysconfig/network
HOSTNAME=example.com
Для CentOS 7 командой:
# hostnamectl set-hostname новое_имя_хоста
# hostnamectl set-hostname word-music.ru
Перезапустим сетевой интерфейс чтобы изменения вступили в силу:
# /etc/init.d/network restart
Проверяем работает ли у нас все:
# hostname
Первым делом обновим систему:
# yum -y update
Для удобства администрирования, я всегда устанавливаю Midnight Commander, или просто mc:
# yum -y install mc
Подсветка синтаксиса в Midnight Commander
Для подсветки файлов, у которых нет своих цветовых настроек:
# cp /usr/share/mc/syntax/cxx.syntax /usr/share/mc/syntax/unknown.syntax
Дальше нам пригодятся сетевые утилиты.
# yum -y install net-tools.x86_64
Отключаем SELinux.
# mcedit /etc/sysconfig/selinux
меняем значение
SELINUX=disabled
Чтобы изменения вступили в силу, перезагружаемся:
# reboot
Или примените исключение:
# setenforce 0
Отключить IPv6 везде где только можно:
В файл /etc/sysctl.conf
Добавляем следующие строки:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
# echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
# echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
# mcedit /etc/sysconfig/network-scripts/ifcfg-eth0
IPV6INIT=no
# mcedit /etc/sysconfig/network
добавить
NETWORKING_IPV6=no
IPV6INIT=no
SSH:
/etc/ssh/sshd_config
до
#AddressFamily any
#ListenAddress 0.0.0.0
после
AddressFamily inet
ListenAddress 0.0.0.0
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Перезагрузка и проверка:
# reboot
# netstat -tulnp
Все строки с ::: это ipv6 протокол
Удаляем NetworkManager в CentOS 7
Это программа, облегчающая определение и конфигурацию средств для автоматического подключения к сети.
Полезна она только для домашнего ПК или ноутбука, на сервере же может создавать проблемы с настройкой сети,
т.к. может самостоятельно менять настройки.
# systemctl stop NetworkManager && systemctl disable NetworkManager && systemctl restart network
Настраиваем время
Установим нужный часовой пояс:
# yum -y install tzdata
# mv /etc/localtime /etc/localtime.bak
# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Синхронизируем время:
Можно запускать синхронизацию времени вручную:
# ntpdate pool.ntp.org
Или установить сервер ntp (настройки в файле /etc/ntp.conf):
# yum install ntp
# service ntpd start
# chkconfig ntpd on
Узнать, какое время на сервере можно с помощью команды date:
# date
Часть 3.
Установка программы 3proxy.
Устанавливаем нужные пакеты для компиляции
yum update && yum -y install wget gcc mc
Загружаем 3proxy
wget https://github.com/z3APA3A/3proxy/archive/0.8.10.tar.gz
Разархивируем скачанный архив командой
tar -xvzf 0.8.10.tar.gz
Переходим в папку с распакованными файлами:
# cd 3proxy-0.8.10
Перед компиляцией используя mcedit добавим одну строчку в src/proxy.h, чтобы сервер был анонимным
# mcedit /src/proxy.h
добавить пункт
#define ANONYMOUS 1
Можно добавить эту строку командой
# sed -i '1s/^/#define ANONYMOUS 1\n/' ./src/proxy.h
Компилируем:
make -f Makefile.Linux
Во время компиляции могут появляться следующие ошибки:
3proxy.c:1103: warning: pointer targets in passing argument 1 of …
Но они не критичны и их мы игнорируем
Создаем папки:
# mkdir /usr/local/etc/3proxy
# mkdir /usr/local/etc/3proxy/bin
# mkdir /usr/local/etc/3proxy/logs
# mkdir /usr/local/etc/3proxy/stat
яяяПереносим исполняемый файл
# cp src/3proxy /usr/local/etc/3proxy/bin
Переносим файл для автозапуска
# cp ./scripts/rc.d/proxy.sh /etc/init.d/3proxy
Ставим в автозагрузку:
/sbin/chkconfig 3proxy on
# systemctl enable 3proxy.service
Записываем информацию в файл автозагрузки CentOS
# chkconfig 3proxy on
Создаем новый конфигурационный файл
# touch /usr/local/etc/3proxy/3proxy.cfg
Или переносим из образца конфигурационный файл
# cp cfg/3proxy.cfg.sample /usr/local/etc/3proxy/3proxy.cfg
Редактируем 3proxy.cfg
# mcedit /usr/local/etc/3proxy/3proxy.cfg
Насчет конфига - никаких лишних пробелов, табуляций и т.п. знаков в начале строки,
иначе строка конфига будет считаться закоментированной и значит, не будет обрабатываться.
поменять порт на 2110 и не забыть дать пользователям разрешение на этот нестандартный порт:
**********************************************
daemon
# IP адреса
# меняем 192.168.1.2 на ip адрес вашего сервера (internal и external)
internal 192.168.1.2
external 192.168.1.2
auth strong
users admin:CLassword
proxy -n -a -p2110 -ixxx.xxx.xxx.xxx -exxx.xxx.xxx.xxx
proxy -n -a -p3128 -iyyy.yyy.yyy.yyy -eyyy.yyy.yyy.yyy
# Конфигурация FTP (ftp и icq), Web-proxy (http и https), SOCKS5-proxy
flush
allow admin,vasyawww
maxconn 32
# разрешим использовать прокси только тем пользователям, которых добавили в самом начале конфига и с определенным IP
allow zerochaos,zchaos 192.168.1.4,95.95.95.95 * * *
# запустим ftp прокси на порту 3127
#ftppr -p3127
# запустим web прокси на порту 3128
proxy -p3128
# запустим socks прокси на порту 3129
#socks -p3129
***********************************************
Выставляем права
# chown -R nobody:nogroup /usr/local/etc/3proxy
- эта команда выдаёт ошибку о том, что инвалид-группа "nobody:nogroup " .
# chown -R root /usr/local/etc/3proxy
Даём разрешение на выполнение скрипта:
# chmod +x /etc/init.d/3proxy
Запускаем
# service 3proxy start
Проверить, запущена ли служба 3proxy можно командой
# systemctl status 3proxy.service
Дальше — настраиваем огненную стену:
# Открываем порт для http- и socks- прокси:
$ firewall-cmd --zone=public --add-port=2110/tcp --permanent
$ firewall-cmd --zone=public --add-port=3129/tcp --permanent
$ firewall-cmd --reload
# Блокируем ICMP трафик (echo-запросы) для того, чтоб наш сервер **не отвечал** на пинги:
# Проверяем состояние:
$ firewall-cmd --zone=public --query-icmp-block=echo-reply
$ firewall-cmd --zone=public --query-icmp-block=echo-request
# Блокируем:
$ firewall-cmd --zone=public --add-icmp-block=echo-reply --permanent
$ firewall-cmd --zone=public --add-icmp-block=echo-request --permanent
# Перечитаем правила:
$ firewall-cmd --reload
# И проверим теперь:
$ firewall-cmd --zone=public --query-icmp-block=echo-reply
$ firewall-cmd --zone=public --query-icmp-block=echo-request
Проверяем слушается ли наш порт:
# netstat -an | grep -i listen
# netstat -lnpt | grep 3128
# netstat -lnpt | grep 3129
Если утилита netstat не установлена, то установить её можно командой
# yum -y install net-tools
Проверим висит ли наш процесс:
ps ax | grep [3]proxy
****************************************************************
***************************************************************
Для применения настроек выполните команду:
# systemctl restart 3proxy
Перегружаем сервер командой reboot и проверяем работоспособность.
Часть 4.
Проверка работоспособности.
**************************************************************************************
2 СПОСОБ
Установка
yum install 3proxy -y
Отредактировать настройки
nano /etc/3proxy/3proxy.cfg
Запуск
/usr/local/etc/3proxy/bin/3proxy /usr/local/3proxy/3proxy.cfg
или
service 3proxy start
Железный аргумент))))Не нравится мне 3proxy.
Прекрасно. Может вынесете в отдельную статью?Почему для поднятия соксов ты выбрал программу dante-server, а не более популярную 3proxy ?
Установка 3proxy на CentOS 7
Часть 1.
Аренда VDS.
Часть 2.
Подготовка VDS к установке 3proxy.
Итак, у нас имеется:
# uname -a
Linux zeroxzed.ru 3.10.0-123.20.1.el7.x86_64 #1 SMP Thu Jan 29 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Меняем имя хоста (при необходимости) :
Проверить какое у нас используется hostname можно командой:
# hostname
Изменить имя хоста можно следующей командой
Для CentOS 6 в файле /etc/sysconfig/network
HOSTNAME=example.com
Для CentOS 7 командой:
# hostnamectl set-hostname новое_имя_хоста
# hostnamectl set-hostname word-music.ru
Перезапустим сетевой интерфейс чтобы изменения вступили в силу:
# /etc/init.d/network restart
Проверяем работает ли у нас все:
# hostname
Первым делом обновим систему:
# yum -y update
Для удобства администрирования, я всегда устанавливаю Midnight Commander, или просто mc:
# yum -y install mc
Подсветка синтаксиса в Midnight Commander
Для подсветки файлов, у которых нет своих цветовых настроек:
# cp /usr/share/mc/syntax/cxx.syntax /usr/share/mc/syntax/unknown.syntax
Дальше нам пригодятся сетевые утилиты.
# yum -y install net-tools.x86_64
Отключаем SELinux.
# mcedit /etc/sysconfig/selinux
меняем значение
SELINUX=disabled
Чтобы изменения вступили в силу, перезагружаемся:
# reboot
Или примените исключение:
# setenforce 0
Отключить IPv6 везде где только можно:
В файл /etc/sysctl.conf
Добавляем следующие строки:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
# echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
# echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
# mcedit /etc/sysconfig/network-scripts/ifcfg-eth0
IPV6INIT=no
# mcedit /etc/sysconfig/network
добавить
NETWORKING_IPV6=no
IPV6INIT=no
SSH:
/etc/ssh/sshd_config
до
#AddressFamily any
#ListenAddress 0.0.0.0
после
AddressFamily inet
ListenAddress 0.0.0.0
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Перезагрузка и проверка:
# reboot
# netstat -tulnp
Все строки с ::: это ipv6 протокол
Удаляем NetworkManager в CentOS 7
Это программа, облегчающая определение и конфигурацию средств для автоматического подключения к сети.
Полезна она только для домашнего ПК или ноутбука, на сервере же может создавать проблемы с настройкой сети,
т.к. может самостоятельно менять настройки.
# systemctl stop NetworkManager && systemctl disable NetworkManager && systemctl restart network
Настраиваем время
Установим нужный часовой пояс:
# yum -y install tzdata
# mv /etc/localtime /etc/localtime.bak
# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Синхронизируем время:
Можно запускать синхронизацию времени вручную:
# ntpdate pool.ntp.org
Или установить сервер ntp (настройки в файле /etc/ntp.conf):
# yum install ntp
# service ntpd start
# chkconfig ntpd on
Узнать, какое время на сервере можно с помощью команды date:
# date
Часть 3.
Установка программы 3proxy.
Устанавливаем нужные пакеты для компиляции
yum update && yum -y install wget gcc mc
Загружаем 3proxy
wget https://github.com/z3APA3A/3proxy/archive/0.8.10.tar.gz
Разархивируем скачанный архив командой
tar -xvzf 0.8.10.tar.gz
Переходим в папку с распакованными файлами:
# cd 3proxy-0.8.10
Перед компиляцией используя mcedit добавим одну строчку в src/proxy.h, чтобы сервер был анонимным
# mcedit /src/proxy.h
добавить пункт
#define ANONYMOUS 1
Можно добавить эту строку командой
# sed -i '1s/^/#define ANONYMOUS 1\n/' ./src/proxy.h
Компилируем:
make -f Makefile.Linux
Во время компиляции могут появляться следующие ошибки:
3proxy.c:1103: warning: pointer targets in passing argument 1 of …
Но они не критичны и их мы игнорируем
Создаем папки:
# mkdir /usr/local/etc/3proxy
# mkdir /usr/local/etc/3proxy/bin
# mkdir /usr/local/etc/3proxy/logs
# mkdir /usr/local/etc/3proxy/stat
яяяПереносим исполняемый файл
# cp src/3proxy /usr/local/etc/3proxy/bin
Переносим файл для автозапуска
# cp ./scripts/rc.d/proxy.sh /etc/init.d/3proxy
Ставим в автозагрузку:
/sbin/chkconfig 3proxy on
# systemctl enable 3proxy.service
Записываем информацию в файл автозагрузки CentOS
# chkconfig 3proxy on
Создаем новый конфигурационный файл
# touch /usr/local/etc/3proxy/3proxy.cfg
Или переносим из образца конфигурационный файл
# cp cfg/3proxy.cfg.sample /usr/local/etc/3proxy/3proxy.cfg
Редактируем 3proxy.cfg
# mcedit /usr/local/etc/3proxy/3proxy.cfg
Насчет конфига - никаких лишних пробелов, табуляций и т.п. знаков в начале строки,
иначе строка конфига будет считаться закоментированной и значит, не будет обрабатываться.
поменять порт на 2110 и не забыть дать пользователям разрешение на этот нестандартный порт:
**********************************************
daemon
# IP адреса
# меняем 192.168.1.2 на ip адрес вашего сервера (internal и external)
internal 192.168.1.2
external 192.168.1.2
auth strong
users admin:CLassword
proxy -n -a -p2110 -ixxx.xxx.xxx.xxx -exxx.xxx.xxx.xxx
proxy -n -a -p3128 -iyyy.yyy.yyy.yyy -eyyy.yyy.yyy.yyy
# Конфигурация FTP (ftp и icq), Web-proxy (http и https), SOCKS5-proxy
flush
allow admin,vasyawww
maxconn 32
# разрешим использовать прокси только тем пользователям, которых добавили в самом начале конфига и с определенным IP
allow zerochaos,zchaos 192.168.1.4,95.95.95.95 * * *
# запустим ftp прокси на порту 3127
#ftppr -p3127
# запустим web прокси на порту 3128
proxy -p3128
# запустим socks прокси на порту 3129
#socks -p3129
***********************************************
Выставляем права
# chown -R nobody:nogroup /usr/local/etc/3proxy
- эта команда выдаёт ошибку о том, что инвалид-группа "nobody:nogroup " .
# chown -R root /usr/local/etc/3proxy
Даём разрешение на выполнение скрипта:
# chmod +x /etc/init.d/3proxy
Запускаем
# service 3proxy start
Проверить, запущена ли служба 3proxy можно командой
# systemctl status 3proxy.service
Дальше — настраиваем огненную стену:
# Открываем порт для http- и socks- прокси:
$ firewall-cmd --zone=public --add-port=2110/tcp --permanent
$ firewall-cmd --zone=public --add-port=3129/tcp --permanent
$ firewall-cmd --reload
# Блокируем ICMP трафик (echo-запросы) для того, чтоб наш сервер **не отвечал** на пинги:
# Проверяем состояние:
$ firewall-cmd --zone=public --query-icmp-block=echo-reply
$ firewall-cmd --zone=public --query-icmp-block=echo-request
# Блокируем:
$ firewall-cmd --zone=public --add-icmp-block=echo-reply --permanent
$ firewall-cmd --zone=public --add-icmp-block=echo-request --permanent
# Перечитаем правила:
$ firewall-cmd --reload
# И проверим теперь:
$ firewall-cmd --zone=public --query-icmp-block=echo-reply
$ firewall-cmd --zone=public --query-icmp-block=echo-request
Проверяем слушается ли наш порт:
# netstat -an | grep -i listen
# netstat -lnpt | grep 3128
# netstat -lnpt | grep 3129
Если утилита netstat не установлена, то установить её можно командой
# yum -y install net-tools
Проверим висит ли наш процесс:
ps ax | grep [3]proxy
****************************************************************
***************************************************************
Для применения настроек выполните команду:
# systemctl restart 3proxy
Перегружаем сервер командой reboot и проверяем работоспособность.
Часть 4.
Проверка работоспособности.
**************************************************************************************
2 СПОСОБ
Установка
yum install 3proxy -y
Отредактировать настройки
nano /etc/3proxy/3proxy.cfg
Запуск
/usr/local/etc/3proxy/bin/3proxy /usr/local/3proxy/3proxy.cfg
или
service 3proxy start
По поводу публичных телеграм проксей. В разных статьях предлагают поставить прокси сервер dante и включить вход по юзерам ОС. И следующей строчкой добавляют юзера, но (!) не отрубают ему доступ по SSH и всем раскидывают ссылки на свою проксю с логином и паролем. Итого - берем юзер:пароль, адрес прокси и логинимся по SSH.
Юзер созданный с параметром -s /bin/false не сможет подключиться по ssh, потому что у него отсутсвует шелл. А нормальный адним, на сервере выключает аутентифткация по паролю в ssh.По поводу публичных телеграм проксей. В разных статьях предлагают поставить прокси сервер dante и включить вход по юзерам ОС. И следующей строчкой добавляют юзера, но (!) не отрубают ему доступ по SSH и всем раскидывают ссылки на свою проксю с логином и паролем. Итого - берем юзер:пароль, адрес прокси и логинимся по SSH.
А ещё собственный сокс или прокси можно "поднять" с помощью программы CCproxy в операционной системе Windows.
Это просто, удобно, не требует практически никаких знаний и навыков.
Нужно только скачать программу, установить её и произвести настройки, в которых разберётся даже "чайник".
CCproxy настройка
Программа для создания прокси
Это просто, удобно, не требует практически никаких знаний и навыков.
Нужно только скачать программу, установить её и произвести настройки, в которых разберётся даже "чайник".
А еще вот сокс на линукс в две команды
Тест был на дебиан8 и убунту 16.04
Код:
wget --no-check-certificate https://raw.github.com/h1777/3proxy-socks/master/3proxyinstaller.sh
chmod +x 3proxyinstaller.sh
./3proxyinstaller.sh
смена пароля
nano /etc/3proxy/.proxyauth
смена порта, по дефолту 3128
nano /etc/3proxy/3proxy.cfg
Запуск
/etc/init.d/3proxyinit start
А еще вот сокс на линукс в две команды
При этом способе установится программа 3proxy, рассмотренная выше, но при помощи скрипта.
Я не пробовала устанавливать 3 proxy при помощи скриптов, но уверена в том, что что-то пойдёт не так и редактирование конфигурационных файлов вручную - неизбежно. Тем более в Linux, в которой по дефолту постоянно что-то нужно настраивать ))
Так всегда бывает, когда пользуешься скриптами в Linux.
Более того, эти скрипты способны настолько увести мышление в сторону, что легче установить всё вручную
ИМХО.
Редактировать придется, сменить пароль и порт)При этом способе установится программа 3proxy, рассмотренная выше, но при помощи скрипта.
Я не пробовала устанавливать 3 proxy при помощи скриптов, но уверена в том, что что-то пойдёт не так и редактирование конфигурационных файлов вручную - неизбежно. Тем более в Linux, в которой по дефолту постоянно что-то нужно настраивать ))
Так всегда бывает, когда пользуешься скриптами в Linux.
Более того, эти скрипты способны настолько увести мышление в сторону, что легче установить всё вручную
ИМХО.
На винде далеко не уедешь)
А при использовании вот этих виндовых программок твой vps в ботнете легко окажется) если конечно софт скачан не с оф сайт разраба)
Мое ИМХО)))
P.S.
Только что проверил скрипт, установка и запуск прокси заняло 3 минуты и никаких проблем не возникло)
Последнее редактирование модератором:
Да, ладно ))На винде далеко не уедешь)
На чём основано это утверждение ? На мой взгляд, это мнение толпы, которое подхватывают различные тролли !
Уж извини, но я никак не могу понять, чем сокс на Linux лучше сокса на машине под управлением Windows.
Более, того, зачем для установки 3 proxy тебе нужен скрипт ?
Разве не проще и более грамотно установить программу из репозиториев ?
А если мы ведём речь на уровне "далеко не уедешь", то скомпилировать вручную из исходников ?
Твои аргументы о ботнетах - неубендительны.
Linux окажется в ботнете с такой-же вероятностью.
А где я говорил что прокси на линукс чем то лучше чем на винде?)Да, ладно ))
На чём основано это утверждение ? На мой взгляд, это мнение толпы, которое подхватывают различные тролли !
Уж извини, но я никак не могу понять, чем сокс на Linux лучше сокса на машине под управлением Windows.
Более, того, зачем для установки 3 proxy тебе нужен скрипт ?
Разве не проще и более грамотно установить программу из репозиториев ?
А если мы ведём речь на уровне "далеко не уедешь", то скомпилировать вручную из исходников ?
Твои аргументы о ботнетах - неубендительны.
Linux окажется в ботнете с такой-же вероятностью.
Ты показала софтину в которой прокси можно поднять без особых знаний и навыков, я так же предоставил скрипт с помощью которого поднятие прокси осуществляется без каких либо знаний и навыков)
Скрипт cкачивает с гитхаба и компилирует 3proxy.
О ботнетах, большинство виндового софта скачивается с торрентов, всяких сомнительных обменников, и прочих свалок, линукс же с оф реп или компилируется из исходников)
Ещё одно заблуждение, ну да ладно ))О ботнетах, большинство виндового софта скачивается с торрентов, всяких сомнительных обменников, и прочих свалок, линукс же с оф реп или компилируется из исходников)
Выходи уже из мира иллюзий, предрассудков.
Мы же в этой теме ведём речь не о каких-то торрентах, каких-то прочих свалках, а о конкретном софте и о "поднятии" soscks5 ))
Все программы имеют официальные сайты, с которых можно скачать инсталляторы от разработчиков.
Кстати, ты же сам предложил установку пограммы при помощи какого-то сомнительного скрипта ))
Я не разбирала построчно этот скрипт.
Но что мешает авторам подобных скриптов вставить туда одну-две строчки, которые нанесут ОС ущерб, гораздо более значимый, чем торренты ?
Ещё одно заблуждение, ну да ладно ))
Выходи уже из мира иллюзий, предрассудков.
Мы же в этой теме ведём речь не о каких-то торрентах, каких-то прочих свалках, а о конкретном софте и о "поднятии" soscks5 ))
Все программы имеют официальные сайты, с которых можно скачать инсталляторы от разработчиков.
Кстати, ты же сам предложил установку пограммы при помощи какого-то сомнительного скрипта ))
Я не разбирала построчно этот скрипт.
Но что мешает авторам подобных скриптов вставить туда одну-две строчки, которые нанесут ОС ущерб, гораздо более значимый, чем торренты ?
Код:
apt-get update && apt-get -y upgrade
apt-get install -y build-essential nano
wget --no-check-certificate https://github.com/z3APA3A/3proxy/archive/0.8.12.tar.gz
tar xzf 0.8.12.tar.gz
cd 3proxy-0.8.12
make -f Makefile.Linux
cd src
mkdir /etc/3proxy/
mv 3proxy /etc/3proxy/
cd /etc/3proxy/
wget --no-check-certificate https://raw.githubusercontent.com/h1777/3proxy-socks/master/3proxy.cfg
chmod 600 /etc/3proxy/3proxy.cfg
wget --no-check-certificate https://raw.githubusercontent.com/h1777/3proxy-socks/master/.proxyauth
chmod 600 /etc/3proxy/.proxyauth
cd /etc/init.d/
wget --no-check-certificate https://raw.githubusercontent.com/h1777/3proxy-socks/master/3proxyinit
chmod +x /etc/init.d/3proxyinit
update-rc.d 3proxyinit defaults
p.s.
Пожалуй останусь в мире иллюзий) мне тут как то больше нравится)
Поиск в обсуждении
Продолжить чтение
Следующий разбор
Я не взломал их C2. Я заставил бота сдать его сам | РАЗБОР ТОГО КАК Я РЕВЕРСНУЛ КАСТОМНЫЙ ПРОТОКОЛ С2 ГРУППИРОВКИ 2137GANG
Комментарии
17