Как я могу утвердить определенные компьютеры на ssh на машине с отключенной аутентификацией пароля?

Я предполагаю, что вы имели в виду вход в SSH? Поместите следующую строку в /etc/ssh/sshd_config:

PermitRootLogin no

Если вы хотите, чтобы определенные пользователи не вошли в систему, поместите это в файл конфигурации:

DenyUsers root

черный список. Белый список обычно предпочтительнее. Если вашей компании необходимо разрешить пользователям rob и admin войти в систему на сервере, используйте следующую конфигурационную директиву:

AllowUsers rob admin

После внесения изменений в конфигурационный файл перезапустите службу ssh с помощью команды :

sudo service ssh restart

См. также страницу руководства.

4
задан 6 July 2011 в 04:37

16 ответов

Для каждого пользователя, которому вы хотите иметь доступ к серверу, запустите его в терминале:

ssh-keygen
ssh-copy-id <username>@<serverIPorDNSname>

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

Первая команда создает ключ ssh для текущего пользователя, на котором он запущен. Вторая команда ssh находится на сервере и добавляет ключ текущего пользователя к списку серверов, кому разрешено входить в систему. Поскольку ssh-copy-id использует ssh, вам нужно будет сделать это до того, как вы отключите логины для входа в систему.

Ключи SSH - две совпадающие половины. Одна половина рассказана всем, другая - в секрете. Используя математический алгоритм, общественная половина может использоваться для дешифрования данных, зашифрованных с помощью закрытого ключа. Если данные успешно дешифруются с открытым ключом, вы, несомненно, знаете, что это была закрытая половина ключа, который зашифровал его. Поэтому, когда вы входите в систему с помощью ssh-ключа, клиент отправляет сообщение (зашифрованное с помощью закрытого ключа), которое в основном говорит «впусти меня».

ssh-copy-id (с помощью ssh) копирует общественную половину в список серверов из списка какие ключи разрешены для входа в систему (этот список хранится в /home/<username>/.ssh/authorized_keys2, или в случае с root в /root/.ssh/authorized_keys2). Если вы уже отключили аутентификацию по паролю, вы все равно можете добавить компьютер. Вам просто нужно скопировать открытый ключ (на /home/username/.ssh/id_rsa.pub на клиентском компьютере) на что-то вроде USB-накопителя, а затем добавить содержимое id_rsa.pub в конец / home / & lt ; имя пользователя> /. ssh / authorized_keys2 на сервере. (Вы можете сделать это, выполнив команду, например cat /media/USB/stick/path/to/id_rsa.pub >>/home/<username>/.ssh/authorized_keys2 на сервере.)

7
ответ дан 25 May 2018 в 19:57
  • 1
    Это все хорошо, за исключением того, что это не гарантирует, что только компьютер с созданным вами ключом будет иметь доступ. Кто-то злонамеренный или плохо информированный может скопировать ваш секретный ключ без пароля в другое место и сможет его использовать. – asoundmove 6 July 2011 в 06:34
  • 2
    @asoundmove Это только если они попадут на ваш компьютер, и вы не указали парольную фразу. – Azendale 6 July 2011 в 09:42
  • 3
    +1, пример cat /path/to/id_rsa.pub >>/home/<username>/.ssh/authorized_keys2 может быть хорошим, чтобы показать в ответе. – enzotib 6 July 2011 в 12:59
  • 4
    Я сделал это, выполнив инструкции в linuxproblem.org/art_9.html , чтобы включить открытый ключ RSA компьютера в .ssh / authorized_keys на компьютере под управлением OpenSSH-сервера, прежде чем отключать пароль аутентификация на нем. – Daryl Spitzer 7 July 2011 в 01:36
  • 5
    Я не понимаю, почему @enzotib удалил мой ответ (теперь в предыдущем комментарии) как «не ответ». – Daryl Spitzer 7 July 2011 в 01:37

Для каждого пользователя, которому вы хотите иметь доступ к серверу, запустите его в терминале:

ssh-keygen ssh-copy-id <username>@<serverIPorDNSname>

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

Первая команда создает ключ ssh для текущего пользователя, на котором он запущен. Вторая команда ssh находится на сервере и добавляет ключ текущего пользователя к списку серверов, кому разрешено входить в систему. Поскольку ssh-copy-id использует ssh, вам нужно будет сделать это до того, как вы отключите логины для входа в систему.

