• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Статья Собственный SOCKS5 Proxy сервер

proxy_ss.gif

Введение
Приветствую всех на форуме. Решил написать небольшую статью про . Хочу вам продемонстрировать поднятие proxy сервера на своем выделенном сервере ( ). Иногда бывает необходимо пропустить трафик одного приложения через удаленный сервер и использование VPN в таком случае не целесообразно и не удобно, тем более если это на постоянной основе. Гораздо легче один раз прописать в приложении идентификационные данные proxy сервера и забыть об этом. Так сказать Fire and Forget. Хотя в другой ситуации когда нам требуется перенаправить весь трафик - то VPN просто незаменим.

Основная часть
Мы будем делать 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
}

00001.PNG

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
Вместо нашего реального адреса, команда должна выдать IP прокси сервера.

00003.PNG

00002.PNG

Как видно все работает. Можно смело прописывать конфиг в приложение на котором требуется использование прокси.
На этом все, всем спасибо за внимание!
 
Последнее редактирование:
V

Valkiria

Почему для поднятия соксов ты выбрал программу 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:password
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


 

gushmazuko

Red Team
24.03.2017
173
451
BIT
0
Почему для поднятия соксов ты выбрал программу 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:password
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.
 
  • Нравится
Реакции: Vertigo и n01n02h

Urfin--Juice

Gold Team
14.11.2017
203
74
BIT
0
Почему для поднятия соксов ты выбрал программу 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:password
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


Прекрасно. Может вынесете в отдельную статью?
 
Z

zvr891

По поводу публичных телеграм проксей. В разных статьях предлагают поставить прокси сервер dante и включить вход по юзерам ОС. И следующей строчкой добавляют юзера, но (!) не отрубают ему доступ по SSH и всем раскидывают ссылки на свою проксю с логином и паролем. Итого - берем юзер:пароль, адрес прокси и логинимся по SSH.
 

gushmazuko

Red Team
24.03.2017
173
451
BIT
0
По поводу публичных телеграм проксей. В разных статьях предлагают поставить прокси сервер dante и включить вход по юзерам ОС. И следующей строчкой добавляют юзера, но (!) не отрубают ему доступ по SSH и всем раскидывают ссылки на свою проксю с логином и паролем. Итого - берем юзер:пароль, адрес прокси и логинимся по SSH.
Юзер созданный с параметром -s /bin/false не сможет подключиться по ssh, потому что у него отсутсвует шелл. А нормальный адним, на сервере выключает аутентифткация по паролю в ssh.
 
V

Valkiria

А ещё собственный сокс или прокси можно "поднять" с помощью программы CCproxy в операционной системе Windows.
Это просто, удобно, не требует практически никаких знаний и навыков.
Нужно только скачать программу, установить её и произвести настройки, в которых разберётся даже "чайник".

CCproxy настройка 📢 Программа для создания прокси 📢
 
  • Нравится
Реакции: valerian38
N

n01n02h

А еще вот сокс на линукс в две команды
Код:
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
Тест был на дебиан8 и убунту 16.04
 
V

Valkiria

А еще вот сокс на линукс в две команды

При этом способе установится программа 3proxy, рассмотренная выше, но при помощи скрипта.
Я не пробовала устанавливать 3 proxy при помощи скриптов, но уверена в том, что что-то пойдёт не так и редактирование конфигурационных файлов вручную - неизбежно. Тем более в Linux, в которой по дефолту постоянно что-то нужно настраивать ))
Так всегда бывает, когда пользуешься скриптами в Linux.
Более того, эти скрипты способны настолько увести мышление в сторону, что легче установить всё вручную :)

ИМХО.
 
N

n01n02h

