Безопасно ли использовать большие номера портов? (re: затемнение веб-сервисов)
У меня небольшая домашняя сеть, и я пытаюсь сбалансировать потребность в безопасности и удобство. Самый безопасный способ обезопасить внутренние веб-серверы - это подключаться только с использованием VPN, но это кажется излишним для защиты удаленного веб-интерфейса DVR (например).
В качестве компромисса было бы лучше использовать очень большие номера портов? (например, пять цифр до 65531)
Я читал, что сканеры портов обычно сканируют только первые 10000 портов, поэтому использование очень больших номеров портов является более безопасным.
Это правда?
Есть ли лучшие способы защиты веб-серверов? (т. е. веб-приложения для приложений)
4 ответа
Я читал, что сканеры портов обычно сканируют только первые 10000 портов, поэтому использование очень больших номеров портов является более безопасным.
Многие люди верят в это. Я не.
Может быть, это немного более безопасно, но не намного. Порты с меньшими номерами встречаются чаще, поэтому некоторые сканеры будут искать их в первую очередь.
Если бы я был взломщиком, я бы сначала сканировал высокие порты, просто чтобы поймать людей, которые полагаются на этот метод в целях безопасности. Люди, которые полагаются на безопасность сквозь неясность, вероятно, плохо понимают безопасность и чаще забывают использовать другие методы безопасности. Следовательно, эти сервисы могут быть более уязвимыми и их легче взломать.
Некоторые сканеры используют это мнение, начинают с вершины и идут вниз по списку. Другие сканирования будут выбирать случайные порты во всем диапазоне, так что все порты имеют равные шансы на сканирование.
Попробуйте сами, используя NMAP. Запустите сканирование nmap для портов 1-10 000, найдите сервер HTTP и сравните его со сканированием, которое сканирует все порты 1-65,xxx. Вы увидите, что разница обычно составляет 3-10 минут. Если я делаю детальное сканирование, используя что-то вроде Nessus, разница иногда составляет 20-60 минут.
Хороший взломщик - терпеливый взломщик. Они будут ждать
Вы также можете использовать туннель ssh, если вы используете Linux на обоих концах:
ssh -f -N -L 9090:localhost:9090 user@remote-host
Например, это то, что я использую для переадресации порта 9090 на удаленном хосте на локальный порт 9090 для cherokee-admin
и я использую аналогичные настройки для других веб-интерфейсов. Таким способом вы можете защитить приложения, указав в конфигурации приложения, что они работают только на локальном хосте, т.е. 127.0.0.1
, Таким образом, они не доступны снаружи, но вы можете переслать их с ssh
, Проверьте man ssh
для дополнительных опций используется переадресация портов (включая X, которая может полностью решить вашу проблему другим способом).
Это может быть подходящим способом для достижения вашей цели без установки / настройки дополнительного программного обеспечения, в зависимости от ваших настроек.
Использование нечетных номеров портов не обеспечивает никакой безопасности, если только вы не заявляете, что это позволяет вам запускать приложение от имени пользователя без полномочий root.
Подобные вещи можно рассматривать как безопасность по неясности, но на самом деле это не безопасность.
Если ваш брандмауэр разрешает это, вы можете сначала выполнить аутентификацию на уровне брандмауэра, если сложность ваших паролей достаточно высока, это должно обеспечить безопасность предоставляемых сервисов. Вы также можете использовать туннелирование SSL, используя, например, stunnel и взаимную аутентификацию.
Учитывая тот факт, что использование большего количества портов является более безопасным, определенным образом, может быть, это связано с тем, что боты сканируют ваш IP и пробуют некоторые эксплойты, но если кто-то хочет действительно взломать, использование более высоких номеров портов не обеспечит повышенную безопасность.