Ключи SSH - две совпадающие половины. Одна половина рассказана всем, другая - в секрете. Используя математический алгоритм, общественная половина может использоваться для дешифрования данных, зашифрованных с помощью закрытого ключа. Если данные успешно дешифруются с открытым ключом, вы, несомненно, знаете, что это была закрытая половина ключа, который зашифровал его. Поэтому, когда вы входите в систему с помощью ssh-ключа, клиент отправляет сообщение (зашифрованное с помощью закрытого ключа), которое в основном говорит «впусти меня».

ssh-copy-id (с помощью ssh) копирует общественную половину в список серверов из списка какие ключи разрешены для входа в систему (этот список хранится в /home/<username>/.ssh/authorized_keys2, или в случае с root в /root/.ssh/authorized_keys2). Если вы уже отключили аутентификацию по паролю, вы все равно можете добавить компьютер. Вам просто нужно скопировать открытый ключ (на /home/username/.ssh/id_rsa.pub на клиентском компьютере) на что-то вроде USB-накопителя, а затем добавить содержимое id_rsa.pub в конец / home / & lt ; имя пользователя> /. ssh / authorized_keys2 на сервере. (Вы можете сделать это, выполнив команду, например cat /media/USB/stick/path/to/id_rsa.pub >>/home/<username>/.ssh/authorized_keys2 на сервере.)

7
ответ дан 25 July 2018 в 21:37

Для каждого пользователя, которому вы хотите иметь доступ к серверу, запустите его в терминале:

ssh-keygen ssh-copy-id <username>@<serverIPorDNSname>

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

Первая команда создает ключ ssh для текущего пользователя, на котором он запущен. Вторая команда ssh находится на сервере и добавляет ключ текущего пользователя к списку серверов, кому разрешено входить в систему. Поскольку ssh-copy-id использует ssh, вам нужно будет сделать это до того, как вы отключите логины для входа в систему.

Ключи SSH - две совпадающие половины. Одна половина рассказана всем, другая - в секрете. Используя математический алгоритм, общественная половина может использоваться для дешифрования данных, зашифрованных с помощью закрытого ключа. Если данные успешно дешифруются с открытым ключом, вы, несомненно, знаете, что это была закрытая половина ключа, который зашифровал его. Поэтому, когда вы входите в систему с помощью ssh-ключа, клиент отправляет сообщение (зашифрованное с помощью закрытого ключа), которое в основном говорит «впусти меня».

ssh-copy-id (с помощью ssh) копирует общественную половину в список серверов из списка какие ключи разрешены для входа в систему (этот список хранится в /home/<username>/.ssh/authorized_keys2, или в случае с root в /root/.ssh/authorized_keys2). Если вы уже отключили аутентификацию по паролю, вы все равно можете добавить компьютер. Вам просто нужно скопировать открытый ключ (на /home/username/.ssh/id_rsa.pub на клиентском компьютере) на что-то вроде USB-накопителя, а затем добавить содержимое id_rsa.pub в конец / home / & lt ; имя пользователя> /. ssh / authorized_keys2 на сервере. (Вы можете сделать это, выполнив команду, например cat /media/USB/stick/path/to/id_rsa.pub >>/home/<username>/.ssh/authorized_keys2 на сервере.)

7
ответ дан 2 August 2018 в 03:14

Для каждого пользователя, которому вы хотите иметь доступ к серверу, запустите его в терминале:

ssh-keygen ssh-copy-id <username>@<serverIPorDNSname>

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

Первая команда создает ключ ssh для текущего пользователя, на котором он запущен. Вторая команда ssh находится на сервере и добавляет ключ текущего пользователя к списку серверов, кому разрешено входить в систему. Поскольку ssh-copy-id использует ssh, вам нужно будет сделать это до того, как вы отключите логины для входа в систему.

Ключи SSH - две совпадающие половины. Одна половина рассказана всем, другая - в секрете. Используя математический алгоритм, общественная половина может использоваться для дешифрования данных, зашифрованных с помощью закрытого ключа. Если данные успешно дешифруются с открытым ключом, вы, несомненно, знаете, что это была закрытая половина ключа, который зашифровал его. Поэтому, когда вы входите в систему с помощью ssh-ключа, клиент отправляет сообщение (зашифрованное с помощью закрытого ключа), которое в основном говорит «впусти меня».

