Ledger Nano X - The secure hardware wallet
SHARE
TWEET

ss+v2ray with tls behind nginx over cf

freedom_threand Mar 23rd, 2019 (edited) 1,906 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Пердолинг shadowsocks с v2ray плагином через cloudflare в tls режиме с nginx перед ss для Ubuntu.
  2.  
  3. 0. Подготовка:
  4. Получаем фриномовский домен и привязываем его к клауде, см 1 и 2 части инструкции ss over cf в шапке (https://telegra.ph/shadowsocks-over-cloudflare-05-17)
  5. Скачиваем и устанавливаем Shadowsocks клиент и плагин к нему - виндусятники берут по ссылкам https://github.com/shadowsocks/shadowsocks-windows/releases/latest и https://github.com/shadowsocks/v2ray-plugin/releases/latest (разархивируем в папку с клиентом и переименовываем в v2ray.exe), жмупинусники роются в своих репах/компилят/ищут бинарники в сети
  6. Скачиваем и устанавливаем PuTTY - https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
  7. Скачиваем и устанавливаем WinSCP - https://winscp.net/eng/download.php (линуксобоги могут использовать любой другой FTP клиент)
  8. Hostname - адрес сервера, port - 22, пароль настраивается у провайдера vps
  9. Скачиваем и распаковываем странички нашего сайта https://anonfile.com/T8W6u1T4m8 (если очень хочется, можно использовать свои хтмлки)
  10.  
  11. 1. Устанавливаем nginx на своей впсочке:
  12. Коннектимся через PuTTY к серверу, в консоли вводим:
  13. sudo apt update
  14. sudo apt install nginx
  15. sudo systemctl status nginx - если инактив, значит 80 порт чем то занят.
  16.  
  17. 2. Перекидываем стрейзенд странички из шапки на сервак:
  18. Коннектимся через WinSCP к своей впсочке
  19. Идем по пути /usr/share/nginx/html, правой кнопкой - New - Directory, даем папке имя своего фриномовского домена
  20. Перетаскиваем 3 файла из ss-web архива, который мы скачали выше, в созданную папку.
  21.  
  22. 3. Настраиваем nginx чтобы показывал нашу страничку (<домен> заменить на свой домен):
  23. sudo rm /etc/nginx/sites-available/default - удаляем дефолтный конфиг
  24. sudo nano /etc/nginx/sites-available/<домен> - вставляем следующее
  25. server {
  26.     listen 80;
  27.     #listen [::]:80;
  28.     server_name <домен>;
  29.     root /usr/share/nginx/html/<домен>;
  30.     index index.html;
  31. }
  32. Сохраняем ctrl + o, закрываем ctrl + x
  33. sudo ln -s /etc/nginx/sites-available/<домен> /etc/nginx/sites-enabled/ - линкуем конфиг
  34. sudo systemctl restart nginx - рестартим энжиникс
  35. Открываем свой сайт в браузере и убеждаемся в том, что все работает.
  36.  
  37. 4. Получаем lets encrypt сертификат:
  38. sudo apt-get update
  39. sudo apt-get install software-properties-common
  40. sudo add-apt-repository universe
  41. sudo add-apt-repository ppa:certbot/certbot
  42. sudo apt-get update
  43. sudo apt-get install certbot python-certbot-nginx
  44. sudo certbot --nginx
  45. После этого в консолечке должно быть поздравление о том, что все прошло успешно, и путь до сертификата.
  46.  
  47. 4.5 Делаем обновление сертификата автоматическим:
  48. Lets encrypt сертификаты протухают через 3 месяца, чтобы этого не произошло делаем следующее
  49. sudo crontab -e
  50. Выбираем nano
  51. Спускаемся в конец файла и вставляем это
  52. 00 12 * * * sudo certbot renew -q
  53. Теперь наш сертификат будет проходить проверку на обновление каждый день в 12:00, и если до протухания осталось меньше 30 дней, он сам обновится.
  54.  
  55. 5. Ставим носки последней версии:
  56. sudo wget --no-check-certificate -O shadowsocks-libev-debian.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev-debian.sh
  57. sudo chmod +x shadowsocks-libev-debian.sh
  58. sudo ./shadowsocks-libev-debian.sh 2>&1 | tee shadowsocks-libev-debian.log
  59. Установщик попросит назначить параметры для носков, т.к. у нас соединение будет через v2ray, что вводить сюда неважно ( если нужен еще и чистый сс сервер, можно настроить его сейчас, но нужно учитывать, что 80 и 443 порты заняты энжинксом)
  60. Выключаем сервис чистых носков (или нет, если он нужен)
  61. sudo systemctl disable shadowsocks
  62.  
  63. 5.5 v2ray плагин к носкам:
  64. sudo wget https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.3.0/v2ray-plugin-linux-amd64-v1.3.0.tar.gz - скачиваем плагин (тут вместо "v1.3.0/v2ray-plugin-linux-amd64-v1.3.0.tar.gz" может быть что-то другое, последняя версия лежит тут https://github.com/shadowsocks/v2ray-plugin/releases/latest)
  65. sudo tar -xf v2ray-plugin-linux-amd64-v1.3.0.tar.gz - разархивируем сам плагин, тут опять же может быть другой файл в зависимости от скачиваемой версии.
  66. sudo mv v2ray-plugin_linux_amd64 /etc/shadowsocks-libev/v2ray-plugin - переносим и переименовывем плагин.
  67. sudo setcap 'cap_net_bind_service=+eip' /etc/shadowsocks-libev/v2ray-plugin - даем возможность v2ray-плагину биндиться к привилегированным портам.
  68. sudo nano /etc/shadowsocks-libev/v2ray.json - вставляем следующее (вместо <пароль> нужно придумать пароль):
  69.  
  70. {
  71. "server":"localhost",
  72. "server_port":8008,
  73. "password":"<пароль>",
  74. "timeout":300,
  75. "method":"xchacha20-ietf-poly1305",
  76. "fast_open":true,
  77. "plugin":"/etc/shadowsocks-libev/v2ray-plugin",
  78. "plugin_opts":"server;loglevel=none;path=/v2ray",
  79. "nameserver":"1.1.1.1",
  80. "reuse_port": true,
  81. "mode": "tcp_only"
  82. }
  83.  
  84. Сохраняем ctrl + o, закрываем ctrl + x
  85. sudo nano /etc/systemd/system/ss-v2ray.service - вставляем следующее:
  86.  
  87. [Unit]
  88. Description=Shadowsocks-libev with V2RAY-websocket obfuscation
  89. Documentation=man:shadowsocks-libev(8)
  90. After=network.target
  91.  
  92. [Service]
  93. Type=simple
  94. User=nobody
  95. Group=nogroup
  96. LimitNOFILE=51200
  97. ExecStart=/usr/local/bin/ss-server -c /etc/shadowsocks-libev/v2ray.json
  98.  
  99. [Install]
  100. WantedBy=multi-user.target
  101.  
  102. Сохраняем ctrl + o, закрываем ctrl + x
  103. sudo systemctl enable ss-v2ray.service  - включаем сервис
  104.  
  105. 6. Настраиваем клиент:
  106.  
  107. Конфиг клиента для пользователей виндовс (<домен> заменить на свой домен, <пароль> на придуманный ранее пароль):
  108. server addr - <домен>
  109. server port - 443
  110. password - <пароль>
  111. encryption - xchacha20-ietf-poly1305
  112. plugin program - v2ray
  113. plugin options - tls;host=<домен>;path=/v2ray
  114. proxy port - локальный порт куда будем направлять браузер (по дефолту 1080, можно не трогать)
  115.  
  116. Конфиг клиента для пользователей линукс (<домен> и <пароль> заменить на свои домен и пароль):
  117.  
  118. sudo nano /etc/shadowsocks-libev/v2ray.json - вставляем (путь к плагину может быть другим):
  119.  
  120. {
  121. "server":"<домен>",
  122. "server_port":443,
  123. "local_port":1080,
  124. "password":"<пароль>",
  125. "timeout":600,
  126. "method":"xchacha20-ietf-poly1305",
  127. "plugin":"/etc/shadowsocks-libev/v2ray-plugin",
  128. "plugin_opts":"tls;host=<домен>;path=/v2ray",
  129. "reuse_port": true,
  130. "mode": "tcp_only"
  131. }
  132.  
  133. sudo nano /etc/systemd/system/ss-v2ray.service - вставляем (путь к ss-local может быть другим):
  134.  
  135. {
  136. [Unit]
  137. Description=Daemon to start Shadowsocks Client with v2ray plugin
  138. Wants=network-online.target
  139. After=network.target
  140.  
  141. [Service]
  142. Type=simple
  143. ExecStart=/usr/bin/ss-local -c /etc/shadowsocks-libev/v2ray.json
  144.  
  145. [Install]
  146. WantedBy=multi-user.target
  147.  
  148. }
  149.  
  150. sudo systemctl enable ss-v2ray.service - включаем сервис клиента
  151.  
  152. 7. Настраиваем nginx на работу с tls (<домен> заменить на свой домен):
  153. sudo nano /etc/nginx/sites-available/<домен> вставляем это:
  154. server {
  155.     listen 80;
  156.     #listen [::]:80;
  157.     server_name <домен>;
  158.     return 301 https://$host$request_uri;
  159. }
  160.  
  161. server {
  162.         listen       443 ssl http2;
  163.         #listen       [::]:443 ssl http2;
  164.         server_name  <домен>;
  165.         root         /usr/share/nginx/html/<домен>;
  166.         index index.html;
  167.         ssl_certificate /etc/letsencrypt/live/<домен>/fullchain.pem;
  168.         ssl_certificate_key /etc/letsencrypt/live/<домен>/privkey.pem;
  169.         location /v2ray {
  170.             proxy_redirect off;
  171.             proxy_http_version 1.1;
  172.             proxy_pass http://localhost:8008;
  173.             proxy_set_header Host $http_host;
  174.             proxy_set_header Upgrade $http_upgrade;
  175.             proxy_set_header Connection "upgrade";
  176.         }
  177. }
  178. Сохраняем ctrl + o, закрываем ctrl + x
  179. sudo systemctl restart nginx - рестартим энжинкс
  180. sudo systemctl restart ss-v2ray - рестартим v2ray (пердольки на линуксе тыкают в своей консоли тоже самое чтобы запустить клиент)
  181.  
  182. 8. Настраиваем клауду:
  183. В настройках своего домена на cloudflare, в разделе Crypto ставим Full(strict).
  184. Переходим на свой сайт, убеждаемся, что все работает.
  185.  
  186. Ставим прокси расширение для браузера (например Proxy SwitchyOmega, протокол - socks5, сервер - 127.0.0.1, порт - 1080)
  187. Все! Если перейти на свой сайт, он должен открыться через https. Теперь провайдер видит как от вас к серверам клауды идет настоящий https, при этом если фрином решит просканировать наш домен, он найдет нашу страничку и пройдет мимо (фрином может отобрать домен, если ничего не найдет).
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top