Там дополнительные пути состоят в том, чтобы защитить соединения SSH помимо брандмауэра и Ключей RSA?

agrep или tre-grep сделают то, что Вы спрашиваете; они - "приблизительный" regex matching/grep. Для получения дополнительной информации также см. статью Wikipedia.

% tre-agrep --help | head             (05-23 16:53)
Usage: tre-agrep [OPTION]... PATTERN [FILE]...
Searches for approximate matches of PATTERN in each FILE or standard input.
Example: `tre-agrep -2 optimize foo.txt' outputs all lines in file `foo.txt'     that
match "optimize" within two errors.  E.g. lines which contain "optimise",
"optmise", and "opitmize" all match.

Regexp selection and interpretation:
  -e, --regexp=PATTERN      use PATTERN as a regular expression
  -i, --ignore-case         ignore case distinctions
  -k, --literal             PATTERN is a literal string


% agrep  | head                       (05-23 16:53)
usage: agrep [-@#abcdehiklnoprstvwxyBDGIMSV] [-f patternfile] [-H dir] pattern [files]

summary of frequently used options:
(For a more detailed listing see 'man agrep'.)
-#: find matches with at most # errors
-c: output the number of matched records
-d: define record delimiter
-h: do not output file names
-i: case-insensitive search, e.g., 'a' = 'A'
-l: output the names of files that contain a match
-n: output record prefixed by record number
-v: output those records that have no matches
-w: pattern has to match as a word, e.g., 'win' will not match 'wind'
-B: best match mode. find the closest matches to the pattern
-G: output the files that contain a match
-H 'dir': the cast-dictionary is located in directory 'dir'

5
05.07.2013, 01:34
7 ответов

Ваша существующая конфигурация кажется очень безопасной. Однако существуют дополнительные вещи, которые можно использовать для ограничения доступа.

Стук порта может использоваться для хранения завершений порта большую часть времени. Это реализовано с помощью iptables. Существуют демоны, которые могут использоваться, или правила могут быть реализованы полностью в iptables как описано в документации Shorewall.

Если оболочки tcp включены. Несколько без рутения как следующее в/etc/hosts.allow уведомят Вас каждый раз, когда удаленная связь установлена с deamon. Первое правило позволяет локальным соединениям работать тихо, скорректировать диапазон IP-адреса как соответствующий. Второе правило предотвращает доступ от адресов, которые инвертируют во многую страну TLD, и посылает сообщение по электронной почте для каждого успешного соединения. Это могло быть шумным, если Вы не используете Стук Порта.

sshd :          10.0.0.0/8 192.168.0.0/24 

sshd :          ALL \
            EXCEPT .ar .au .br .by .cl .co .cz .do .eg .gt \
                .id .il .in .jp .ma .mx .nl .pe .pk .pl .pt \
                .ro .rs .ru .sa .sg .tr .tw .ua .vn .za \
                .ae .at .bg .gh .hr .hu .ke .kz .lt .md \
                .my .no .sk .uy .ve : \
            spawn (/bin/echo "SSH connection to %N from %n[%a] allowed" | \
                /usr/bin/mailx -s "SSH Allowed" you@example.com)

fail2ban правила могут использоваться для временного помещения в черный список хостов, которые пробуют к грубой силе сервер. Я видел случайные попытки, когда у меня был ssh, выставленный Интернету.

4
27.01.2020, 20:35
  • 1
    На моем сервере SSH я вижу дюжину попыток каждый день. fail2ban действительно полезно против таких датчиков. –  lgeorget 05.07.2013, 06:28
  • 2
    что-то, что я не знал об этом, могло быть хорошим, если я выясняю, как сделать это. –  Bruce Kirkpatrick 05.07.2013, 08:58
  • 3
    @BruceKirkpatrick, который описывает документация Shorewall, как она сделана, и Shorewall, может создать установку для Вас. Это более просто и менее подвержено ошибкам, чем прокрутка Вашего собственного. –  BillThor 05.07.2013, 17:25
  • 4
    @BillThor - очень хорошая подсказка о стране TLDs. Спасибо –  MountainX-for-Monica 06.07.2013, 22:27
  • 5
    мне нравится denyhosts также. –  MountainX-for-Monica 06.07.2013, 22:27

Ваша установка SSH уже является современным состоянием с точки зрения безопасности.

Существует что-то, что Вы могли сделать, но отметить, что это может быть больше боль в шее для Вас, чем реальная защита. Вы могли изменить порт с 22 до менее известного для получения меньшего количества нападений и датчиков аутентификации.

1
27.01.2020, 20:35
  • 1
    MAC-адреса не только появляются в кадрах Ethernet (или 8.11x кадры) и не в пакетах IP? И таким образом, фильтрация по MAC-адресам бесполезна, поскольку никакой пакет из Интернета не имеет поле MAC-адреса. –  Dan D. 05.07.2013, 07:41
  • 2
    я не мог заставить Mac работать через Интернет. это только работает над той же подсетью, я думаю.-A ВВОДЯТ-p icmp - icmp-вводят эхо-запрос-m Mac - источник MAC MAC_HERE-j ПРИНИМАЕТ чек –  Bruce Kirkpatrick 05.07.2013, 08:38
  • 3
    Хм да, конечно, в Интернете, это не действительно полезно... Пока существует маршрутизатор в середине на самом деле. Я принял во внимание свой собственный случай, в котором у меня есть уровень 2 VPN, которую я совместно использую с большим количеством людей... так, это довольно не важно здесь. Я редактирую ответ. –  lgeorget 05.07.2013, 14:52
  • 4

Как другие сказали, SSH уже до задачи с точки зрения того, чтобы быть достаточно безопасным. Я думаю, что бессмысленно переместить sshd демона в другую точку. Я уподобляю это установке точки доступа Wirelss и сокрытию SSID. Это тривиально к передачей эти типы безопасности через меры по мраку.

Ограничение доступа не только для укоренения, но и только ключевым пользователям всегда является хорошей идеей, является ли это с доступом SSH или чем-либо еще в этом отношении.

Одна вещь, которую я нахожу полезными, хотя использует что-то как fail2ban. Можно использовать его, чтобы обнаружить и взять контрмеры, чтобы замедлиться и мешать потенциальным взломщикам.

3
27.01.2020, 20:35
  • 1
    у меня действительно есть установка fail2ban и я знаю, что это работает, так как я получаю электронные письма, когда сервер перезапускает и когда я вхожу в систему. Это запрещает при 5 отказах. Корень в настоящее время является единственным пользователем с доступом удара. Моими другими пользователями является FTP только, и они должны туннелировать через SSH как пользователь root, так как порт FTP не открыт. Спасибо –  Bruce Kirkpatrick 05.07.2013, 08:04

Единственный риск на стороне сервера является использованием перед аутентификацией. Не было многих (публично известны) в истории SSH.

0
27.01.2020, 20:35

en.wikipedia.org: Systrace

Страница справочника OpenBsd

OpenBsd имеют такой прием, можно запустить OpenSsh с ограниченными полномочиями и дополнительным входом.

Попытайтесь перенести/usr/sbin/sshd с/usr/sbin/systrace.

Каждый доступ к любому системному объекту был бы зарегистрирован systrace, любым доступом к любому файлу, каталогу, сетевым портам, памяти, системным вызовам, и т.д.

Генерируйте политику этот путь:

systrace -A -d /etc/systrace/sshd.policy/ \
         -E /var/log/systrace_sshd.log /usr/sbin/sshd

Политика редактирования с Вашим любимым текстовым редактором:

vi /etc/systrace/sshd.policy/

После этого запустите sshd демона с ограничениями:

systrace -a -d /etc/systrace/sshd.policy/ \
         -E /var/log/systrace_sshd.log /usr/sbin/sshd

Существует много практических руководств о systrace обертке по оболочке, но необходимо перенести sshd, если Вы интересны в безопасном из демона.

1
27.01.2020, 20:35

Я использую прерывание tar в iptables. Слишком много неудавшихся входов в систему пытаются, и необходимо перейти к реальной машине.

10 раз за 15 минут и Вы помещены в черный список.
9 раз за 10 минут и Вы помещены в черный список.
6 раз за 5 минут и Вы помещены в черный список.

Корректируйтесь соответственно!

#
# - Black List
#
-A BLACKLIST -m recent --name blacklist --set
-A BLACKLIST -j LOG --log-level 4 --log-prefix "TAR-TRAP: "
-A BLACKLIST -j DROP
#
# - SSH Tar Trap
#
-A FIREWALL -p tcp --dport ssh -m state --state NEW -j TAR-TRAP
#
-A TAR-TRAP -m recent --update --name blacklist --seconds 900 --hitcount 1 -j LOG --log-level 4 --log-prefix "BANNED: "
-A TAR-TRAP -m recent --update --name blacklist --seconds 900 --hitcount 1 -j DROP
-A TAR-TRAP -m recent --set --name strike1
-A TAR-TRAP -m recent --set --name strike2
-A TAR-TRAP -m recent --set --name strike3
-A TAR-TRAP -m recent --update --name strike1 --seconds 300 --hitcount 6 -j LOG --log-level 4 --log-prefix "IPT TAR1: "
-A TAR-TRAP -m recent --update --name strike1 --seconds 300 --hitcount 6 -j BLACKLIST
-A TAR-TRAP -m recent --update --name strike2 --seconds 600 --hitcount 9 -j LOG --log-level 4 --log-prefix "IPT TAR2: "
-A TAR-TRAP -m recent --update --name strike2 --seconds 600 --hitcount 9 -j BLACKLIST
-A TAR-TRAP -m recent --update --name strike3 --seconds 900 --hitcount 10 -j LOG --log-level 4 --log-prefix "IPT TAR3: "
-A TAR-TRAP -m recent --update --name strike3 --seconds 900 --hitcount 10 -j BLACKLIST
-A TAR-TRAP -j ACCEPT
#
0
27.01.2020, 20:35

Можно сделать правило как это к соединению SSH блока от определенных исходных IP-адресов. Диапазон IP мог быть общедоступным или частным.

$ iptables -A INPUT -p tcp -s IP_Range --dport 22 -j ACCEPT

Как пример, можно использовать этого для частной сети

$ iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 22 -j ACCEPT

Можно также использовать tcpwrappers для управления ssh доступом на песнях. TCPwrappers используют комбинацию для/etc/hosts.allow и/etc/hosts.deny файлов. Следующий пример ниже шоу для установки управления доступом, которые позволяют получать доступ к sshd от 10.0.0.0/24.

$ vim /etc/hosts.deny
sshd: ALL
$ vim /etc/hosts.allow
sshd: 10.0.0.

Можно также сделать ssh демона для слушания другого порта кроме 22.

0
27.01.2020, 20:35

Теги

Похожие вопросы