ssh-copy-id (с помощью ssh) копирует общественную половину в список серверов из списка какие ключи разрешены для входа в систему (этот список хранится в /home/<username>/.ssh/authorized_keys2, или в случае с root в /root/.ssh/authorized_keys2). Если вы уже отключили аутентификацию по паролю, вы все равно можете добавить компьютер. Вам просто нужно скопировать открытый ключ (на /home/username/.ssh/id_rsa.pub на клиентском компьютере) на что-то вроде USB-накопителя, а затем добавить содержимое id_rsa.pub в конец / home / & lt ; имя пользователя> /. ssh / authorized_keys2 на сервере. (Вы можете сделать это, выполнив команду, например cat /media/USB/stick/path/to/id_rsa.pub >>/home/<username>/.ssh/authorized_keys2 на сервере.)

7
ответ дан 4 August 2018 в 19:08

Для каждого пользователя, которому вы хотите иметь доступ к серверу, запустите его в терминале:

ssh-keygen ssh-copy-id <username>@<serverIPorDNSname>

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

Первая команда создает ключ ssh для текущего пользователя, на котором он запущен. Вторая команда ssh находится на сервере и добавляет ключ текущего пользователя к списку серверов, кому разрешено входить в систему. Поскольку ssh-copy-id использует ssh, вам нужно будет сделать это до того, как вы отключите логины для входа в систему.

Ключи SSH - две совпадающие половины. Одна половина рассказана всем, другая - в секрете. Используя математический алгоритм, общественная половина может использоваться для дешифрования данных, зашифрованных с помощью закрытого ключа. Если данные успешно дешифруются с открытым ключом, вы, несомненно, знаете, что это была закрытая половина ключа, который зашифровал его. Поэтому, когда вы входите в систему с помощью ssh-ключа, клиент отправляет сообщение (зашифрованное с помощью закрытого ключа), которое в основном говорит «впусти меня».

ssh-copy-id (с помощью ssh) копирует общественную половину в список серверов из списка какие ключи разрешены для входа в систему (этот список хранится в /home/<username>/.ssh/authorized_keys2, или в случае с root в /root/.ssh/authorized_keys2). Если вы уже отключили аутентификацию по паролю, вы все равно можете добавить компьютер. Вам просто нужно скопировать открытый ключ (на /home/username/.ssh/id_rsa.pub на клиентском компьютере) на что-то вроде USB-накопителя, а затем добавить содержимое id_rsa.pub в конец / home / & lt ; имя пользователя> /. ssh / authorized_keys2 на сервере. (Вы можете сделать это, выполнив команду, например cat /media/USB/stick/path/to/id_rsa.pub >>/home/<username>/.ssh/authorized_keys2 на сервере.)

7
ответ дан 6 August 2018 в 03:25

Для каждого пользователя, которому вы хотите иметь доступ к серверу, запустите его в терминале:

ssh-keygen ssh-copy-id <username>@<serverIPorDNSname>

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

Первая команда создает ключ ssh для текущего пользователя, на котором он запущен. Вторая команда ssh находится на сервере и добавляет ключ текущего пользователя к списку серверов, кому разрешено входить в систему. Поскольку ssh-copy-id использует ssh, вам нужно будет сделать это до того, как вы отключите логины для входа в систему.

Ключи SSH - две совпадающие половины. Одна половина рассказана всем, другая - в секрете. Используя математический алгоритм, общественная половина может использоваться для дешифрования данных, зашифрованных с помощью закрытого ключа. Если данные успешно дешифруются с открытым ключом, вы, несомненно, знаете, что это была закрытая половина ключа, который зашифровал его. Поэтому, когда вы входите в систему с помощью ssh-ключа, клиент отправляет сообщение (зашифрованное с помощью закрытого ключа), которое в основном говорит «впусти меня».

ssh-copy-id (с помощью ssh) копирует общественную половину в список серверов из списка какие ключи разрешены для входа в систему (этот список хранится в /home/<username>/.ssh/authorized_keys2, или в случае с root в /root/.ssh/authorized_keys2). Если вы уже отключили аутентификацию по паролю, вы все равно можете добавить компьютер. Вам просто нужно скопировать открытый ключ (на /home/username/.ssh/id_rsa.pub на клиентском компьютере) на что-то вроде USB-накопителя, а затем добавить содержимое id_rsa.pub в конец / home / & lt ; имя пользователя> /. ssh / authorized_keys2 на сервере. (Вы можете сделать это, выполнив команду, например cat /media/USB/stick/path/to/id_rsa.pub >>/home/<username>/.ssh/authorized_keys2 на сервере.)

7
ответ дан 7 August 2018 в 21:12

Для каждого пользователя, которому вы хотите иметь доступ к серверу, выполните в терминале:

  ssh-keygen ssh-copy-id & lt; имя_пользователя & gt; @ & lt; serverIPorDNSname & gt;   

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

Первая команда создает ключ ssh для текущего пользователя, на котором он запущен. Вторая команда ssh находится на сервере и добавляет ключ текущего пользователя к списку серверов, кому разрешено входить в систему. Поскольку ssh-copy-id использует ssh, вам нужно будет сделать это, прежде чем отключать логины для входа в систему.

Ключи SSH - это две совпадающие половины. Одна половина рассказана всем, другая - в секрете. Используя математический алгоритм, общественная половина может использоваться для дешифрования данных, зашифрованных с помощью закрытого ключа. Если данные успешно дешифруются с открытым ключом, вы, несомненно, знаете, что это была закрытая половина ключа, который зашифровал его. Поэтому, когда вы входите в систему с помощью ssh-ключа, клиент отправляет сообщение (зашифрованное с помощью закрытого ключа), которое в основном говорит «впусти меня». Сервер проверяет использование открытого ключа, и если открытый ключ находится в списке разрешенных компьютеров, вход успешно завершен.

ssh-copy-id (используя ssh) копирует общественную половину в список серверов какие ключи разрешены для входа в систему (этот список хранится в /home/<username>/.ssh/authorized_keys2, или в случае с root в /root/.ssh/authorized_keys2). Если вы уже отключили аутентификацию по паролю, вы все равно можете добавить компьютер. Вам просто нужно скопировать открытый ключ (на /home/username/.ssh/id_rsa.pub на клиентском компьютере) на что-то вроде USB-накопителя, а затем добавить содержимое id_rsa.pub в конец / home / & lt ; имя пользователя> /. ssh / authorized_keys2 на сервере. (Вы можете сделать это, выполнив команду, например cat /media/USB/stick/path/to/id_rsa.pub & gt; & gt; / home / & lt; имя пользователя & gt; /. Ssh / authorized_keys2 на сервере .)

7
ответ дан 10 August 2018 в 09:31

Для каждого пользователя, которому вы хотите иметь доступ к серверу, выполните в терминале:

  ssh-keygen ssh-copy-id & lt; имя_пользователя & gt; @ & lt; serverIPorDNSname & gt;   

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

Первая команда создает ключ ssh для текущего пользователя, на котором он запущен. Вторая команда ssh находится на сервере и добавляет ключ текущего пользователя к списку серверов, кому разрешено входить в систему. Поскольку ssh-copy-id использует ssh, вам нужно будет сделать это, прежде чем отключать логины для входа в систему.

Ключи SSH - это две совпадающие половины. Одна половина рассказана всем, другая - в секрете. Используя математический алгоритм, общественная половина может использоваться для дешифрования данных, зашифрованных с помощью закрытого ключа. Если данные успешно дешифруются с открытым ключом, вы, несомненно, знаете, что это была закрытая половина ключа, который зашифровал его. Поэтому, когда вы входите в систему с помощью ssh-ключа, клиент отправляет сообщение (зашифрованное с помощью закрытого ключа), которое в основном говорит «впусти меня». Сервер проверяет использование открытого ключа, и если открытый ключ находится в списке разрешенных компьютеров, вход успешно завершен.

ssh-copy-id (используя ssh) копирует общественную половину в список серверов какие ключи разрешены для входа в систему (этот список хранится в /home/<username>/.ssh/authorized_keys2, или в случае с root в /root/.ssh/authorized_keys2). Если вы уже отключили аутентификацию по паролю, вы все равно можете добавить компьютер. Вам просто нужно скопировать открытый ключ (на /home/username/.ssh/id_rsa.pub на клиентском компьютере) на что-то вроде USB-накопителя, а затем добавить содержимое id_rsa.pub в конец / home / & lt ; имя пользователя> /. ssh / authorized_keys2 на сервере. (Вы можете сделать это, выполнив команду, например cat /media/USB/stick/path/to/id_rsa.pub & gt; & gt; / home / & lt; имя пользователя & gt; /. Ssh / authorized_keys2 на сервере .)

7
ответ дан 13 August 2018 в 12:59
  • 1
    Это все хорошо, за исключением того, что это не гарантирует, что только компьютер с созданным вами ключом будет иметь доступ. Кто-то злонамеренный или плохо информированный может скопировать ваш секретный ключ без пароля в другое место и сможет его использовать. – asoundmove 6 July 2011 в 06:34
  • 2
    @asoundmove Это только если они попадут на ваш компьютер, и вы не указали парольную фразу. – Azendale 6 July 2011 в 09:42
  • 3
    +1, пример cat /path/to/id_rsa.pub & gt; / home / & lt; имя_пользователя & gt; /. Ssh / authorized_keys2 может быть хорошим, чтобы показать в ответе. – enzotib 6 July 2011 в 12:59
  • 4
    Я сделал это, выполнив инструкции в linuxproblem.org/art_9.html , чтобы включить открытый ключ RSA компьютера в .ssh / authorized_keys на компьютере под управлением OpenSSH-сервера, прежде чем отключать пароль аутентификация на нем. – Daryl Spitzer 7 July 2011 в 01:36
  • 5
    Я не понимаю, почему @enzotib удалил мой ответ (теперь в предыдущем комментарии) как «не ответ». – Daryl Spitzer 7 July 2011 в 01:37

Iptables

Если компьютеры имеют определенный ip-диапазон, вы можете использовать iptables для управления доступом. Iptables являются частью ядра. Вы можете управлять ими в файле /etc/iptables

# from /etc/iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
#
# loopback device
#
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
#
# all connections already established (started outgoing from my machine)
#
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# but SSH - restricted
#
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 --source 138.232.0.0/255.255.0.0 -j ACCEPT
#
# block all others (without answering - thus nobody is able to scan the network)
#
-A INPUT -p icmp --icmp-type echo-request -j DROP
-A RH-Firewall-1-INPUT -j DROP
COMMIT

. Интересной является строка:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 --source 111.111.0.0/255.255.0.0 -j ACCEPT

Prot 22 - это порт ssh по умолчанию. Если с вами машина отличается, измените ее. 111.111.0.0/255.255.0.0 -j ACCEPT означает, что он принимает все соединения, идущие от «111.111.foo.bar», с «foo» и «bar» - любые 3 цифры.

0
ответ дан 25 May 2018 в 19:57
  • 1
    -1. Используя этот подход, вполне возможно подорвать ваш IP-адрес и получить несанкционированный доступ. Этот подход неприемлем для целей аутентификации, хотя он может быть подходящим в качестве дополнительной линии защиты. Правильный подход к вопросу OP заключается в использовании аутентификации на основе ключа, как и в ответе Azendale. – Scott Severance 6 July 2011 в 13:11
  • 2
    @Scott, да, но это хорошее дополнение к ssh-ключам, поскольку ssh не контролирует, какие компьютеры инициируют запросы. Итак, +1. – asoundmove 6 July 2011 в 17:45
  • 3
    @SCott: И я никогда не думал, что это единственная линия обороны. У Ssh все еще будет свой собственный метод аутентификации – con-f-use 6 July 2011 в 17:51

Iptables

Если компьютеры имеют определенный ip-диапазон, вы можете использовать iptables для управления доступом. Iptables являются частью ядра. Вы можете управлять ими в файле /etc/iptables

# from /etc/iptables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT # # loopback device # -A RH-Firewall-1-INPUT -i lo -j ACCEPT # # all connections already established (started outgoing from my machine) # -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # # but SSH - restricted # -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 --source 138.232.0.0/255.255.0.0 -j ACCEPT # # block all others (without answering - thus nobody is able to scan the network) # -A INPUT -p icmp --icmp-type echo-request -j DROP -A RH-Firewall-1-INPUT -j DROP COMMIT

. Интересной является строка:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 --source 111.111.0.0/255.255.0.0 -j ACCEPT

Prot 22 - это порт ssh по умолчанию. Если с вами машина отличается, измените ее. 111.111.0.0/255.255.0.0 -j ACCEPT означает, что он принимает все соединения, идущие от «111.111.foo.bar», с «foo» и «bar» - любые 3 цифры.

0
ответ дан 25 July 2018 в 21:37
  • 1
    -1. Используя этот подход, вполне возможно подорвать ваш IP-адрес и получить несанкционированный доступ. Этот подход неприемлем для целей аутентификации, хотя он может быть подходящим в качестве дополнительной линии защиты. Правильный подход к вопросу OP заключается в использовании аутентификации на основе ключа, как и в ответе Azendale. – Scott Severance 6 July 2011 в 13:11
  • 2
    @Scott, да, но это хорошее дополнение к ssh-ключам, поскольку ssh не контролирует, какие компьютеры инициируют запросы. Итак, +1. – asoundmove 6 July 2011 в 17:45
  • 3
    @SCott: И я никогда не думал, что это единственная линия обороны. У Ssh все еще будет свой собственный метод аутентификации – con-f-use 6 July 2011 в 17:51

Iptables

Если компьютеры имеют определенный ip-диапазон, вы можете использовать iptables для управления доступом. Iptables являются частью ядра. Вы можете управлять ими в файле /etc/iptables

# from /etc/iptables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT # # loopback device # -A RH-Firewall-1-INPUT -i lo -j ACCEPT # # all connections already established (started outgoing from my machine) # -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # # but SSH - restricted # -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 --source 138.232.0.0/255.255.0.0 -j ACCEPT # # block all others (without answering - thus nobody is able to scan the network) # -A INPUT -p icmp --icmp-type echo-request -j DROP -A RH-Firewall-1-INPUT -j DROP COMMIT

. Интересной является строка:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 --source 111.111.0.0/255.255.0.0 -j ACCEPT

Prot 22 - это порт ssh по умолчанию. Если с вами машина отличается, измените ее. 111.111.0.0/255.255.0.0 -j ACCEPT означает, что он принимает все соединения, идущие от «111.111.foo.bar», с «foo» и «bar» - любые 3 цифры.

0
ответ дан 2 August 2018 в 03:14
  • 1
    -1. Используя этот подход, вполне возможно подорвать ваш IP-адрес и получить несанкционированный доступ. Этот подход неприемлем для целей аутентификации, хотя он может быть подходящим в качестве дополнительной линии защиты. Правильный подход к вопросу OP заключается в использовании аутентификации на основе ключа, как и в ответе Azendale. – Scott Severance 6 July 2011 в 13:11
  • 2
    @Scott, да, но это хорошее дополнение к ssh-ключам, поскольку ssh не контролирует, какие компьютеры инициируют запросы. Итак, +1. – asoundmove 6 July 2011 в 17:45
  • 3
    @SCott: И я никогда не думал, что это единственная линия обороны. У Ssh все еще будет свой собственный метод аутентификации – con-f-use 6 July 2011 в 17:51

Iptables

Если компьютеры имеют определенный ip-диапазон, вы можете использовать iptables для управления доступом. Iptables являются частью ядра. Вы можете управлять ими в файле /etc/iptables

# from /etc/iptables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT # # loopback device # -A RH-Firewall-1-INPUT -i lo -j ACCEPT # # all connections already established (started outgoing from my machine) # -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # # but SSH - restricted # -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 --source 138.232.0.0/255.255.0.0 -j ACCEPT # # block all others (without answering - thus nobody is able to scan the network) # -A INPUT -p icmp --icmp-type echo-request -j DROP -A RH-Firewall-1-INPUT -j DROP COMMIT

. Интересной является строка:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 --source 111.111.0.0/255.255.0.0 -j ACCEPT

Prot 22 - это порт ssh по умолчанию. Если с вами машина отличается, измените ее. 111.111.0.0/255.255.0.0 -j ACCEPT означает, что он принимает все соединения, идущие от «111.111.foo.bar», с «foo» и «bar» - любые 3 цифры.

