Показаны сообщения с ярлыком v2ray-plugin. Показать все сообщения
Показаны сообщения с ярлыком v2ray-plugin. Показать все сообщения

вторник, 28 апреля 2020 г.

Ubuntu 20.04 shadowsocks over websocket (HTTPS) use v2ray-plugin client

Установка на клиенте Ubuntu 18.04

shadowsocks-libev на клиенте под линуксом сразу запустить не смог, собирал несколько раз, пока не выяснил, что есть фича - серверный порт должен совпадать с локальным !!!

$ sudo apt install shadowsocks-libev
$ wget https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.1.0/v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ tar -xf v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ sudo mv v2ray-plugin_linux_amd64 /etc/shadowsocks-libev/v2ray-plugin
$ sudo chmod +x  /etc/shadowsocks-libev/v2ray-plugin
$ sudo setcap 'cap_net_bind_service=+ep' /etc/shadowsocks-libev/v2ray-plugin
#$ sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ss-server
$ sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ss-local

Обратить внимание на Ubuntu серверный порт должен совпадать с локальным портом!!!

Сложило впечатление что на Ubuntu 20.04 конфиг не считывается
ss-local -c config.json
 
$ sudo nano /etc/shadowsocks-libev/config.json
Обратить внимание от сервера отличается отсутствием:
"plugin_opts":"server",

{
    "server":"example.com",
    "server_port":443,
    "local_port":443,
    "password":"password",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open":true,
    "plugin":"/etc/shadowsocks-libev/v2ray-plugin",
    "plugin_opts":"tls;host=example.com",
    "nameserver":"1.1.1.1",
    "reuse_port": true
    "mode":"tcp_and_udp"
}

Сохранить.

$ sudo systemctl stop shadowsocks-libev.service && sudo systemctl disable shadowsocks-libev.service

Самое время проверить, или если захочется запускать вручную :

$ ss-local -s "example.com" -p 443 -l 443 -k "password" -m "aes-256-cfb" --plugin "/etc/shadowsocks-libev/v2ray-plugin"  -v

Так не заработало, работало в 18.04

 На Ubuntu 20.04 заработало только так:

ss-local -s "example.com" -p 443 -l 443 -k "password" -m "aes-256-cfb" --plugin "/etc/shadowsocks-libev/v2ray-plugin" --plugin-opts "tls;host=example.com" -v

Делаем сервис для запуска:

$ sudo nano /etc/systemd/system/ss-local.service

[Unit]
Description=Daemon to start Shadowsocks Client
Wants=network-online.target
After=network.target

[Service]
Type=simple
#ExecStart=/usr/bin/ss-local -c /etc/shadowsocks-libev/config.json
# Ubuntu 20.04 раскомментировать:
ExecStart=/usr/bin/ss-local -s "example.com" -p 443 -l 443 -k "password" -m "aes-256-cfb" --plugin "/etc/shadowsocks-libev/v2ray-plugin" --plugin-opts "tls;host=example.com" 

[Install]
WantedBy=multi-user.target

Сохранить.

#$ sudo systemctl daemon-reload
$ sudo systemctl enable ss-local.service
$ sudo systemctl restart ss-local.service
$ sudo  systemctl status ss-local.service
#$ sudo journalctl --unit=ss-local.service

вторник, 18 июня 2019 г.

Shadowsocks over websocket (HTTPS) use v2ray-plugin

Yet another SIP003 plugin for shadowsocks, based on v2ray
Shadowsocks over websocket (HTTPS)

Ubuntu 18.04 пакеты в репозитарии

# apt update
# apt upgrade
# apt install mc
# adduser user
# usermod -aG sudo user
# su user
$ cd ~
$ mkdir ~/.ssh
$ cd ~/.ssh
$ ssh-keygen -t rsa
Скачать и использовать для входа /home/user/.ssh/id_rsa
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
$ rm ~/.ssh/id_rsa.pub
$ rm ~/.ssh/id_rsa
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
$ exit
# nano /etc/ssh/sshd_config

Проверить:

PasswordAuthentication no
.....

PubkeyAuthentication yes
ChallengeResponseAuthentication no

Сохранить.

