Защита сетевого трафика с помощью Shadowsocks

Защита трафика Shadowsocks

С развитием современных технологий защита сетевого трафика становится не просто актуальной, но и обязательной. В этой статье я покажу, как с помощью  Shadowsocks и плагина xray настроить защищенное соединение с внешним миром.

Еще по теме: Шифрование трафика в Linux

Защита трафика с помощью Shadowsocks

С помощью данного способа никто не сможет расшифровать или заблокировать сетевой трафик передаваемый от вас в сеть и обратно.

Для начала, нам необходимо:

  • выбрать и ку­пить VPS;
  • выбрать и ку­пить домен­ное имя;
  • открыть аккаунт на Cloudflare и изменить нас­трой­ки.

Рассмотрим все шаги по поряд­ку.

Выбор VPS

К выбору хостера надо подходит серьезно и скрупулезно. Стоит обратить внимание на то, в какой стране была зарегистрирована компания. В каких государствах находятся сервера. Лучше выбирать страны, в которых строго относятся к личной информации (например, Исландия или Швейцария).

Выбор домена

Здесь нет особенных рекомендаций. Можете выбрать домен предлагаемый хостингом. На мой взгляд это даже безопаснее.

В данной статье я буду исполь­зовать абс­трак­тный доменное имя secret-site.com..

По­чему не стоит юзать ESNI/ECH? Потому, что некото­рые сетевые филь­тры не смогут опре­делить сайт наз­начения и попросту забло­киру­ют соеди­нение.

Настройка Cloudflare

Сервис Cloudflare в качестве защит­ного механиз­ма и защите трафика игра­ет важную роль : мы скры­ваем реальный IP-адрес нашего VPS-сервера и защища­ем его от различных атак. Сетевой тра­фик от нашего ком­пьютера пойдет сна­чала в сеть Cloudflare и толь­ко потом из нее — к VPS.

Кро­ме этого, Cloudflare создаст сер­тификат для TLS-соеди­нения, и весь сетевой тра­фик будет завернут и защищен с TLS 1.3.

Итак, необходимо зарегистрировать и при­вязать к сер­вису наш ранее купленный домен. Теперь на вклад­ке DNS необходимо запол­нить стро­ки А (две шту­ки), в которые надо ввести наше доменное имя (одной строчкой у с прис­тавкой www, в дру­гую без нее) и IP-адрес VPS.

Защита трафика. За­пол­нение записей А
Защита трафика. За­пол­нение записей А

Пос­ле это­го необ­ходимо ввес­ти показан­ные нам сер­веры имен Cloudflare в панель управле­ния нашего домен­ного регис­тра­тора на вклад­ке DNS.

Защита трафика. Сер­веры имен Cloudflare
Защита трафика. Сер­веры имен Cloudflare

Да­лее на вклад­ке SSL/TLS:

  1. вы­бира­ем шиф­рование Full (strict);
  2. вклю­чаем Always Use HTTPS;
  3. вклю­чаем TLS 1.3;
  4. ус­танав­лива­ем Minimum TLS Version на 1.3;
  5. вклю­чаем Opportunistic Encryption;
  6. вклю­чаем Automatic HTTPS Rewrites.
Защита трафика. Вклю­чение шиф­рования соеди­нения.
Защита трафика. Вклю­чение шиф­рования соеди­нения.

Нем­ного защитили трафик укре­пив TLS и мож­но идти даль­ше. Теперь в Client Certificates на той же вклад­ке и жмем кноп­ку Create Certificate для генера­ции сер­тифика­та и клю­ча (усло­вим­ся, что фай­лы будут называть­ся secret-site.pem и secret-site.key).

Те­перь идем на VPS и прис­тупа­ем к нас­трой­ке.

Настройка VPS

Итак, в некото­рой сте­пени уто­митель­ная под­готови­тель­ная про­цеду­ра окон­чена, давайте теперь нас­тра­ивать сам VPS. Все нас­трой­ки будут делать­ся на Debian х64.

Сна­чала обно­вим пакеты и уста­новим вспо­мога­тель­ные ути­литы:

Те­перь раз­берем­ся с сер­тифика­тами и клю­чами от Cloudflare — их мы положим на наш VPS в пап­ку:

и выдадим ей пра­ва толь­ко на чте­ние.

Да­лее надо сге­нери­ровать параметр Диф­фи — Хел­лма­на:

По­ложим его в ту же пап­ку:

Те­перь прис­тупим к нас­трой­кам Nginx в фай­ле:

В его стан­дар­тную струк­туру дос­таточ­но добавить наш сер­тификат, ключ, DH и некото­рые слу­жеб­ные нас­трой­ки:

