Как я могу выключить SSH и сервисы HTTP для всех кроме меня?
Фон: Наш сервер работает в VM. Я делаю снимок VM перед стартовым обслуживанием. Когда что-то идет не так, как надо, я просто восстанавливаю снимок, таким образом, я могу запустить снова. Однако, если кто-то будет использовать сервер, в то время как я обновляю, вся его работа в то время будет потеряна, когда я восстановлю снимок. Для предотвращения этого я хочу удостовериться, что никто не может использовать сервер в течение времени обслуживания.
Я не владелец VM, таким образом, я не могу взять его от сети. Я должен войти в систему сервера через VPN как все другие.
HTTP не нужен для обслуживания, но я не уверен, нравится ли серверу он, если я просто остановил сервис. В моем случае это - сервер GitLab, который обычно отказывается обновлять, когда его сервисы снижаются, или его сценарии обновления просто перезапускают сервис, прежде чем миграция запустится. Однако я интересуюсь решением, которое работает на другие основанные на Ubuntu серверы, также.
Я не уверен, соединяетесь ли Вы с VM из Linux. Если Вы:
Первый, я Вы можете ограничить количество соединений SSH через брандмауэр , но бояться блокировать себя также. Я не полагаю, что Вы можете ограничить использование файлы конфигурации SSH.
115-секундный, Вы можете установка Ваше соединение SSH с тоннелем localhost, таким образом, доступ HTTP только возможен от веб-сервера.
тоннель В качестве примера с помощью ~/.ssh/config:
Host YourServer
HostName XXX.XXX.XXX.XXX
IdentityFile ~/.ssh/YourServerKey
User YourUser
LocalForward 8888 127.0.0.1:80
LocalForward 8889 127.0.0.1:443
С доступным туннелированием, Вы можете добавить ограничения на файл конфигурации сервера HTTP, чтобы позволить только localhost рассматривать место.
Пример: phpMyAdmin на Apache2, localhost только
И затем комментируют те строки, когда Вы готовы к открытому доступу снова.