$ sudo systemctl reload sshd

После проверки входа и sudo

Отключть вход root по ssh

$ sudo nano /etc/ssh/sshd_config

Исправить:

PermitRootLogin no

Сохранить.

$ sudo systemctl reload sshd
# отключим ipv6
$ sudo /bin/su -c "echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf"
$ sudo /bin/su -c "echo 'net.ipv6.conf.default.disable_ipv6 = 1' >> /etc/sysctl.conf"
$ sudo /bin/su -c "echo 'net.ipv6.conf.lo.disable_ipv6 = 1' >> /etc/sysctl.conf"
#sudo /bin/su -c "echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf"
$ sudo sysctl -p

Getting started with acme.sh Let's Encrypt SSL client
Установка бесплатного ssl-сертификата Let’s Encrypt

Должен быть домен  example.com


На 80 порту работать web сервер

$ sudo apt install nginx
$ mkdir /var/www/example.com -p

$ sudo nano /etc/nginx/conf.d/example.com.conf


server {
      listen 80;
      server_name example.com;

      root /var/www/example.com/;

      location ~ /.well-known/acme-challenge {
         allow all;
      }
}
 
Сохранить.

$ sudo systemctl reload nginx

Делаем сертификаты есть варианты либо от root либо от user:

Вариант от root :
$ sudo -i
# curl https://get.acme.sh | sh

Делаем сертификаты:
# /root/.acme.sh/acme.sh --issue -d example.com -w /var/www/example.com
$ ~/.acme.sh/acme.sh --issue -d example.com -w /var/www/example.com

[Mon Jun 17 12:28:42 CEST 2019] Your cert is in  /root/.acme.sh/example.com/example.com.cer
[Mon Jun 17 12:28:42 CEST 2019] Your cert key is in  /root/.acme.sh/
example.co/example.com.key
[Mon Jun 17 12:28:42 CEST 2019] The intermediate CA cert is in  /root/.acme.sh/
example.co/ca.cer
[Mon Jun 17 12:28:42 CEST 2019] And the full chain certs is there:  /root/.acme.sh/
example.com/fullchain.cer

Вариант от user :
Внимание, нужно дать права на папку!!!

$ sudo chown -R user:user /var/www/example.com 

$ curl https://get.acme.sh | sh

Делаем сертификаты:
$ ~/.acme.sh/acme.sh --issue -d example.com -w /var/www/example.com



[Tue Jun 17 20:27:42 CEST 2019] Your cert is in /home/user/.acme.sh/example.com/example.com.cer
[Tue Jun 17 20:27:42 CEST 2019] Your cert key is in /home/user/.acme.sh/example.com/example.com.key
[Tue Jun 17 20:27:42 CEST 2019] The intermediate CA cert is in /home/user/.acme.sh/example.com/ca.cer
[Tue Jun 17 20:27:42 CEST 2019] And the full chain certs is there: /home/user/.acme.s/example.com/fullchain.cer

Обратить внимание, если ставили сертификаты для пользователя user автоматом:

$ crontab -l

0 2 * * * "/home/user/.acme.sh"/acme.sh --cron --home "/home/user/.acme.sh" > /dev/null

Соответственно для root автоматом:

$ sudo crontab -l

0 2 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null





следует добавить для user (аналогично для root)

$ crontab -l

3 2 * * * sudo systemctl restart shadowsocks-libev.service


$ sudo apt install fail2ban


Установка shadowsocks-libev

$ sudo apt install shadowsocks-libev
$ wget https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.1.0/v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ tar -xf v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ sudo mv v2ray-plugin_linux_amd64 /etc/shadowsocks-libev/v2ray-plugin
$ sudo chmod +x  /etc/shadowsocks-libev/v2ray-plugin
#$ sudo setcap 'cap_net_bind_service=+eip' /etc/shadowsocks-libev/v2ray-plugin
$ sudo setcap 'cap_net_bind_service=+ep' /etc/shadowsocks-libev/v2ray-plugin
$ sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ss-server

Проверяем:

$ sudo systemctl stop  shadowsocks-libev.service

$ sudo nano /etc/shadowsocks-libev/config.json