Да­лее добавим локации:

В location / я впи­сал index.html — это прос­то сайт‑заг­лушка, который будет бол­тать­ся на нашем сервере для того, что­бы про­тивос­тоять активно­му зон­дирова­нию. Про­ще говоря, если какой‑то зонд будет ска­ниро­вать сер­вер в поис­ках Shadowsocks или чего‑то еще, он прос­то наткнется на нашу заг­лушку. Тог­да он подума­ет, что это обыч­ный сайт, оста­вит нас в покое и уйдет пить пиво.

Ло­кация location /secretline — это и есть наш Shadowsocks. Вмес­то стро­ки secretline нуж­но при­думать что‑то более ори­гиналь­ное и труд­нопод­бира­емое, эта стро­ка будет переда­вать­ся в качес­тве парамет­ра на кли­енте к пла­гину xray.

Да­лее ска­чива­ем и уста­нав­лива­ем Shadowsocks и xray-plugin:

Соз­даем пап­ку shadowsocks и копиру­ем в нее нуж­ные фай­лы:

Нас­тра­иваем раз­решения:

Те­перь соз­дадим файл кон­фигура­ции сер­вера Shadowsocks:

И запишем туда такой текст:

Да­вайте прой­дем­ся по основным пун­ктам:

  • « server_port» — порт, на котором будет висеть сер­вер shadowsocks;
  • « workers» — количес­тво ядер на сер­вере;
  • « ipv6_first» — под­дер­жка про­токо­ла IPv6;
  • « nameserver» — IP DNS-сер­вера, если есть локаль­ный, то 127.0.0.1;
  • « plugin» и « plugin_opts» исполь­зуют­ся для пла­гина xray;
  • « reuse_port» — опти­миза­ция для более быс­тро­го исполь­зования сети;
  • « method» — исполь­зуемое шиф­рование;
  • « password» — пароль для под­клю­чению к сер­веру.

Те­перь соз­дадим сер­вис ss-xray.service:

За­писы­ваем туда сле­дующий текст:

Сох­раня­емся и выходим: Ctrl + O, Ctrl + X. Вклю­чаем сер­вис:

С основной нас­трой­кой мы закон­чили, теперь мож­но нем­ного опти­мизи­ровать сетевой стек. В файл /etc/sysctl.conf дописы­ваем сле­дующее:

Опять сох­раня­емся и перезаг­ружа­ем сер­вер. Теперь все дол­жно работать.

Что в ито­ге у нас получи­лось? Зап­рос от нашего ком­па ухо­дит в CDN Cloudflare, а воз­вра­щает­ся от нашего VPS. Для внеш­него наб­людате­ля соз­дает­ся впе­чат­ление, буд­то комп обща­ется по TLS с каким‑то сай­том, но что переда­ет — узнать не получит­ся, ибо шиф­рование. Дру­гими сло­вами, наб­люда­ется обыч­ная сетевая активность, чего мы и хотели добить­ся.

В качес­тве кли­ентов к сер­веру мож­но сме­ло использовать:

Как еще мож­но укре­пить наш VPS? Нап­ример, так:

  • сме­нить порт SSH для того, что­бы авто­мати­чес­кие ска­неры не ломились на стан­дар­тный порт;
  • нас­тро­ить Fail2ban, что­бы огра­ничить количес­тво попыток ввес­ти неп­равиль­ный пароль для вхо­да на сер­вер;
  • вмес­то пря­мого обра­щения к DNS-сер­веру мож­но нас­тро­ить локаль­ный сер­вер, который свя­зыва­ется с внеш­ним миром при помощи DoH или DoT, что­бы даже хос­тер VPS не знал, какие DNS-зап­росы вы шлете;
  • нас­тро­ить учет тра­фика, что­бы не получить вне­зап­ный счет от хос­тера (если тра­фик у него лимити­рован).

См. также Способы защиты сервера VPS

Од­ним сло­вом, вклю­чайте фан­тазию и обус­тра­ивайте свой неп­риступ­ный VPS!

Заключение

Кого может заинте­ресо­вать­ мой сетевой трафик? Да кого угод­но! От хакер­ов до злых сетевых адми­нистраторов, которые любят перехватывать раз­ные виды тра­фика. Кстати, данный способ может быть использован не только для защиты трафика, но и для более банального применения, когда нужно изменить IP-адрес (нап­ример, для просмотра зарубеж­ных новин­ок в онлайн‑киноте­атре).

Полезные ссылки:

ВКонтакте
OK
Telegram
WhatsApp
Viber

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *