На волне блокировки Telegram настроим приватный socks/proxy сервер для работы мессенджера.
В остальном, прокси-сервер может решать любые другие задачи в работе администратора или разработчика.
Поскольку вся инфраструктура моего проекта и компании завязана на Telegram, то обойтись без этого удобного инструмента будет очень сложно, переходить на другие мессенджеры — не вижу смысла, нормальных аналогов нет под требуемые задачи, вывод — использовать proxy, как временное решение.
Блокировка мессенджера планируется на территории РФ, в связи с этим будем использовать любой зарубежный сервер, подойдет самая простая VDS в минимальной конфигурации. (Если вам требуется такая VDS — свяжитесь со мной [email protected] или Telegram)
Шаг 1. Настройка сервера
На данном этапе выполняем настройку сервера для безопасного соединения.
Отключаем SElinux
sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config
# reboot
Изменяем порт подключения к сервису SSH
sed -i -r «s/#Port 22/Port 54997/» /etc/ssh/sshd_config
КАК ПОЛУЧИТЬ БЕСПЛАТНЫЕ ПРОКСИ ДЛЯ АБУЗОВ? | 2 СПОСОБА
Указываем работу только по IPv4 протоколу на определенном адресе
sed -i -r «s/#AddressFamily any/AddressFamily inet/» /etc/ssh/sshd_config
sed -i -r «s/#ListenAddress 0.0.0.0/ListenAddress $SERVER_IP_ADDR$/» /etc/ssh/sshd_config
Где $SERVER_IP_ADDR$ — реальный IP-адрес сервера.
Отключаем IPv6 протокол
cat /etc/sysctl.d/01-ipv6.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
EOT
sysctl -p /etc/sysctl.d/01-ipv6.conf
Принудительно устанавливаем вторую версию протокола SSH
В SSH2 используются мощные алгоритмы шифрования, кроме того поддерживается возможность обнаружения умышленного искажения данных. (Протокол SSH, версии 2 — AES-128, AES-192, AES-256, blowfish, CAST-128, ArcFour)
sed -i -r -e «s/#Protocol 2/Protocol 2/» /etc/ssh/sshd_config
Ограничиваем количество неудачных попыток входа
sed -i -r «s/#MaxAuthTries 6/MaxAuthTries 2/» /etc/ssh/sshd_config
Перезагружаем сервис SSH и проверяем:
systemctl restart sshd
# lsof -i :54997 -P -n
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 8396 root 3u IPv4 58553 0t0 TCP 195.209.58.112:54997 (LISTEN)
Добавляем правила на файрвол для нового порта, а также убираем дефолт
firewall-cmd —permanent —zone=public —add-port=54997/tcp
firewall-cmd —permanent —zone=public —remove-service=ssh
firewall-cmd —reload
Шаг 2. Отключение логирования
Конечно же в целях сохранения дискового пространства 🙂
Отключаем хранение истории
unset HISTFILE
echo ‘unset HISTFILE’ >> /etc/bashrc
rm -f ~/.bash_history
Отключаем сервисы syslog/rsyslog и аудит системы
systemctl stop rsyslog systemctl disable rsyslog
С сервисом Auditd придется немного пошаманить, поскольку просто так его отключить нельзя.
Настройка через прокси Телеграм
sed -i -r «s/RefuseManualStop=yes/RefuseManualStop=no/» /usr/lib/systemd/system/auditd.service
# reboot
auditctl -D
systemctl stop auditd systemctl disable auditd
Удаляем объекты директорий
unlink /var/log/messages ln -s /dev/null /var/log/messages
unlink /var/log/secure ln -s /dev/null /var/log/secure
unlink /var/log/wtmp ln -s /dev/null /var/log/wtmp
unlink /var/log/lastlog ln -s /dev/null /var/log/lastlog
unlink /var/log/audit/audit.log ln -s /dev/null /var/log/audit/audit.log
unlink /var/log/btmp ln -s /dev/null /var/log/btmp
unlink /var/log/maillog ln -s /dev/null /var/log/maillog
Шаг 3. Установка 3proxy
Установим необходимые пакеты, которые понадобятся в процессе сборки.
yum groupinstall «Development tools» -y
Клонируем исходные файлы с git и компилируем:
git clone https://github.com/z3APA3A/3proxy.git
cd 3proxy/
sed -i ‘1s/^/#define ANONYMOUS 1n/’ ./src/proxy.h # Определяем анонимность сервера
make -f Makefile.Linux
mkdir -p /usr/local/etc/3proxy/bin
touch /usr/local/etc/3proxy/3proxy.pid
cp ./src/3proxy /usr/local/etc/3proxy/bin
cp ./scripts/rc.d/proxy.sh /etc/init.d/3proxy
cp ./cfg/3proxy.cfg.sample /usr/local/etc/3proxy/3proxy.cfg
ln -s /usr/local/etc/3proxy/3proxy.cfg /etc/3proxy.cfg
chmod +x /etc/init.d/3proxy
Шаг 4. Настройка 3proxy
Выполняем настройку нашего прокси-сервера к конфигурационном файле nano /etc/3proxy.cfg
#!/usr/local/etc/3proxy/bin
daemon
pidfile /usr/local/etc/3proxy/3proxy.pid
nserver 8.8.8.8
nserver 8.8.4.4
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
users roman:CL:roman
users «test:CR:$1$kf3$4c2AOGcRWsc74kMNZyRzi0»
#include /usr/local/etc/3proxy/users.conf
log /dev/null
auth strong
auth strong
flush
allow test,roman
maxconn 64
socks -p51105 -n -a -u2
proxy -p12732 -n -a
dnspr
setgid 65534
setuid 65534
Список пользователей задается с помощью команды users.
С помощью одной команды можно задать несколько пользователей, можно давать несколько команд users. USERDESC — описание пользователя.
Описание пользователя состоит из трех полей разделенных двоеточием — имени, типа пароля и пароля. Например:
users admin:CL:mysecret test:CL:yourpassword test1:CL:password1
users «test:CR:b771$b8745ed1295840eca15e55feb9e»
users test3:NT:BD7DFBF29A93F93C63CB84790DA00E63
Обратите внимание на двойные кавычки — они необходимы для второго пользователя, т.к. в его пароле встречается знак $ , который для файла 3proxy.cfg означает включение другого файла.
Поддерживаются следующие типы паролей:
- тип не указан — использовать системную авторизацию для данного пользователя (пока не реализовано).
- CL — пароль в открытом тексте
- CR — пароль в формате crypt() (только MD5)
- NT — пароль в формате NT в шестнадцатеричной кодировке
NT и crypt пароли могут быть использованы для импорта учетных записей из Windows/Samba и Unix соответственно (для Windows можно использовать утилиты семейства pwdump). Учетные записи удобно хранить в отдельном файле (в таком случае можно хранить их построчно в формате, типичном для файлов паролей).
Создать пароль можем командой:
openssl passwd -1 -salt xyz yourpass
Сохраняем конфигурационный файл и заупускаем сервис:
service 3proxy start
Добавляем в автозапуск:
chkconfig 3proxy on
Шаг 5. Настройка файрвола
# Открываем порт для socks-прокси:
firewall-cmd —permanent —zone=public —add-port=51105/tcp
# Открываем порт для http-прокси:
firewall-cmd —permanent —zone=public —add-port=12732/tcp
# Блокируем ICMP трафик для того, чтоб наш сервер не отвечал на пинги:
firewall-cmd —zone=public —add-icmp-block=echo-reply —permanent
firewall-cmd —zone=public —add-icmp-block=echo-request —permanent
# Добавляем white-list для icmp запросов
firewall-cmd —permanent —direct —add-rule ipv4 filter INPUT 0 -p icmp -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
firewall-cmd —reload
Шаг 6. Настройка Telegram на работу через socks
Также можно использовать socks-прокси на все подключение.
Troubleshooting
ERR_SOCKS_CONNECTION_FAILED в Google Chrome
Google Chrome не работает через SOCKS с авторизацией. Пока не нашел как исправить, но придумаю костыль какой-нибудь.
Too many authentication failures for username
Используйте параметр IdentitiesOnly=yes при подключении по SSH
$ ssh -o IdentitiesOnly=yes [email protected] -p 54997
[email protected]’s password:
[[email protected] ~]#
Источник: bogachev.biz
Как сделать собственный прокси для Телеграма
В России окончательно заблокировали Телеграм. Чтобы он продолжил работать, нужен либо VPN (сложный путь) либо SOCKS5-прокси (простой путь). Я выбираю простой. Есть готовые прокси, но если вы хотите поднять собственный — вот как это сделать.
Прежде всего, потребуется виртуальный сервер. Я лично предпочитаю Digital Ocean (реферальная ссылка, по которой бесплатно дают $10 — хватит на 2 месяца). Но можно попробовать другие облака, у которых есть бесплатные микро-сервера:
В качестве операционной системы я выбрал Ubuntu 16.04. Рекомендую отключить вход под рутом и настроить сертификат — вот инструкция.
Когда виртуальный сервер готов, заходим на него по SSH и устанавливаем SOCKS5-сервер Dante:
sudo apt update sudo apt install -y dante-server
В убунте ставится древняя версия Данте — 1.1.19. Но её вполне достаточно.
Настраиваем Данте в файле /etc/danted.conf . Редактировать проще всего программой nano :
sudo nano /etc/danted.conf
Удаляем содержимое и вставляем свой конфиг:
logoutput: stderr internal: eth0 port = 1080 external: eth0 method: username user.privileged: root user.notprivileged: nobody user.libwrap: nobody client pass < from: 0.0.0.0/0 to: 0.0.0.0/0 log: error >pass < from: 0.0.0.0/0 to: 0.0.0.0/0 log: error >
Выходим из редактора с сохранением: Ctrl+O , затем Enter , затем Ctrl+X
Создаём пользователя, который будет подключаться через прокси, и устанавливаем ему пароль:
sudo useradd —shell /usr/sbin/nologin telegram sudo passwd telegram
sudo systemctl restart danted
Готовим ссылку для автоматической настройки телеграма:
tg://socks?server=IP_АДРЕСuser=telegram#128640;
Источник: antonz.ru
Настройка Proxy для Telegram часть 1
В связи со сложившейся ситуацией на территории РФ с месседжером Telegram, назрела тема с описанием возможных вариантов обхода блокировки. За последний год Телеграмм стал для нас одним из самых важных приложение на смартфоне, здесь и новости с различных каналов и интересные подборки и возможность хранения неограниченного количества файлов.
По необъяснимым для меня причинам Роскомнадзор принял решение о блокировке Телеграм на территории РФ что в свою очередь вызвало волну гнева и негодования пользователей. Вместо того чтобы сокрушаться и целесообразности этого решения мы искали легальные способы обхода этой блокировки. Ведь как и у всех у нас есть много знакомств и контактов с которыми общаешься только там.
Для обхода блокировки можно использовать VPN или Proxy. Вариант с VPN всегда платный + необходимо устанавливать сторонние приложения и чаще всего весь трафик начинает идти через VPN, что не очень хорошо для пользователей. Сложность настройки + платность этого решения + своеобразные неудобства стали основными аргументами отказаться от этого способа.
Итак остается Proxy вариант для подключения к Telegram. Здесь все куда проще, в настройках вбиваешь адрес и порт сервере и логин и пароль и пользуешься любимым мессенджером снова. Также у телеги есть возможность автонастройки прокси сервере по нажатию ссылки, что в разы упрощает и ускоряет процесс установки прокси в телеграме.
Определившись с Proxy решением сначала настраивали подключение через бесплатные прокси сервера доступные в интернете, потом через прокси которые выдаёт телеграм бот в различных каналах, казалось бы на этом можно было и остановиться, но мы подумали что эти бесплатные прокси рано или поздно заблокируют и потребуется срочно искать новые, поэтому было решено поднять свой прокси сервер. И вот ещё — сначала была идея предоставить на этой странице несколько адресов бесплатных и быстрых прокси подходящих для телеграм, но немного поразмыслив решил что после того как 100 — 500 пользователей установит его там могут начаться лаги + сарафанное радио вскоре убьёт этот сервис, да и сотрудники роскомнадзора не дремлют и оперативно закрывают все бесплатные и общедоступные прокси сервера через которые народ ломится в Телеграм. Поэтому было принято решение описать простой процесс настройки Proxy сервера на виртуальной машине, машина может располагаться в любой стране и быть предоставлена различными компаниями, в том числе Амазон, ДиджиталОушн, Гугл, Майкрософт и прочие. Процесс настройки будет примерно одинаков у всех. С помощью инструкции которую я опубликую ниже вы за 10-20 минут сможете настроить бесплатный или почти бесплатный прокси сервер для своих нужд.
В качестве сервиса был выбран Amazon, у них есть виртуальные машины которые они предоставляют бесплатно на 12 месяцев, потом начинают брать плату. Эти машины очень слабые и под серьезные задачи не подойдут, однако как proxy или vpn сервер их использовать очень удобно. Этим мы и воспользуемся. Нам необходимо зарегистрироваться на Amazon Web Services, при регистрации нужно будет указать платежную карту, для проверки что там есть деньги Амазон спишет 1$ и потом его вернет.
Создание виртуальной машины на Amazon EC2
После того как попадём в личный кабинет необходимо пройти в EC2 сервис и начать создание виртуальной машины, на Amazon они называются Instance. Интерфейс консоли на английском языке, но в настройке нет ничего сложного, в основном всегда будем соглашаться, опишу подробно куда нажимать и приложу скриншоты со стрелками.
- Переходим на страницу консоли управления по ссылке. Справа в верхнем углу можно выбрать регион где вы хотите запустить виртуальную машину.
- Переходим в раздел « INSTANCES » подраздел « Instances » и щелкаем по кнопке « Launch Instance «.
- Выбираем тип виртуальной машины « Ubuntu Server 16.04 LTS (HVM), SSD Volume Type — ami-* » и щелкаем напротив по кнопке « Select «.
- Автоматически выбирается конфигурация « t2.micro Free tier eligible » — эта машина для бесплатного использования в течении 12 месяцев. Нажимаем Next
- Нажимаем на кнопку « Next: Configure Instance Details «, ничего не исправляем и жмем « Next: Add Storage » и переходим к дальнейшей конфигурации.
- Указываем в колонке « Size (GiB) » количество памяти выделяемой на SSD диске под виртуальную машину. Бесплатно максимум можно использовать 30 GB.
- « Next: Add Tags «, ничего не исправляем и жмем « Next: Configure Security Group » и настраиваем параметры безопасности. Также можно установить IP-адрес с которого будет разрешен доступ по SSH (Если у вас статический IP-адрес). Для этого выберите в колонке « Source » « My IP «. Он будет назначен автоматически. Теперь добавляем правило для SOCKS5 — Сетевой протокол, который позволяет пересылать пакеты от клиента к серверу через прокси-сервер прозрачно и таким образом использовать сервисы за межсетевыми экранами (фаерволами). Более поздняя версия SOCKS5 предполагает аутентификацию, так что только авторизованные пользователи получают доступ к серверу. Так как мы планируем использовать Proxy сервер по порту TCP 1080, то добавляем правило Custom TCP и порт 1080 , доступ anywhere . Далее жмем кнопку « Review and Launch «.
- Потом жмем кнопку « Launch «. Появится окошко для выбора ключей, так как вы настраиваете впервые то нужно выбрать « Create a new key pair «, затем задать имя для ключей и скачать их, в дальнейшем они нам понадобятся для подключения через SSH к серверу. Нажимаем « Launch Instances «.
- Если все прошло успешно то виртуальная машина запустится. Управлять виртуальной машиной можно перейдя в раздел « INSTANCES » подраздел « Instances «. Машина должна быть запущена в колонке « IPv4 Public IP » копируем IP-адрес виртуальной машины (пригодится при подключении по SSH и при настройке SOCKS5 в Telegram). Теперь можно закрыть сайт Amazon Web Services.
На этом создание виртуальной машины в консоле сервиса Amazon завершено, далее нам необходимо подключиться к виртуальной машине и произвести настройку и установку прокси сервера Dante Server. Продолжение настройки Proxy сервера для обхода блокировки Telegram в следующей статье.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник: biz-invest.pro