{
    "server":"0.0.0.0",
    "server_port":443,
    "local_port":1080,
    "password":"password",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open":true,
    "plugin":"/etc/shadowsocks-libev/v2ray-plugin",
    "plugin_opts":"server;tls;host=
example.com",
    "nameserver":"1.1.1.1",
    "reuse_port":true
}



Сохранить.

Впечатление такое что при запуске shadowsocks-libev.service
не видит tls 
"plugin_opts":"server;tls;host=example.com",

На самом деле, для того что бы служба shadowsocks-libev.service увидела сертификаты нужно явно указать поьзователя root или user


Правим службу shadowsocks-libev.service

$ sudo nano /lib/systemd/system/shadowsocks-libev.service

Правим User=nobody

User=root

или

User=user

Сохранить.

$ sudo systemctl daemon-reload  
$ sudo systemctl restart shadowsocks-libev.service
$ sudo systemctl status shadowsocks-libev.service

Скачаем клиент:
shadowsocks-windows

Скачаем плагин:
v2ray-plugin-windows-386-v1.1.0.tar.gz


Update !!!

Встроенный защитник windows 10 ругается на файл
v2ray-plugin_windows_386.exe




Поэтому используем что бы не думалось:
v2ray-plugin_windows_amd64.exe

Скачаем плагин:
v2ray-plugin_windows_amd64.exe



Переименуем и положим в папку Shadowsocks-4.1.6



Настроим:



 

Проверка скорости интернета при канале 50 Mbps :



Установка на клиенте Ubuntu 18.04

shadowsocks-libev на клиенте под линуксом сразу запустить не смог, собирал несколько раз, пока не выяснил, что есть фича - серверный порт должен совпадать с локальным !!!

$ sudo apt install shadowsocks-libev
=========================================================================
для Ubuntu 16.04 заменяем  sudo apt install shadowsocks-libev на :

$ sudo apt update && sudo apt upgrade -y && sudo apt install software-properties-common nano git -y && sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev && sudo apt update && sudo apt install shadowsocks-libev -y

=========================================================================

$ wget https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.1.0/v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ tar -xf v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ sudo mv v2ray-plugin_linux_amd64 /etc/shadowsocks-libev/v2ray-plugin
$ sudo chmod +x  /etc/shadowsocks-libev/v2ray-plugin
$ sudo setcap 'cap_net_bind_service=+ep' /etc/shadowsocks-libev/v2ray-plugin
#$ sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ss-server
$ sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ss-local

Обратить внимание на Ubuntu серверный порт должен совпадать с локальным портом!!!

$ sudo nano /etc/shadowsocks-libev/config.json
Обратить внимание от сервера отличается отсутствием:
"plugin_opts":"server",

{
    "server":"example.com",
    "server_port":443,
    "local_port":443,
    "password":"password",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open":true,
    "plugin":"/etc/shadowsocks-libev/v2ray-plugin",
    "plugin_opts":"tls;host=example.com",
    "nameserver":"1.1.1.1",
    "reuse_port": true
}

Сохранить.

$ sudo systemctl stop shadowsocks-libev.service && sudo systemctl disable shadowsocks-libev.service

Самое время проверить, или если захочется запускать вручную :

$ ss-local -s "example.com" -p 443 -l 443 -k "password" -m "aes-256-cfb" --plugin "/etc/shadowsocks-libev/v2ray-plugin"  -v

Делаем сервис для запуска:

$ sudo nano /etc/systemd/system/ss-local.service

[Unit]
Description=Daemon to start Shadowsocks Client
Wants=network-online.target
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/ss-local -c /etc/shadowsocks-libev/config.json

[Install]
WantedBy=multi-user.target

Сохранить.

$ sudo systemctl daemon-reload
$ sudo systemctl enable ss-local.service
$ sudo systemctl restart ss-local.service

$ sudo  systemctl status ss-local.service

$ sudo journalctl --unit=ss-local.service

воскресенье, 16 июня 2019 г.

Shadowsocks over websocket (HTTPS) use v2ray-plugin

Yet another SIP003 plugin for shadowsocks, based on v2ray
Shadowsocks over websocket (HTTPS)

Ubuntu 18.04 пакеты в репозитарии

# apt update
# apt upgrade
# apt install mc
# adduser user
# usermod -aG sudo user
# su user
$ cd ~
$ mkdir ~/.ssh
$ cd ~/.ssh
$ ssh-keygen -t rsa
Скачать и использовать для входа /home/user/.ssh/id_rsa
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
$ rm ~/.ssh/id_rsa.pub
$ rm ~/.ssh/id_rsa
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
$ exit
# nano /etc/ssh/sshd_config

Проверить:

PasswordAuthentication no
.....

PubkeyAuthentication yes
ChallengeResponseAuthentication no

Сохранить.

$ sudo systemctl reload sshd

После проверки входа и sudo

Отключть вход root по ssh

$ sudo nano /etc/ssh/sshd_config

Исправить:

PermitRootLogin no

Сохранить.

$ sudo systemctl reload sshd
# отключим ipv6
$ sudo /bin/su -c "echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf"
$ sudo /bin/su -c "echo 'net.ipv6.conf.default.disable_ipv6 = 1' >> /etc/sysctl.conf"
$ sudo /bin/su -c "echo 'net.ipv6.conf.lo.disable_ipv6 = 1' >> /etc/sysctl.conf"
#sudo /bin/su -c "echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf"
$ sudo sysctl -p

Getting started with acme.sh Let's Encrypt SSL client
Установка бесплатного ssl-сертификата Let’s Encrypt

Должен быть домен  example.com


На 80 порту работать web сервер

$ sudo apt install nginx
$ mkdir /var/www/example.com -p

$ sudo nano /etc/nginx/conf.d/example.com.conf

server {
      listen 80;
      server_name example.com;

      root /var/www/example.com/;

      location ~ /.well-known/acme-challenge {
         allow all;
      }
}
 
Сохранить.

$ sudo systemctl reload nginx


$ sudo -i
# curl https://get.acme.sh | sh

Делаем сертификаты:
# /root/.acme.sh/acme.sh --issue -d example.com -w /var/www/example.com

[Mon Jun 17 12:28:42 CEST 2019] Your cert is in  /root/.acme.sh/example.com/example.com.cer
[Mon Jun 17 12:28:42 CEST 2019] Your cert key is in  /root/.acme.sh/
example.co/example.com.key
[Mon Jun 17 12:28:42 CEST 2019] The intermediate CA cert is in  /root/.acme.sh/
example.co/ca.cer
[Mon Jun 17 12:28:42 CEST 2019] And the full chain certs is there:  /root/.acme.sh/
example.com/fullchain.cer
Установка shadowsocks-libev

$ sudo apt install shadowsocks-libev
$ wget https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.1.0/v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ tar -xf v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ sudo mv v2ray-plugin_linux_amd64 /etc/shadowsocks-libev/v2ray-plugin
$ sudo chmod +x  /etc/shadowsocks-libev/v2ray-plugin
#$ sudo setcap 'cap_net_bind_service=+eip' /etc/shadowsocks-libev/v2ray-plugin
$ sudo setcap 'cap_net_bind_service=+ep' /etc/shadowsocks-libev/v2ray-plugin
$ sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ss-server

Проверяем:

$ sudo systemctl stop  shadowsocks-libev.service

$ sudo nano /etc/shadowsocks-libev/config.json

{
    "server":"0.0.0.0",
    "server_port":443,
    "local_port":1080,
    "password":"password",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open":true,
    "plugin":"/etc/shadowsocks-libev/v2ray-plugin",
    "plugin_opts":"server;tls;host=
example.com",
    "nameserver": "1.1.1.1",
    "reuse_port": true
}
 

Сохранить.

Впечатление такое что при запуске shadowsocks-libev.service
не видит tls 
"plugin_opts":"server;tls;host=zaz01.info",

Поэтому запускать будем (обязательно попробовать):
$ sudo -i
# cd /etc/shadowsocks-libev
# ss-server -c config.json -p 443 --plugin v2ray-plugin --plugin-opts "server;tls;host=example.com;cert=/root/.acme.sh/example.com/fullchain.cer;key=/root/.acme.sh/example.com/example.com.key;loglevel none"


Далее копируем сертификаты

$ sudo cp /root/.acme.sh/example.com/fullchain.cer /etc/shadowsocks-libev/
$ sudo cp /root/.acme.sh/example.com/example.com.key /etc/shadowsocks-libev/

Правим службу shadowsocks-libev.service

$ sudo nano /lib/systemd/system/shadowsocks-libev.service

Правим ExecStart:

#  This file is part of shadowsocks-libev.
#
#  Shadowsocks-libev is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 3 of the License, or
#  (at your option) any later version.
#
#  This file is default for Debian packaging. See also
#  /etc/default/shadowsocks-libev for environment variables.

[Unit]
Description=Shadowsocks-libev Default Server Service
Documentation=man:shadowsocks-libev(8)
After=network.target

[Service]
Type=simple
EnvironmentFile=/etc/default/shadowsocks-libev
User=nobody
Group=nogroup
LimitNOFILE=32768

#ExecStart=/usr/bin/ss-server -c $CONFFILE $DAEMON_ARGS
ExecStart=/usr/bin/ss-server -c /etc/shadowsocks-libev/config.json -p 443 --plugin /etc/shadowsocks-libev/v2ray-plugin --plugin-opts "server;tls;host=zaz01.info;cert=/etc/shadowsocks-libev/fullchain.cer;key=/etc/shadowsocks-libev/example.com.key;loglevel none"
[Install]
WantedBy=multi-user.target


Сохранить.


$ sudo systemctl daemon-reload  
$ sudo systemctl restart shadowsocks-libev.service
$ sudo systemctl status shadowsocks-libev.service



Скачаем клиент:
shadowsocks-windows

Скачаем плагин:
v2ray-plugin-windows-386-v1.1.0.tar.gz

Переименуем и положим в папку Shadowsocks-4.1.6



Настроим:


 

Проверка скорости интернета при канале 50 Mbps :



Установка на клиенте Ubuntu 18.04

shadowsocks-libev на клиенте под линуксом сразу запустить не смог, собирал несколько раз, пока не выяснил, что есть фича - серверный порт должен совпадать с локальным !!!

$ sudo apt install shadowsocks-libev
=========================================================================
для Ubuntu 16.04 заменяем  sudo apt install shadowsocks-libev на :

$ sudo apt update && sudo apt upgrade -y && sudo apt install software-properties-common nano git -y && sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev && sudo apt update && sudo apt install shadowsocks-libev -y

=========================================================================

$ wget https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.1.0/v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ tar -xf v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ sudo mv v2ray-plugin_linux_amd64 /etc/shadowsocks-libev/v2ray-plugin
$ sudo chmod +x  /etc/shadowsocks-libev/v2ray-plugin
$ sudo setcap 'cap_net_bind_service=+ep' /etc/shadowsocks-libev/v2ray-plugin
#$ sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ss-server
$ sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ss-local

Обратить внимание на Ubuntu серверный порт должен совпадать с локальным портом!!!

$ sudo nano /etc/shadowsocks-libev/config.json
Обратить внимание от сервера отличается отсутствием:
"plugin_opts":"server",

{
    "server":"example.com",
    "server_port":443,
    "local_port":443,
    "password":"password",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open":true,
    "plugin":"/etc/shadowsocks-libev/v2ray-plugin",
    "plugin_opts":"tls;host=example.com",
    "nameserver":"1.1.1.1",
    "reuse_port": true
}

Сохранить.

$ sudo systemctl stop shadowsocks-libev.service && sudo systemctl disable shadowsocks-libev.service

Самое время проверить, или если захочется запускать вручную :

$ ss-local -s "example.com" -p 443 -l 443 -k "password" -m "aes-256-cfb" --plugin "/etc/shadowsocks-libev/v2ray-plugin"  -v

Сложило впечатление что на Ubuntu 20.04 конфиг не считывается
ss-local -c config.json

На Ubuntu 20.04 заработало только так:

ss-local -s "example.com" -p 443 -l 443 -k "password" -m "aes-256-cfb" --plugin "/etc/shadowsocks-libev/v2ray-plugin" --plugin-opts "tls;host=example.com" -v