0
ответ дан 4 August 2018 в 19:08
  • 1
    -1. Используя этот подход, вполне возможно подорвать ваш IP-адрес и получить несанкционированный доступ. Этот подход неприемлем для целей аутентификации, хотя он может быть подходящим в качестве дополнительной линии защиты. Правильный подход к вопросу OP заключается в использовании аутентификации на основе ключа, как и в ответе Azendale. – Scott Severance 6 July 2011 в 13:11
  • 2
    @Scott, да, но это хорошее дополнение к ssh-ключам, поскольку ssh не контролирует, какие компьютеры инициируют запросы. Итак, +1. – asoundmove 6 July 2011 в 17:45
  • 3
    @SCott: И я никогда не думал, что это единственная линия обороны. У Ssh все еще будет свой собственный метод аутентификации – con-f-use 6 July 2011 в 17:51

Iptables

Если компьютеры имеют определенный ip-диапазон, вы можете использовать iptables для управления доступом. Iptables являются частью ядра. Вы можете управлять ими в файле /etc/iptables

# from /etc/iptables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT # # loopback device # -A RH-Firewall-1-INPUT -i lo -j ACCEPT # # all connections already established (started outgoing from my machine) # -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # # but SSH - restricted # -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 --source 138.232.0.0/255.255.0.0 -j ACCEPT # # block all others (without answering - thus nobody is able to scan the network) # -A INPUT -p icmp --icmp-type echo-request -j DROP -A RH-Firewall-1-INPUT -j DROP COMMIT

. Интересной является строка:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 --source 111.111.0.0/255.255.0.0 -j ACCEPT

Prot 22 - это порт ssh по умолчанию. Если с вами машина отличается, измените ее. 111.111.0.0/255.255.0.0 -j ACCEPT означает, что он принимает все соединения, идущие от «111.111.foo.bar», с «foo» и «bar» - любые 3 цифры.

0
ответ дан 6 August 2018 в 03:25
  • 1
    -1. Используя этот подход, вполне возможно подорвать ваш IP-адрес и получить несанкционированный доступ. Этот подход неприемлем для целей аутентификации, хотя он может быть подходящим в качестве дополнительной линии защиты. Правильный подход к вопросу OP заключается в использовании аутентификации на основе ключа, как и в ответе Azendale. – Scott Severance 6 July 2011 в 13:11
  • 2
    @Scott, да, но это хорошее дополнение к ssh-ключам, поскольку ssh не контролирует, какие компьютеры инициируют запросы. Итак, +1. – asoundmove 6 July 2011 в 17:45
  • 3
    @SCott: И я никогда не думал, что это единственная линия обороны. У Ssh все еще будет свой собственный метод аутентификации – con-f-use 6 July 2011 в 17:51

Iptables

Если компьютеры имеют определенный ip-диапазон, вы можете использовать iptables для управления доступом. Iptables являются частью ядра. Вы можете управлять ими в файле /etc/iptables

# from /etc/iptables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT # # loopback device # -A RH-Firewall-1-INPUT -i lo -j ACCEPT # # all connections already established (started outgoing from my machine) # -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # # but SSH - restricted # -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 --source 138.232.0.0/255.255.0.0 -j ACCEPT # # block all others (without answering - thus nobody is able to scan the network) # -A INPUT -p icmp --icmp-type echo-request -j DROP -A RH-Firewall-1-INPUT -j DROP COMMIT

. Интересной является строка:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 --source 111.111.0.0/255.255.0.0 -j ACCEPT

Prot 22 - это порт ssh по умолчанию. Если с вами машина отличается, измените ее. 111.111.0.0/255.255.0.0 -j ACCEPT означает, что он принимает все соединения, идущие от «111.111.foo.bar», с «foo» и «bar» - любые 3 цифры.

0
ответ дан 7 August 2018 в 21:12
  • 1
    -1. Используя этот подход, вполне возможно подорвать ваш IP-адрес и получить несанкционированный доступ. Этот подход неприемлем для целей аутентификации, хотя он может быть подходящим в качестве дополнительной линии защиты. Правильный подход к вопросу OP заключается в использовании аутентификации на основе ключа, как и в ответе Azendale. – Scott Severance 6 July 2011 в 13:11
  • 2
    @Scott, да, но это хорошее дополнение к ssh-ключам, поскольку ssh не контролирует, какие компьютеры инициируют запросы. Итак, +1. – asoundmove 6 July 2011 в 17:45
  • 3
    @SCott: И я никогда не думал, что это единственная линия обороны. У Ssh все еще будет свой собственный метод аутентификации – con-f-use 6 July 2011 в 17:51

Iptables

Если компьютеры имеют определенный ip-диапазон, вы можете использовать iptables для управления доступом. Iptables являются частью ядра. Вы можете управлять ими в файле / etc / iptables

  # из / etc / iptables * filter: INPUT ACCEPT [0: 0]: FORWARD ACCEPT [0:  0]: OUTPUT ACCEPT [0: 0]: RH-Firewall-1-INPUT - [0: 0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT # #  loopback-устройство # -A RH-Firewall-1-INPUT -i lo -j ACCEPT # # все уже установленные соединения (запущен исходящий с моей машины) # -A RH-Firewall-1-INPUT -m state -state ESTABLISHED, RELATED  -j ACCEPT # #, но SSH - ограниченный # -A RH-Firewall-1-INPUT -m state -state NEW -m tcp -p tcp -dport 22 --source 138.232.0.0/255.255.0.0 -j ACCEPT #  # блокировать все остальные (без ответа - таким образом, никто не может сканировать сеть) # -A INPUT -p icmp -icmp-type echo-request -j DROP -A RH-Firewall-1-INPUT -j DROP COMMIT  

Интересной линией является следующая:

  -A RH-Firewall-1-INPUT -m state -state NEW -m tcp -p tcp -  dport 22 - источник 111.111.0.0/255.255.0.0 -j ACCEPT  

Prot 22 - это порт ssh по умолчанию. Если с вами машина отличается, измените ее. 111.111.0.0/255.255.0.0 -j ACCEPT означает, что он принимает все соединения, идущие от «111.111.foo.bar», причем «foo» и «bar» являются любыми 3 цифрами.

0
ответ дан 10 August 2018 в 09:31

Iptables

Если компьютеры имеют определенный ip-диапазон, вы можете использовать iptables для управления доступом. Iptables являются частью ядра. Вы можете управлять ими в файле / etc / iptables

  # из / etc / iptables * filter: INPUT ACCEPT [0: 0]: FORWARD ACCEPT [0:  0]: OUTPUT ACCEPT [0: 0]: RH-Firewall-1-INPUT - [0: 0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT # #  loopback-устройство # -A RH-Firewall-1-INPUT -i lo -j ACCEPT # # все уже установленные соединения (запущен исходящий с моей машины) # -A RH-Firewall-1-INPUT -m state -state ESTABLISHED, RELATED  -j ACCEPT # #, но SSH - ограниченный # -A RH-Firewall-1-INPUT -m state -state NEW -m tcp -p tcp -dport 22 --source 138.232.0.0/255.255.0.0 -j ACCEPT #  # блокировать все остальные (без ответа - таким образом, никто не может сканировать сеть) # -A INPUT -p icmp -icmp-type echo-request -j DROP -A RH-Firewall-1-INPUT -j DROP COMMIT  

Интересной линией является следующая:

  -A RH-Firewall-1-INPUT -m state -state NEW -m tcp -p tcp -  dport 22 - источник 111.111.0.0/255.255.0.0 -j ACCEPT  

Prot 22 - это порт ssh по умолчанию. Если с вами машина отличается, измените ее. 111.111.0.0/255.255.0.0 -j ACCEPT означает, что он принимает все соединения, идущие от «111.111.foo.bar», причем «foo» и «bar» являются любыми 3 цифрами.

0
ответ дан 13 August 2018 в 12:59
  • 1
    -1. Используя этот подход, вполне возможно подорвать ваш IP-адрес и получить несанкционированный доступ. Этот подход неприемлем для целей аутентификации, хотя он может быть подходящим в качестве дополнительной линии защиты. Правильный подход к вопросу OP заключается в использовании аутентификации на основе ключа, как и в ответе Azendale. – Scott Severance 6 July 2011 в 13:11
  • 2
    @Scott, да, но это хорошее дополнение к ssh-ключам, поскольку ssh не контролирует, какие компьютеры инициируют запросы. Итак, +1. – asoundmove 6 July 2011 в 17:45
  • 3
    @SCott: И я никогда не думал, что это единственная линия обороны. У Ssh все еще будет свой собственный метод аутентификации – con-f-use 6 July 2011 в 17:51

Другие вопросы по тегам:

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