SSH: как лучше заменить порт

SLAX, Deep Style, ZenWalk

Модератор: Модераторы разделов

Ответить
Аватара пользователя
UnixNoob
Сообщения: 1367
ОС: Slackware

SSH: как лучше заменить порт

Сообщение UnixNoob »

Приветствую. Возникла потребность использовать ssh для github/gitlab и соответственно как-то это обезопасить.
Но вариантов установки порта я так понимаю несколько, ручной, какой-то рандомный и с еще дополнительными хитростями.
К примеру в руководстве по ssh в wiki есть такой вариант.
Добавить в rc.local следующий скрипт rc.ssh_hide:

Код: Выделить всё

    #!/bin/bash
     
    ######First, set SSHD back to the default port 22. 
    ######Next, figure out what port or ports you want to do SSH over. 
    ######Were going to use 99, 88, and 8889 here.
    ######Now we take care of the Hypothetical Evil Unprivileged User 
    ######by not accepting anything over those ports in the first place. 
    ######This is only effective for port 8889 but well do all three ports for the sake of completeness.
     
    /usr/sbin/iptables -t filter -A INPUT -p tcp -m multiport --dports 99,88,8889 -j REJECT --reject-with tcp-reset
     
    ######Then, pick a number between 1 and 4294967295 Ill use 0x13F ()
    ######Were going to tell iptables to reject anything without this mark coming into port 22.
     
    /usr/sbin/iptables -t filter -A INPUT -p tcp -m tcp --dport 22 -m connmark ! --mark 0x13F -j REJECT --reject-with tcp-reset
     
    ######Now well tell iptables what ports we will accept for ssh.
     
    /usr/sbin/iptables -t filter -A FORWARD -p tcp -m multiport --dports 99,88,8889 -j ACCEPT
     
    ######In the mangle table we slap our mark on these packets.
     
    /usr/sbin/iptables -t mangle -A PREROUTING -p tcp -m multiport --dports 99,88,8889 -j CONNMARK --set-mark 0x13F
     
    ######Finally in the nat table we tell iptables to send the marked packets back to port 22
     
    /usr/sbin/iptables -t nat -A PREROUTING -p tcp -m multiport --dport 99,88,8889 -j REDIRECT --to-ports 22
     
    exit 0


Что он делает я примерно понял, по описанию.
What it is doing is making it look like you changed the port ssh is using and provide some additional security. What happens is scanners will continue to see port 22 open and try to go there while your server drops those packets, because the header is not mangled. Real packets come in on port 8889 and are redirected by iptables to port 22 with mangle in the header so they don't get dropped.
Но я не могу понять это хороший способ или плохой и достаточно просто руками указать не стандартный порт и не заморачиваться. Хотелось бы узнать что более опытные пользователи думают на счет этого и как поступают для обеспечения безопасности ssh.
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
Спасибо сказали:
Аватара пользователя
chitatel
Сообщения: 2063

Re: SSH: как лучше заменить порт

Сообщение chitatel »

UnixNoob писал:
14.04.2021 14:44
достаточно просто руками указать не стандартный порт и не заморачиваться.
IMHO.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: SSH: как лучше заменить порт

Сообщение Bizdelnick »

UnixNoob писал:
14.04.2021 14:44
Возникла потребность использовать ssh для github/gitlab
В смысле, Вам клиент нужен? Ну так и используйте клиент, сервер не устанавливайте или не запускайте, если в slackware невозможно установить клиент отдельно.

P. S. Смена порта никакого отношения к безопасности не имеет. Тех, кто её практикует в надежде защититься от взлома, надо гнать из профессии. А делать это посредством iptables — вообще за гранью добра и зла, как и пихать костыли в rc.local.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
chitatel
Сообщения: 2063

Re: SSH: как лучше заменить порт

Сообщение chitatel »

Bizdelnick писал:
14.04.2021 14:53
Смена порта никакого отношения к безопасности не имеет. Тех, кто её практикует, надо гнать из профессии.
Я практикую. Выгнать меня из профессии невозможно, ибо я не в ней. Если количество пользователей ограничено, то изменение порта не вызывает проблем. Если потенциальных пользователей много, то да, многие/большинство будут по умолчанию стучаться в порт по умолчанию.

Можно использовать port knocking ещё, но опять - если много потенциальных клиентов ssh, могут быть недовольства, бунты и анархизм.

https://habr.com/ru/post/179219/
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: SSH: как лучше заменить порт

Сообщение Bizdelnick »

chitatel писал:
14.04.2021 15:02
Если количество пользователей ограничено, то изменение порта не вызывает проблем.
Дело не в проблемах, а в неоправданном ожидании, что смена порта как-то повысит безопасность. Не повысит. Просканировать порты и найти, на котором отвечает ssh, дело нескольких секунд (если не предприняты меры по предотвращению сканирования, но ими никто не заморачивается, да и они никаких гарантий дать не могут, просто времени потребуется побольше).
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5282
ОС: Gentoo

Re: SSH: как лучше заменить порт

Сообщение /dev/random »

Bizdelnick писал:
14.04.2021 14:53
Смена порта никакого отношения к безопасности не имеет. Тех, кто её практикует, надо гнать из профессии.
С первым согласен, со вторым - нет. Смена порта уменьшает размер логов, если их потребуется прочитать. Кроме того, некоторые провайдерские роутеры почему-то блокируют ssh-подключения на стандартный порт не только снаружи внутрь, но и изнутри наружу.
Спасибо сказали:
Аватара пользователя
UnixNoob
Сообщения: 1367
ОС: Slackware

Re: SSH: как лучше заменить порт

Сообщение UnixNoob »

Bizdelnick писал:
14.04.2021 14:53
В смысле, Вам клиент нужен? Ну так и используйте клиент, сервер не устанавливайте или не запускайте, если в slackware невозможно установить клиент отдельно.
Подключение с использованием ssh-аутентификации, через консоль. Или я что-то не так понимаю под этим?
Bizdelnick писал:
14.04.2021 14:53
P. S. Смена порта никакого отношения к безопасности не имеет. Тех, кто её практикует в надежде защититься от взлома, надо гнать из профессии. А делать это посредством iptables — вообще за гранью добра и зла.
А что имеет? Есть у вас на примете хорошая книга с практическими рекомендациями?
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: SSH: как лучше заменить порт

Сообщение Bizdelnick »

UnixNoob писал:
14.04.2021 15:05
Подключение с использованием ssh-аутентификации, через консоль. Или я что-то не так понимаю под этим?
Подключение откуда куда? С Вашей машины на удалённый сервер (github, gitlab)? Для этого не нужен работающий sshd на Вашей машине.
UnixNoob писал:
14.04.2021 15:05
А что имеет? Есть у вас на примете хорошая книга с практическими рекомендациями?
Нет, книги не знаю, к сожалению. Хотя таких наверняка немало.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
bars
Сообщения: 917
ОС: BSD/LINUX
Контактная информация:

Re: SSH: как лучше заменить порт

Сообщение bars »

Большая часть ботов ломится именно на 22 порт.
Мое мнение, лучше уходить со стандартного порта.
А лучше указать статические разрешения в фаерволе для конекта в ssh.
Или поместить его за впн.
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Аватара пользователя
UnixNoob
Сообщения: 1367
ОС: Slackware

Re: SSH: как лучше заменить порт

Сообщение UnixNoob »

Bizdelnick писал:
14.04.2021 15:11
Подключение откуда куда? С Вашей машины на удалённый сервер (github, gitlab)?
Да.
Bizdelnick писал:
14.04.2021 15:11
Для этого не нужен работающий sshd на Вашей машине.
Я что-то думал оно одно без другого не существует.
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: SSH: как лучше заменить порт

Сообщение Bizdelnick »

UnixNoob писал:
14.04.2021 15:22
Я что-то думал оно одно без другого не существует.
Прекрасно существует. SSH — обычный клиент-серверный протокол, на Вашей стороне — клиент (ssh), на удалённой — сервер (sshd).
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
UnixNoob
Сообщения: 1367
ОС: Slackware

Re: SSH: как лучше заменить порт

Сообщение UnixNoob »

Bizdelnick писал:
14.04.2021 15:26
Прекрасно существует. SSH — обычный клиент-серверный протокол, на Вашей стороне — клиент (ssh), на удалённой — сервер (sshd).
Т.е менять порт у себя не имеет смысла, т.к в данном случае на удаленном сервере (github) выставлен свой порт?
Сбило с толку, что при использовании команды git ssh, есть возможность указывать порт.
Получается что оно нужно, когда я поднимаю свой сервер gitlab и настраиваю соответственно sshd сам?
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: SSH: как лучше заменить порт

Сообщение Bizdelnick »

bars писал:
14.04.2021 15:14
Большая часть ботов ломится именно на 22 порт.
Да и пускай ломится.

Код: Выделить всё

PasswordAuthentication no
И всех дел. А чтобы в логи не гадили — fail2ban или sshguard.
Добавлено (15:37):
UnixNoob писал:
14.04.2021 15:35
Т.е менять порт у себя не имеет смысла, т.к в данном случае на удаленном сервере (github) выставлен свой порт?
Не имеет смысла вообще запускать у себя sshd (у которого, собственно, и советуют менять порт).
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: SSH: как лучше заменить порт

Сообщение Hephaestus »

Bizdelnick писал:
14.04.2021 15:04
Просканировать порты и найти, на котором отвечает ssh, дело нескольких секунд
Вопрос спорный, я бы сказал.
С одной стороны есть мысль (не моя), что только root может проверять порты с номерами меньше 1024, в отличие от более высоких номеров, поэтому даже если менять порт на другой, то в пределах первых 1024.
С другой стороны, просканировать несколько десятков тысяч портов в поисках запущенного sshd (неизвестно же, запущен он вообще или нет) -- это всё же несколько более затратно, чем не сканировать вообще ничего (если порт стандартный).
Имеет ли смена порта отношение к безопасности? Ну как одна из мер -- почему бы и нет?
В конце концов, рекомендация по смене порта возникла не на пустом месте.
UnixNoob писал:
14.04.2021 15:22
Я что-то думал оно одно без другого не существует.
Я не знаю, как в других дистрах, а в слаке действительно клиент и сервер живут в одном пакете.
То есть установить клиент и сервер по отдельности не получится. В этом смысле одно без другого не существует, да. Но запускать сервер совершенно необязательно. И даже вредно, особенно, если Вы не знаете, что это и зачем.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: SSH: как лучше заменить порт

Сообщение Bizdelnick »

Hephaestus писал:
14.04.2021 22:24
С одной стороны есть мысль (не моя), что только root может проверять порты с номерами меньше 1024
Чушь. Только root может слушать локальный порт с таким номером, а подключиться к удалённому — без проблем. Странно, что приходится такую вещь объяснять. Вы же подключаетесь тем же ssh на 22 порт, браузером на 80 и 443 порты и т. д. от непривилегированного пользователя.
Hephaestus писал:
14.04.2021 22:24
просканировать несколько десятков тысяч портов в поисках запущенного sshd (неизвестно же, запущен он вообще или нет) -- это всё же несколько более затратно, чем не сканировать вообще ничего
Затраты ерундовые. Если не вставлять таймауты, чтобы обойти хитрые средства обнаружения сканирования портов (которых в большинстве случаев всё равно нет), можно проверять их параллельно. Ограничивает тут только лимит на число открытых файловых дескрипторов. Пусть это 1024 (у меня по умолчанию так), значит надо 64 прохода на весь диапазон. Если на большинстве портов пакеты дропаются, придётся подождать таймаута, но больше секунды не имеет смысла. Выходит, потребуется около минуты при жёстких настройках файрвола (по факту для sshd вряд ли используется слишком большой номер порта, и если сразу прервать сканирование при обнаружении, понадобится в разы меньше времени). При этом сам брутфорс занимает часы, дни, недели. А вычислительные ресурсы при сканировании и вовсе не используются, большую часть времени сканер будет просто ждать ответа.
Hephaestus писал:
14.04.2021 22:24
В конце концов, рекомендация по смене порта возникла не на пустом месте.
Вы как будто только что веб для себя открыли. Он просто полон рекомендаций, возникших на пустом месте. Кто-то подумал «почему бы не попробовать сделать так», сделал, ему показалось, что он получил какой-то результат, и тут же выложил свеженький «лайфхак». А хомячки и копивратели кинулись ретранслировать, попутно искажая и без того сомнительный смыcл.
Hephaestus писал:
14.04.2021 22:24
Я не знаю, как в других дистрах, а в слаке действительно клиент и сервер живут в одном пакете.
Они живут в разных пакетах во всех известных мне дистрибутивах, где пакетная система в принципе позволяет разнести по разным пакетам файлы, полученные из одного архива исходников. То есть едва ли не во всех, кроме слаки (хм, что там с арчем? я про его пакеты не в курсе совсем).
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: SSH: как лучше заменить порт

Сообщение Hephaestus »

Bizdelnick писал:
14.04.2021 22:53
Только root может слушать локальный порт с таким номером
Да. Это я при переводе с английского смысл фразы не уловил.
Bizdelnick писал:
14.04.2021 22:53
можно проверять их параллельно
Ну, разве что параллельно.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
azsx
Сообщения: 3684
ОС: calculate linux, debian, ubuntu

Re: SSH: как лучше заменить порт

Сообщение azsx »

Есть ещё "бумажная безопасность". Скан портов почти запрещён законодательно, то есть посадив ssh на другой порт при скане портов человек автоматом становится злоумышленником. Он уже проводит разведку, по сути пентест, должен иметь лицензию, подписанные бумаги сертификата. А если просто по 22 делает попытку подключения и не вводит логин с паролем, то не становится.
Но в целом я согласен. Заходить надо по паролю, ставить файл2бан, думать о правах зашедшего с мира человека (сертификаты копируются же).
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: SSH: как лучше заменить порт

Сообщение Bizdelnick »

azsx писал(а):
15.04.2021 06:07
Скан портов почти запрещён законодательно
Что значит «почти запрещён»? И пруф на закон, пожалуйста, дайте. А то я регулярно nmap'ом пользуюсь, может, пора идти явку с повинной писать?
azsx писал(а):
15.04.2021 06:07
Заходить надо по паролю
Вот это как раз не надо.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: SSH: как лучше заменить порт

Сообщение Hephaestus »

Я вопросом портов в ssh вплотную не интересовался. Беглый поиск по Сети не вывел меня на какое-либо внятное (аргументированное) обсуждение с рассмотрением "за" и "против". Во всех встретившихся мне материалах в Сети, в которых рекомендуют сменить порт, указывается одна и та же причина: превентивная защита от брутфорса, снижение риска брутфорса (это не единственная мера, но одна из). В принципе, своя правда в этом есть: если бот стукнулся в порт 22, ничего там не обнаружил и поскакал дальше, то такие ситуации смена порта поможет отсеять.

Нужно ли сторонников такой точки зрения "гнать из профессии", я судить не берусь. Среди встретившихся мне материалов такие рекомендации были, например, на сайте конторы, предоставляющей VPS. Означает ли, что сотрудники данной конторы профнепригодны? Понятия не имею.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
azsx
Сообщения: 3684
ОС: calculate linux, debian, ubuntu

Re: SSH: как лучше заменить порт

Сообщение azsx »

Bizdelnick писал:
15.04.2021 10:34
пруф на закон,
http://www.consultant.ru/document/cons_doc_LAW_199737/81a490b2e0678e60f42e2340dc8a9491db03cec1/
Мне дела искать лень, но да. За скан портов люди в рф условные сроки получали.
Bizdelnick писал:
15.04.2021 10:34
как раз не надо.
описался по фрейду. Хотел написать "вход по сертификату", даже написал, что сертификат могут скопировать. А написал про пароль. Эх я.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: SSH: как лучше заменить порт

Сообщение Bizdelnick »

azsx писал(а):
15.04.2021 11:34
http://www.consultant.ru/document/cons_doc_LAW_199737/81a490b2e0678e60f42e2340dc8a9491db03cec1/
Мне дела искать лень, но да. За скан портов люди в рф условные сроки получали.
Погодите, условные сроки дают по УК. А тут лицензирование отдельных видов деятельности. То есть я, не имея лицензии, не имею права оказывать услуги пентестинга. Вообще другая ситуация. За нарушение административка какая-то, по идее, должна быть, типа штрафа. Так что пруф не канает.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
azsx
Сообщения: 3684
ОС: calculate linux, debian, ubuntu

Re: SSH: как лучше заменить порт

Сообщение azsx »

Bizdelnick писал:
15.04.2021 12:04
Так что пруф не канает.
ясно, вам видней.
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: SSH: как лучше заменить порт

Сообщение bormant »

Bizdelnick писал:
14.04.2021 22:53
... пакетная система в принципе позволяет разнести по разным пакетам файлы, полученные из одного архива исходников. То есть едва ли не во всех, кроме слаки
Пакетная система слаки не имеет ограничений при разнесении по разным пакетам файлов, полученных из одного архива исходников. Уточняю на всякий случай, ибо из процитированного фрагмента могло показаться обратное. Примеры таких пакетов есть и в основном дереве, и среди сторонних источников. Формирование в Slackware пакетов преимущественно без разнесения по разным пакетам файлов одного архива исходников с особенностями пакетной системы не связано.
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 900
ОС: debian, fedora (i3-wm)

Re: SSH: как лучше заменить порт

Сообщение olecya »

Думаю все таки есть смысл выносить порт за пределы 1024 (за дефолтный диапазон сканирования), но при этом желательно на 22 поставить ловушку или просто повесить банер ssh сервера. Помнится была ловушка "хонитинипот" работала через суперсервер, но сейчас можно настроить прослушку через системд
П.С. Не для публичного сервиса
Спасибо сказали:
Ответить