Делаем сервис для запуска:

$ sudo nano /etc/systemd/system/ss-local.service

[Unit]
Description=Daemon to start Shadowsocks Client
Wants=network-online.target
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/ss-local -c /etc/shadowsocks-libev/config.json
# Ubuntu 20.04 раскомментировать:
#ExecStart=/usr/bin/ss-local -s "example.com" -p 443 -l 443 -k "password" -m "aes-256-cfb" --plugin "/etc/shadowsocks-libev/v2ray-plugin" --plugin-opts "tls;host=example.com" 

[Install]
WantedBy=multi-user.target

Сохранить.

$ sudo systemctl daemon-reload
$ sudo systemctl enable ss-local.service
$ sudo systemctl restart ss-local.service

$ sudo  systemctl status ss-local.service

$ sudo journalctl --unit=ss-local.service


пятница, 3 мая 2019 г.

Ubuntu 18.04 установка shadowsocks-libev v2ray-plugin

UBUNTU 16.04 УСТАНОВИТЬ V2RAY
shadowsocks/v2ray-plugin
tsunamaru/ss2ch
Проект V 
Установка v2ray-plugin 
Установка клиента
Команды
Примеры
443

Ubuntu 18.04 пакеты в репозитарии

# sudo apt update
# sudo apt upgrade
# sudo apt install mc
# adduser user
# usermod -aG sudo user
# su user
$ cd ~
$ mkdir ~/.ssh
$ cd ~/.ssh
Скачать и использовать для входа /home/user/.ssh/id_rsa
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
$ rm ~/.ssh/id_rsa.pub
$ exit
# nano /etc/ssh/sshd_config

Проверить:

PasswordAuthentication no
.....

PubkeyAuthentication yes
ChallengeResponseAuthentication no

Сохранить.

$ sudo systemctl reload sshd

После проверки входа и sudo

Отключть вход root по ssh

$ sudo nano /etc/ssh/sshd_config

Исправить:

PermitRootLogin no

Сохранить.

$ sudo systemctl reload sshd
# отключим ipv6
$ sudo /bin/su -c "echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf"
$ sudo /bin/su -c "echo 'net.ipv6.conf.default.disable_ipv6 = 1' >> /etc/sysctl.conf"
$ sudo /bin/su -c "echo 'net.ipv6.conf.lo.disable_ipv6 = 1' >> /etc/sysctl.conf"
#sudo /bin/su -c "echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf"
$ sudo sysctl -p

$ sudo apt install shadowsocks-libev
$ wget https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.1.0/v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ tar -xf v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ sudo mv v2ray-plugin_linux_amd64 /etc/shadowsocks-libev/v2ray-plugin
$ sudo chmod +x  /etc/shadowsocks-libev/v2ray-plugin
#$ sudo setcap 'cap_net_bind_service=+eip' /etc/shadowsocks-libev/v2ray-plugin
$ sudo setcap 'cap_net_bind_service=+ep' /etc/shadowsocks-libev/v2ray-plugin
$ sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ss-server

$ sudo nano /etc/shadowsocks-libev/config.json

{
    "server":"XXX.XXX.XXX.XXX",
    "server_port":80,
    "local_port":1080,
    "password":"JichOihoga",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open":true,
    "plugin":"/etc/shadowsocks-libev/v2ray-plugin",
    "plugin_opts":"server",
    "nameserver":"8.8.8.8",
    "reuse_port": true
}


$ sudo systemctl restart shadowsocks-libev.service

Работает.

$ sudo systemctl status shadowsocks-libev.service
$ sudo journalctl --unit=shadowsocks-libev.service

Скачаем клиент:
shadowsocks-windows

Скачаем плагин:
v2ray-plugin-windows-386-v1.1.0.tar.gz

Переименуем и положим в папку Shadowsocks-4.1.6



Настроим:




Проверим работу.

Оптимизация сервера и настройка ядра.

$ sudo nano /etc/security/limits.conf

Добавить:
 
* soft nofile 51200
* hard nofile 51200

Сохранить

$ sudo nano /etc/sysctl.conf

Добавить в конец:

