Выполнение SSH
на альтернативном порте больше не рассчитывает как безопасность. Это только добавляет небольшой бит мрака и добавленный шаг сложности для Ваших пользователей. Это добавляет нулевые препятствия для людей, обращающихся к повреждению Ваша сеть, кто использует автоматизированные сканеры портов и не заботится о том, на каком порте это работает.
Если Вы хотите поддержать безопасность в системе, это позволяет удаленный основанный на Интернете входящий SSH, управляйте своими пользователями в sshd_config
как @Anthon обозначенный, и затем также реализуют безопасность непосредственно в PAM.
Создайте две группы, lusers
и rusers
. Добавьте удаленных мобильных пользователей к rusers
группа. Используйте pam_succeed_if.so модуль PAM, чтобы разрешить доступ тем пользователям. Добавьте строки к своей конфигурации pam для ssh:
account sufficient pam_succeed_if.so user ingroup lusers
account sufficient pam_succeed_if.so user ingroup rusers
Некоторые pam_succeed_if.so модули могут потребовать, чтобы Вы использовали немного отличающийся синтаксис, как group = lusers
.
Затем не только sshd
ограничение пользователей, которые могут соединиться, но в случае ошибки в sshd
, у Вас все еще есть защита, которую предлагают основанные на PAM ограничения.
Один дополнительный шаг для удаленных пользователей должен вызвать использование ssh_keys с паролями. Так, локальные пользователи могут войти в систему с ключами или паролями, но у удаленных пользователей должен быть ключ, и если Вы создаете ключи для них, можно удостовериться, что ключ имеет пароль партнеры. Таким образом ограничивая доступ к местоположениям, которые на самом деле обладают ключом SSH и паролем. И ограничение векторов потенциальной атаки, если пароль пользователя является compomised.
В sshd_config
:
измените 2 настройки:
ChallengeResponseAuthentication yes
и
PasswordAuthentication yes
кому:
ChallengeResponseAuthentication no
и
PasswordAuthentication no
Так, значение по умолчанию должно теперь позволить только ключевую аутентификацию. Затем для локальных пользователей Вы можете пользователь match
установка конфигурации для изменения значения по умолчанию для локальных пользователей. Принятие Вашей локальной частной сети является 192.168.1.0/24, добавьте к sshd_config
:
Match Address 192.168.1.0/24
PasswordAuthentication yes
Теперь, локальные пользователи могут соединиться с паролями или ключами, и удаленные пользователи будут вынуждены использовать ключи. Вам решать создать ключи с паролями.
Как дополнительное преимущество, только необходимо управлять синглом sshd_config
, и только необходимо выполнить ssh на единственном порте, который упрощает собственное управление.
редактирование 21.01.2017 - Ограничение использования authorized_keys
файлы.
Если Вы хотите удостовериться, что пользователи не могут просто сам генерировать ssh ключ и использовать его с authorized_keys
файл для входа в систему можно управлять, это путем установки определенного местоположения для sshd будет искать авторизованные ключи.
В /etc/ssh/sshd_config
, изменение:
AuthorizedKeysFile %h/ssh/authorized_keys
к чему-то как:
AuthorizedKeysFile /etc/.ssh/authorized_keys/%u
Указывая на управляемый каталог, что у пользователей нет полномочий записать в средства, что они не могут генерировать свой собственный ключ и использовать его для работы вокруг правил, которые Вы поместили на месте.
Это найдет количество не скрытых каталогов в текущем рабочем каталоге:
ls -l | grep "^d" | wc -l
Редактирование:
Чтобы сделать этот рекурсивный, используйте опцию -R
, чтобы LS -L
:
ls -lR | grep "^d" | wc -l
в земле GNU:
find . -mindepth 1 -maxdepth 1 -type d -printf . | wc -c
в другом месте
find . -type d ! -name . -printf . -prune | wc -c
в Bash:
shopt -s dotglob
count=0
for dir in *; do
test -d "$dir" || continue
test . = "$dir" && continue
test .. = "$dir" && continue
((count++))
done
echo $count
ECHO $ (($ (Find -Type d | WC -L) - 1))
- это один из способов (вычитает 1 от WC -L для удаления тока dir). Вы можете настроить варианты найти , чтобы найти разные вещи.
ECHO $ (($ ($ find -type d -not -Path »* / \. * '| WC -L) - 1))
- исключить скрытых дирижений
, как я Упомянутые в комментариях, сердце этого выражения на самом деле Найти -type d
, который находит все каталоги.
Примечание. Это также находит все подпапки - вы можете контролировать глубину, используя флаг -MaxDepth
.
find. -type d -not -path '.' -printf 0 | wc -c ;
Рекурсивно найти все каталоги (-введите d )в текущем каталоге (find. )это не (. каталог )и вывести 0 для каждого найденного каталога. Затем wc -c
подсчитывает количество символов (0 )из предыдущего вывода команды.