При этом способе установится программа 3proxy, рассмотренная выше, но при помощи скрипта.
Я не пробовала устанавливать 3 proxy при помощи скриптов, но уверена в том, что что-то пойдёт не так и редактирование конфигурационных файлов вручную - неизбежно. Тем более в Linux, в которой по дефолту постоянно что-то нужно настраивать ))
Так всегда бывает, когда пользуешься скриптами в Linux.
Более того, эти скрипты способны настолько увести мышление в сторону, что легче установить всё вручную :)

ИМХО.
Редактировать придется, сменить пароль и порт)
На винде далеко не уедешь)
А при использовании вот этих виндовых программок твой vps в ботнете легко окажется) если конечно софт скачан не с оф сайт разраба)
Мое ИМХО)))

P.S.
Только что проверил скрипт, установка и запуск прокси заняло 3 минуты и никаких проблем не возникло)
 
Последнее редактирование модератором:
  • Нравится
Реакции: dominikanec и Vertigo
V

Valkiria

На винде далеко не уедешь)
Да, ладно ))
На чём основано это утверждение ? На мой взгляд, это мнение толпы, которое подхватывают различные тролли !
Уж извини, но я никак не могу понять, чем сокс на Linux лучше сокса на машине под управлением Windows.

Более, того, зачем для установки 3 proxy тебе нужен скрипт ?
Разве не проще и более грамотно установить программу из репозиториев ?
А если мы ведём речь на уровне "далеко не уедешь", то скомпилировать вручную из исходников ?

Твои аргументы о ботнетах - неубендительны.
Linux окажется в ботнете с такой-же вероятностью.
 
  • Нравится
Реакции: Flyga
N

n01n02h

Да, ладно ))
На чём основано это утверждение ? На мой взгляд, это мнение толпы, которое подхватывают различные тролли !
Уж извини, но я никак не могу понять, чем сокс на Linux лучше сокса на машине под управлением Windows.

Более, того, зачем для установки 3 proxy тебе нужен скрипт ?
Разве не проще и более грамотно установить программу из репозиториев ?
А если мы ведём речь на уровне "далеко не уедешь", то скомпилировать вручную из исходников ?

Твои аргументы о ботнетах - неубендительны.
Linux окажется в ботнете с такой-же вероятностью.
А где я говорил что прокси на линукс чем то лучше чем на винде?)
Ты показала софтину в которой прокси можно поднять без особых знаний и навыков, я так же предоставил скрипт с помощью которого поднятие прокси осуществляется без каких либо знаний и навыков)
Скрипт cкачивает с гитхаба и компилирует 3proxy.
О ботнетах, большинство виндового софта скачивается с торрентов, всяких сомнительных обменников, и прочих свалок, линукс же с оф реп или компилируется из исходников)
 
  • Нравится
Реакции: Vertigo и gushmazuko
V

Valkiria

О ботнетах, большинство виндового софта скачивается с торрентов, всяких сомнительных обменников, и прочих свалок, линукс же с оф реп или компилируется из исходников)
Ещё одно заблуждение, ну да ладно ))
Выходи уже из мира иллюзий, предрассудков.
Мы же в этой теме ведём речь не о каких-то торрентах, каких-то прочих свалках, а о конкретном софте и о "поднятии" soscks5 ))
Все программы имеют официальные сайты, с которых можно скачать инсталляторы от разработчиков.


Кстати, ты же сам предложил установку пограммы при помощи какого-то сомнительного скрипта ))
Я не разбирала построчно этот скрипт.
Но что мешает авторам подобных скриптов вставить туда одну-две строчки, которые нанесут ОС ущерб, гораздо более значимый, чем торренты ?
 
N

n01n02h

Ещё одно заблуждение, ну да ладно ))
Выходи уже из мира иллюзий, предрассудков.
Мы же в этой теме ведём речь не о каких-то торрентах, каких-то прочих свалках, а о конкретном софте и о "поднятии" 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
Вот весь скрипт) он просто автоматизирует установку, не более, скачивает 3proxy оттуда же откуда ты скачивала выше)))

p.s.
Пожалуй останусь в мире иллюзий) мне тут как то больше нравится)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!