fs.file-max = 51200

net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.core.netdev_max_backlog = 250000
net.core.somaxconn = 4096

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_mem = 25600 51200 102400
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_congestion_control = hybla

Сохранить.

$ sudo sysctl -p


Настройка ufw
$ sudo nano /etc/ufw/before.rules

 Добавляем после:
# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP

комментируем:
#-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT

Сохранить.

#$ sudo ufw disable && sudo ufw enable

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing
#$ sudo ufw default allow forward
#$ sudo  ufw allow 80
$ sudo ufw allow from x.x.x.x to any port 80 
$ sudo ufw allow from x.x.x.x proto tcp to any port 22
$ sudo ufw disable && sudo ufw enable
$ sudo ufw status verbose
#$ sudo ufw status numbered
#$ sudo ufw delete 30
 



=====================================================================
Пример сервиса для сервиса (не нужно его делать)
$ sudo nano /etc/systemd/system/ss-v2ray.service
 вставляем следующее:
[Unit]
Description=Shadowsocks-libev with V2RAY-websocket obfuscation Documentation=man:shadowsocks-libev(8)
After=network.target [Service]
Type=simple EnvironmentFile=/etc/default/shadowsocks-libev
User=nobody
Group=nogroup
LimitNOFILE=51200
ExecStart=/usr/bin/ss-server -c /etc/shadowsocks-libev/v2ray.json
[Install]
WantedBy=multi-user.target
сохраняем-выходим
$ sudo systemctl enable ss-v2ray.service && systemctl restart ss-v2ray.service
$ systemctl status ss-v2ray
=======================================================================
Установка на клиенте Ubuntu 18.04

shadowsocks-libev на клиенте под линуксом сразу запустить не смог, собирал несколько раз, пока не выяснил, что есть фича - серверный порт должен совпадать с локальным !!!

$ sudo apt install shadowsocks-libev
=========================================================================
для Ubuntu 16.04 заменяем  sudo apt install shadowsocks-libev на :

$ sudo apt update && sudo apt upgrade -y && sudo apt install software-properties-common nano git -y && sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev && sudo apt update && sudo apt install shadowsocks-libev -y

=========================================================================

$ wget https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.1.0/v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ tar -xf v2ray-plugin-linux-amd64-v1.1.0.tar.gz
$ sudo mv v2ray-plugin_linux_amd64 /etc/shadowsocks-libev/v2ray-plugin
$ sudo chmod +x  /etc/shadowsocks-libev/v2ray-plugin
$ sudo setcap 'cap_net_bind_service=+ep' /etc/shadowsocks-libev/v2ray-plugin
#$ sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ss-server
$ sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ss-local

Обратить внимание на Ubuntu серверный порт должен совпадать с локальным портом!!!

$ sudo nano /etc/shadowsocks-libev/config.json
Обратить внимание от сервера отличается отсутствием:
"plugin_opts":"server",

{
    "server":"XXX.XXX.XXX.XXX",
    "server_port":80,
    "local_port":80,
    "password":"JichOihoga",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open":true,
    "plugin":"/etc/shadowsocks-libev/v2ray-plugin",
    "nameserver":"8.8.8.8",
    "reuse_port": true
}

Сохранить.

$ sudo systemctl stop shadowsocks-libev.service && sudo systemctl disable shadowsocks-libev.service

Самое время проверить, или если захочется запускать вручную :

$ ss-local -s "XXX.XXX.XXX.XXX" -p 80 -l 80 -k "JichOihoga" -m "aes-256-cfb" --plugin "/etc/shadowsocks-libev/v2ray-plugin"  -v

Делаем сервис для запуска:

$ sudo nano /etc/systemd/system/ss-local.service

[Unit]
Description=Daemon to start Shadowsocks Client
Wants=network-online.target
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/ss-local -c /etc/shadowsocks-libev/config.json

[Install]
WantedBy=multi-user.target

Сохранить.

$ sudo systemctl daemon-reload && sudo systemctl enable ss-local.service && sudo systemctl restart ss-local.service
$ sudo  systemctl status ss-local.service
$ sudo journalctl --unit=ss-local.service


Настройка соединения в firefox: