У меня есть выделенный сервер с esxi.
Я добавил дополнительного пользователя в esxi и добавил его ключи в / etc / keys / keys-user / authorized_keys
Затем я перезагрузил сервер, и эта папка ключей исчезла. Затем я обнаружил, что мне нужно скопировать ключи в какое-то постоянное хранилище, а затем поместить команду в /etc/rc.local.d/local.sh
, но я заметил, что даже этот файл перезаписывается после перезагрузки. Итак, мои вопросы:
ОБНОВЛЕНИЕ У меня есть правила брандмауэра, согласно которым только мой домашний IP-адрес имеет доступ к esxi и больше ни к чему. Теперь, на всякий случай, я не могу подключиться, а затем я хочу подключиться к ssh и отключить брандмауэр на некоторое время и, возможно, изменить правило брандмауэра для нового IP-адреса, а затем снова включить брандмауэр. вот почему я хотел доступ по ssh. Несколько дней назад у меня была заблокирована учетная запись root из-за грубой силы. так что на всякий случай я хочу иметь дополнительного пользователя, с которым я могу использовать ssh, чтобы исправить проблему. Я включил аутентификацию на основе ключей ssk, но она общедоступна. поэтому я хочу ограничить ssh только домашним IP-адресом, и в случае крайней необходимости, если мой IP-адрес изменится, я могу перезагрузить esxi, чтобы аутентификация на основе пароля работала, а затем я могу исправить брандмауэр. Я домашний пользователь, поэтому не могу позволить себе аппаратный брандмауэр на esxi.
У меня есть pfsense для внутренних машин. У меня нет общедоступных сайтов, только материалы моих лабораторий. Я не Я не хочу ставить esxi за pfsense, потому что, если что-то не так в pfsense, я буду заблокирован, и у меня не будет другого выхода, кроме переустановки всего
По моему опыту, /etc/rc.local.d/local.sh
на самом деле сохраняется после перезагрузки.Возможно, стоит упомянуть, что файл сохраняется только один раз в час или во время полного выключения (см. Как часто ESXi записывает на загрузочный диск? ).
Итак, одна из причин, по которой это изменение - не может быть сохранено, если вы выполните полный сброс или перезагрузку, а не перезагрузку
.
Вы можете увидеть, сохранила ли система изменения, выполнив /sbin/auto-backup.sh
, который немедленно сохраняет файл в загрузочном банке (см. Как сохранить изменения конфигурации в ESXi 4.x / 5.x , что все еще применимо для v6.x).
Мой ESXi также находится в общедоступной сети. В / etc / ssh / sshd_config
я изменил
PermitRootLogin yes
на
PermitRootLogin prohibit-password
PubkeyAuthentication yes
. Это уже снижает вероятность того, что пользователь root будет заблокирован для недопустимых попыток ввода пароля (поскольку пароли не разрешены для пользователя root в первое место). Кроме того, аутентификация на основе ключей считается гораздо более безопасной (если вы храните ключи в безопасности!), Чем аутентификация по паролю.
Если вы хотите полностью отключить аутентификацию по паролю, вам также необходимо установить
UsePAM no
PasswordAuthentication no
Однако эти изменения являются постоянный (как / etc / ssh / sshd_config
сохраняется с помощью /sbin/auto-backup.sh
) и немедленный (без перезапуска если sshd, поскольку sshd фактически запускается inetd). Таким образом, здесь нет возможности непостоянных изменений.
Если вы все еще хотите изменить правила брандмауэра, вы можете создать файл ssha_from_anywhere.xml
с содержимым
<ConfigRoot>
<service id='1000'>
<id>sshServer</id>
<rule id='0000'>
<direction>inbound</direction>
<protocol>tcp</protocol>
<porttype>dst</porttype>
<port>22</port>
</rule>
<enabled>true</enabled>
<required>true</required>
</service>
</ConfigRoot>
в постоянном хранилище и скопировать его в / etc / vmware / firewall /
во время загрузки (снова из /etc/rc.local.d/local.sh
). Затем измените существующее правило брандмауэра с помощью клиента vSphere, чтобы разрешить только ваш локальный адрес.
После перезагрузки системы порт ssh будет открыт для всех. Затем вам нужно будет войти в систему и удалить /etc/vmware/firewall/ssha_from_anywhere.xml
и перезагрузить брандмауэр:
esxcli network firewall refresh
Однако перед тем, как это сделать, вам придется настроить IP-адрес, с которого разрешено подключаться к ssh. Возможно, вы захотите сделать это снова в клиенте vSphere или непосредственно в /etc/vmware/firewall/service.xml
. В первом случае (если вы не отключили клиентский интерфейс vSphere) вся процедура кажется бессмысленной, поскольку вы можете просто войти в систему с помощью клиента vSphere и изменить IP-адрес.
Изменения, внесенные в клиент vSphere, отражаются в /etc/vmware/esx.conf
файл, например,
/firewall/services/sshServer/allowedip[0000]/ipstr = "192.168.1.1"
/firewall/services/sshServer/allowedip[0001]/ipstr = "192.168.2.0/24"
Хотя я знаю, что этот файл сохраняется при перезагрузке, я не уверен, как активируются изменения. Может можно отредактировать файл и потом перезагрузить
? И после этой второй перезагрузки удалите /etc/vmware/firewall/ssha_from_anywhere.xml
и перезагрузите брандмауэр.
Удачи!
Мартин