Я начинаю компанию по веб-хостингу, и есть несколько деталей, которые мне еще предстоит выяснить, одна из них - это своего рода SSH VPN для подключения к нашим серверам под управлением CentOS 6 с помощью cPanel.
Итак, это то, что я хочу сделать ...
1) Иметь главный сервер с определенными логинами пользователей (user1, user2 и т. Д.) Для моих сотрудников. Чтобы подключиться к любому из наших серверов по SSH, им всем сначала нужно будет войти на этот главный сервер.
2) С этого главного сервера они смогут ssh server.example.com
и главный сервер сможет регистрировать их прямо как root.
Я знаю, что необходимо создать пару ключей для каждого пользователя и поместить их закрытый ключ в /root/.ssh/authorized_keys
файл на каждом сервере. У меня уже есть средства для автоматического обновления этого файла для каждого сервера с помощью cron.
Я могу заставить все это работать, но иногда вход в систему становится немного странным, и у меня также есть проблема с тайм-аутом соединения примерно через 15 минут. Я считаю, что у меня есть идея исправить это, но любая помощь будет принята с благодарностью.
Теперь, что касается основного вопроса, я хочу иметь возможность, чтобы пользователи входили в систему, используя короткое имя хоста или префикс имени хоста, вместо того, чтобы вводить все это при входе на сервер. Итак, если у меня есть сервер с именем хоста s1.server.example.com
, они смогут использовать s s1.server
(s будут иметь псевдоним ssh) для быстрого входа в систему. Я не уверен, как это сделать, но если есть простой способ без необходимости настраивать каждый сервер на главном сервере, чтобы его короткое имя указывало на полное имя хоста, было бы намного проще поддерживать в будущее. Я предполагаю, что можно было бы написать какой-то сценарий для проверки правильности имени хоста, которое соответствует префиксу.
Здесь мы будем очень благодарны за любое направление, я пробовал так много разных решений безрезультатно и предпочел бы, чтобы они работали правильно без целой кучи "хаков", как это делал я. Спасибо!
РЕДАКТИРОВАТЬ
Я хотел рассказать всем здесь, так как я думаю, что был довольно неясен. Эта система доступна только высокопоставленным сотрудникам внутри компании, чтобы обеспечить быстрый и простой способ управления нашими облачными системами через root. Клиенты не будут иметь доступа к этим системам и любым клиентам, которые могут иметь root-доступ к своим услугам, используя прямой root-доступ.
Если у вас правильно настроен DNS, вы сможете использовать короткие имена. Ставить что-то вроде:
поиск example.com
в вашем resolve.conf поможет с разрешением имени. Для обновления конфигураций, ключей ssh и т. Д. Вам действительно нужно изучить что-то вроде Puppet или Chef. Это сделает вашу жизнь НАМНОГО проще по мере того, как вы будете развивать свою веб-ферму.
Я собираюсь порекомендовать вам несколько различных практик, чтобы повысить вашу безопасность и дать вам некоторое преимущество в бизнесе среди недорогих провайдеров. Поскольку веб-хостинг может быть бизнесом с низкой рентабельностью, некоторая дифференциация услуг с добавленной стоимостью может существенно помочь с более жесткой маржой, одновременно увеличивая вашу привязанность.
Рассмотрите возможность замены стандартных логинов SSH на:
(или оба вместе)
Wham, вы мгновенно становитесь веб-хостером, заботящимся о безопасности :)
Вход в систему как root считается плохой практикой! Вместо этого попросите их войти в систему как ненадежные пользователи, а затем используйте sudo
для запуска команд, которым требуются привилегии корневого уровня.
Рассмотрите возможность усиления безопасности всех ваших хостов centos с помощью руководства по усилению безопасности, такого как NSA SRG, CIS или DISA STIG, включая руководство Apache.
Если вы используете ssh в программном обеспечении, попросите клиентов генерировать ключи на своих локальных компьютерах, так как это считается более безопасным. Дайте им возможность зашифровать свой закрытый ключ и загрузить его вам для условного депонирования в качестве резервной копии.
Быстрое обновление PKI, например SSH.
Открытый ключ = шифровальщик, требований конфиденциальности нет
Закрытый ключ = дешифратор, защитите это, не делитесь им!
Закрытые ключи SSH не должны храниться на удаленных хостах, если они не зашифрованы.
Чтобы подключиться к хостам в Интернете по SSH, вам нужно только включить открытый ключ в файл авторизованных ключей. Видеть http://www.eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html
Вы можете использовать псевдоним и другие команды, чтобы сократить данные, которые пользователю может потребоваться ввести.
Однако, судя по уровню вашего опыта, я рекомендую немного попрактиковаться, прежде чем переходить к хостингу Linux. Доверие превыше всего!