Давно я не писал, что то в своем блоге. К данному посту меня сподвигла ситуация в России и Иране связанная с блокировкой мессенджера Telegram.
Не жуя сопли, хочу рассказать Вам как же поднять собственный proxy для telegram. То-есть через proxy будет проходить только трафик к telegram, а к другим сетям блокироваться.
И так приступим. Я буду показывать на примере centos 7.
Загружаем последний релиз gf-release:
wget http://mirror.ghettoforge.org/distributions/gf/el/7/plus/x86_64/
Ставим rpm:
rpm -Uvh gf-release*rpm
Устанавливаем сам dante-server:
yum --enablerepo=gf-plus install dante-server
И так мы установили ПО dante-server которое и будет реализовывать нам socks5 proxy для telegram.
После установки включаем автозагрузку демона:
systemctl enable sockd.service
Создадим папку необходимую для работы прокси:
mkdir /var/run/sockd
Забекапим оригинальный конфиг:
mv /etc/sockd.conf /etc/sockd.conf_bkp
Дальше приведу готовый конфиг с разрешением доступа только к сетям telegram и сайтам мессенджера, листинг ниже необходимо вставить в файл:
/etc/sockd.conf
Конфиг:
user.privileged: root
user.unprivileged: nobody
internal: eth1 port = 1080
external: eth1
logoutput: syslog stdout /var/log/sockd.log
errorlog: /var/log/sockd_err.log
clientmethod: none
socksmethod: username
# allow any client connection
client pass {
from: 0.0.0.0/0 port 1-65535 to: 0.0.0.0/0
log: connect disconnect error
}
# deny proxied to lo
socks block {
from: 0.0.0.0/0 to: 127.0.0.0/8
log: error
}
# deny binding
socks block {
from: 0.0.0.0/0 to: 0.0.0.0/0
command: bind
log: error
}
#Networks
#AS62041
socks pass {
from: 0.0.0.0/0 to: 91.108.4.0/22
log: connect disconnect error
socksmethod: username
}
socks pass {
from: 0.0.0.0/0 to: 91.108.8.0/22
log: connect disconnect error
socksmethod: username
}
socks pass {
from: 0.0.0.0/0 to: 91.108.56.0/22
log: connect disconnect error
socksmethod: username
}
socks pass {
from: 0.0.0.0/0 to: 149.154.160.0/20
log: connect disconnect error
socksmethod: username
}
socks pass {
from: 0.0.0.0/0 to: 149.154.164.0/22
log: connect disconnect error
socksmethod: username
}
#AS62014
socks pass {
from: 0.0.0.0/0 to: 91.108.16.0/22
log: connect disconnect error
socksmethod: username
}
socks pass {
from: 0.0.0.0/0 to: 91.108.56.0/23
log: connect disconnect error
socksmethod: username
}
socks pass {
from: 0.0.0.0/0 to: 149.154.168.0/22
log: connect disconnect error
socksmethod: username
}
#AS59930
socks pass {
from: 0.0.0.0/0 to: 91.108.12.0/22
log: connect disconnect error
socksmethod: username
}
socks pass {
from: 0.0.0.0/0 to: 149.154.172.0/22
log: connect disconnect error
socksmethod: username
}
#AS44907
socks pass {
from: 0.0.0.0/0 to: 91.108.20.0/22
log: connect disconnect error
socksmethod: username
}
socks pass {
from: 0.0.0.0/0 to: 91.108.36.0/23
log: connect disconnect error
socksmethod: username
}
socks pass {
from: 0.0.0.0/0 to: 91.108.38.0/23
log: connect disconnect error
socksmethod: username
}
socks pass {
from: 0.0.0.0/0 to: 91.108.4.0/22
log: connect disconnect error
socksmethod: username
}
#Others AS
socks pass {
from: 0.0.0.0/0 to: 149.154.167.0/22
log: connect disconnect error
socksmethod: username
}
socks pass {
from: 0.0.0.0/0 to: 149.154.174.0/22
log: connect disconnect error
socksmethod: username
}
#sites telegram
socks pass {
from: 0/0 to: .telegram.org
log: connect disconnect error
socksmethod: username
}
socks pass {
from: 0/0 to: .t.me
log: connect disconnect error
socksmethod: username
}
socks pass {
from: 0/0 to: .stel.com
log: connect disconnect error
socksmethod: username
}
socks pass {
from: 0/0 to: .telegram.me
log: connect disconnect error
socksmethod: username
}
socks pass {
from: 0/0 to: .telegram.dog
log: connect disconnect error
socksmethod: username
}
socks pass {
from: 0/0 to: .telegra.ph
log: connect disconnect error
socksmethod: username
}
# deny the rest
socks block {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: error
}
В данном конфиге как минимум нужно заменить название сетевых интерфейсов на Ваши.
Так как данная конфигурация написана для авторизации по паре логин / пароль системных пользователей, то создадим пользователя с помощью которого будем авторизовываться:
useradd --shell /usr/sbin/nologin telegram
*- где telegram имя Вашего пользователя
Установим пароль для только что созданного пользователя:
passwd telegram
Дальше стартуем:
systemctl start sockd
Проверяем статус:
systemctl status sockd
Если видим, что то подобное, значит все ОК:
● sockd.service - SOCKS v4 and v5 compatible proxy server and client
Loaded: loaded (/usr/lib/systemd/system/sockd.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2018-05-02 16:07:26 EEST; 1 day 21h ago
Так же если у Вас включен фаервол, то необходимо открыть порт 1080:
iptables -I INPUT -p tcp -m tcp --dport 1080 -j ACCEPT
Так же советую заблокировать на сервере с proxy сети mail.ru, зачем? погуглите)
iptables -A INPUT -s 5.61.16.0/21 -j DROP
iptables -A INPUT -s 5.61.232.0/21 -j DROP
iptables -A INPUT -s 79.137.157.0/24 -j DROP
iptables -A INPUT -s 79.137.174.0/23 -j DROP
iptables -A INPUT -s 79.137.183.0/24 -j DROP
iptables -A INPUT -s 94.100.176.0/20 -j DROP
iptables -A INPUT -s 95.163.32.0/19 -j DROP
iptables -A INPUT -s 95.163.212.0/22 -j DROP
iptables -A INPUT -s 95.163.216.0/22 -j DROP
iptables -A INPUT -s 95.163.248.0/21 -j DROP
iptables -A INPUT -s 128.140.168.0/21 -j DROP
iptables -A INPUT -s 178.22.88.0/21 -j DROP
iptables -A INPUT -s 178.237.16.0/20 -j DROP
iptables -A INPUT -s 178.237.29.0/24 -j DROP
iptables -A INPUT -s 185.5.136.0/22 -j DROP
iptables -A INPUT -s 185.16.148.0/22 -j DROP
iptables -A INPUT -s 185.16.244.0/23 -j DROP
iptables -A INPUT -s 185.16.246.0/24 -j DROP
iptables -A INPUT -s 185.16.247.0/24 -j DROP
iptables -A INPUT -s 188.93.56.0/21 -j DROP
iptables -A INPUT -s 194.186.63.0/24 -j DROP
iptables -A INPUT -s 195.211.20.0/22 -j DROP
iptables -A INPUT -s 195.218.168.0/24 -j DROP
iptables -A INPUT -s 217.20.144.0/20 -j DROP
iptables -A INPUT -s 217.69.128.0/20 -j DROP
На этом в принципе все. В данном конфиге на свое усмотрение Вы можете менять порты, типы авторизации и т.д.
P.S. Ниже приведу сылку для автоматической настройки proxy в telegram:
tg://socks?server=IP&port=1080&user=telegram&pass=telegram
*-где IP нужно заменить на ip Вашего сервера. А telegram логин и пароль на те, что Вы создали.
P.P.S. Данная статья была написана при поддержке ISPLevel, которая любезно предоставила VDS для тестов.
P.P.P.S. Digital Resistance да прибудет с нами сила)
14,216 всего просмотров, 6 за сегодня