5813
правок
Kilpio (обсуждение | вклад) (→VPN) |
Kilpio (обсуждение | вклад) |
||
Строка 269: | Строка 269: | ||
== AutoSSH == | == AutoSSH == | ||
Еще одно резервное подключение к контроллеру сделаем на основе AutoSSH. Механизм работы таков: с контроллера устанавливается ssh-соединение к серверу, при этом ssh-порт контроллера пробрасывается на один из свободных портов на localhost сервера. Сервис аutossh следит за тем, что ssh-соединение не разорвано, и в случае разрыва восстанавливает его. Восстановление происходит не мгновенно | Еще одно резервное подключение к контроллеру сделаем на основе <code>AutoSSH</code>. Механизм работы таков: с контроллера устанавливается ssh-соединение к серверу, при этом ssh-порт контроллера пробрасывается на один из свободных портов на localhost сервера. Сервис аutossh следит за тем, что ssh-соединение не разорвано, и в случае разрыва восстанавливает его. Восстановление происходит не мгновенно — какое-то время порт, используемый на <code>localhost</code> сервера удерживается демоном <code>sshd</code>. | ||
Устанавливаем на контроллере apt-get install autossh. Генерируем пару ключей для пользователя root: | Устанавливаем на контроллере <code>apt-get install autossh</code>. Генерируем пару ключей для пользователя <code>root</code>: | ||
ssh-keygen | <pre>ssh-keygen </pre> | ||
Пароль — пустой. | Пароль — пустой. | ||
Для обслуживания удаленных подключений создаем пользователя remote на сервере с оболочкой /bin/false | Для обслуживания удаленных подключений создаем пользователя <code>remote</code> на сервере с оболочкой <code>/bin/false</code>: | ||
<pre>adduser --home /home/remote --shell /bin/false remote </pre> | |||
В файл <code>/home/remote/.ssh/authorized_keys</code> на сервере добавляем созданный на контроллере ключ <code>/root/.ssh/id_rsa.pub</code> с преамбулой | |||
<code>no-agent-forwarding,no-X11-forwarding,permitopen="localhost:62001" </code> | |||
что обеспечит дополнительную безопасность сервера при подключении контроллера. Порт 62001 — порт localhost-сервера, на который будет перенаправлен ssh-порт данного контроллера. | |||
Первый раз подключаемся с контроллера на сервер вручную: | Первый раз подключаемся с контроллера на сервер вручную: | ||
ssh remote@vpn.mydomain.com | <pre>ssh remote@vpn.mydomain.com </pre> | ||
На контроллере создаем файл \etc\systemd\system\autossh.service для запуска autossh в качестве сервиса: | На контроллере создаем файл <code>\etc\systemd\system\autossh.service</code> для запуска <code>autossh</code> в качестве сервиса: | ||
<pre> | |||
[Unit] | [Unit] | ||
Description=Keeps an ssh tunnel to remote host open | Description=Keeps an ssh tunnel to remote host open | ||
Строка 307: | Строка 310: | ||
[Install] | [Install] | ||
WantedBy=multi-user.target | WantedBy=multi-user.target | ||
</pre> | |||
Включаем сервис а автозагрузку на контроллере: | |||
<pre>systemctl enable autossh.service</pre> | |||
После запуска сервиса мы можем подключиться к контроллеру на сервере с помощью команды | |||
<pre>ssh 127.0.0.1 -p 62001</pre> | |||
После запуска сервиса мы можем подключиться к контроллеру на сервере с помощью команды ssh 127.0.0.1 -p 62001 | |||
== Возможные неполадки GPRS-соединения == | == Возможные неполадки GPRS-соединения == |
правок