У меня есть Дуга Linux virtualbox сервер, работающий на моем основном сервере дома. Я запускаю его бездисплейный (никакая графическая голова) и затем ssh в поле от моего ноутбука или основного сервера.
nohup vboxheadless --startvm ArchLinux >/tmp/ArchLinux.headless.out 2>&1 &
Я настроил VM, чтобы загрузиться и автоматически настроить сети. Можно также настроить слушателя VNC для соединения использования это. Но я нахожу ssh
более удобный для отправки команд к VM.
После вещей, становящихся более странным и более странным (см. поток комментариев в моем вопросе), я наконец понял это. Первые вещи сначала: процесс аутентификации перестал работать в pam_access.so однако не из-за некоторой неверной конфигурации в /etc/security/access.conf
поскольку это было предложено.
Для понимания, почему, мы должны посмотреть на установку этого поля в особенности: Это действует как маршрутизатор к IPv4, который идет исходно по ссылке PPP и IPv6, который является по 6in4 туннель. Также это поле действует как DNS рекурсивный сопоставитель, и здесь это становится интересным. Я действительно настраивал сопоставитель способом, который поиски реверса IPv4 разрешены, рекурсивно запустив с корневых серверов IPv4, и поиски реверса IPv6 запускаются с корневых серверов IPv6. Эта установка действительно работала, когда я сначала установил ее.
Теперь мой ISP вводит изображения и людей, которые не понимают, как усиление DNS набрасывается на работу. Короче говоря: Я знаю наверняка, что моя путаница ISP с входящими пакетами DNS наугад, т.е. некоторые вещи должна быть разрешена через их собственные сопоставители в течение некоторого времени теперь при разрешении других адресов DNS рекурсивно на собственных работах – официальная причина состоит в том, чтобы смягчить нападения усиления DNS, но они делают ее неправильно then^1.
Так как я не хотел в основном изменять свою установку, я просто бросил сопоставители DNS своего ISP в конце моего локального сопоставителя DNS как нерекурсивные вперед, поэтому если рекурсивная попытка разрешения испытывает таймаут, это пробует сопоставители моего ISP. Это работает до сих пор. Но когда я действительно настраивал это, я сделал маленькую ошибку: Я ввел сопоставители DNS ISP для работы только от хостов в моем локальном объеме, т.е. 192.168.0.0/16, но забыл о localhost, иначе мой маршрутизатор, который является хостом, в который я попробовал к SSH, для которого сопоставитель не примет сопоставители ISP во внимание.
pam_access.so делает попытку обратного поиска на адресе коллег; и это закрывает круг: Поскольку для поиска реверса IPv6 к корневым серверам IPv6 DNS получили бы доступ, пакеты пойдут, хотя 6in4 туннелируют без моего питания ISP с ними, получая ответ. Но поиск реверса IPv4 не был бы сделан по сопоставителям ISP моим собственным, которое не получит ответа и в конечном счете сообщило бы о NXHOST (или он будет работать в тайм-ауте). Так или иначе pam_access.so не будет видеть что-то, что он любит и просто говорит, что "Вы не должны передавать".
После того, как я исправил ту конфигурацию сопоставителя, все теперь работает как очарование снова. Но я действительно должен ступить на пальцы ног ISP теперь …
Относительно того, как я действительно разрешал его? Ну, путем дергания регистрирующегося многословия, сильно учащегося /var/log/everything
видеть в который развернутые вещи порядка. Когда я видел, что мой сопоставитель регистрировал обратные попытки поиска, я знал то, что продолжалось.
1: с точки зрения смягчения усиления DNS это - полная ерунда, потому что я действительно тестировал, и исходящие пакеты DNS проходят очень хорошо – однако это - пакеты, которые они должны отфильтровать. На самом деле каждый ISP конечного клиента должен отбросить все пакеты UDP, какой адрес отправителя не соответствует тем из их клиентов
Конфигурация sshd на сервере является одной из самых интересных вещей посмотреть на то, если у Вас есть подобные проблемы. Это обычно находится в /etc/ssh/sshd_config
.
Существует хороший шанс что в Вашем файле конфигурации существует раздел:
Match Address 10.*.*.*,192.168.0.*
PasswordAuthentication no
Это имеет некоторые правила, специфичные для этих подсетей ( Address
в Вашем файле будет, скорее всего, отличаться). Эти правила только касаются адресов IPv4, если это - единственный, которые соответствуют (и не IPv6), и правила в соответствии только относятся к подобранному IP-адресу. Таким образом в зависимости от того, соединяетесь ли Вы через IPv4 и IPv6, sshd имеет различные правила.
Не все вещи могут быть установлены в a Match
, но их достаточно, чтобы смочь иметь значение:
AllowAgentForwarding, AllowTcpForwarding, AuthorizedKeysFile,
AuthorizedPrincipalsFile, Banner, ChrootDirectory, ForceCommand,
GatewayPorts, GSSAPIAuthentication, HostbasedAuthentication,
HostbasedUsesNameFromPacketOnly, KbdInteractiveAuthentication,
KerberosAuthentication, MaxAuthTries, MaxSessions,
PasswordAuthentication, PermitEmptyPasswords, PermitOpen,
PermitRootLogin, PermitTunnel, PubkeyAuthentication,
RhostsRSAAuthentication, RSAAuthentication, X11DisplayOffset,
X11Forwarding, X11UseLocalHost
Match
директива. Я добавил sshd_config целевой системы к моему вопросу. Поскольку Вы видите, что это действительно очень минимально, и никакой броский материал не продолжается там. Также отметьте это PasswordAuthorization no
не предотвращает интерактивную клавиатуру. И проблема сохраняется аутентификации с открытым ключом, используется (т.е. работает по IPv6, но не по IPv4).
– datenwolf
24.04.2013, 22:04
Я столкнулся с той же проблемой, выровнял iptables с ip6tables , а затем исправил эту проблему.