3

Я думаю, что многие люди могут быть в моей ситуации. Я путешествую по бизнесу с ноутбуком. И мне нужен безопасный доступ к файлам из офиса (который в моем случае мой дом).

Краткая версия моего вопроса:

Как я могу сделать SSH/SFTP действительно безопасным, когда только один человек должен подключиться к серверу с одного ноутбука? В этой ситуации, какие специальные шаги сделали бы практически невозможным для кого-либо еще доступ к серверу онлайн?

Намного больше деталей:

Я использую Ubuntu Linux на своем ноутбуке (KDE) и на домашнем / офисном сервере. Связь не проблема. При необходимости я могу подключиться к своему телефону. Мне нужен доступ к большому количеству файлов (около 300 ГБ). Мне не нужны все они сразу, но я заранее не знаю, какие файлы мне могут понадобиться. Эти файлы содержат конфиденциальную информацию о клиенте и личную информацию, такую как номера кредитных карт, поэтому они должны быть защищены.

Учитывая это, я не хочу хранить все эти файлы в Dropbox, Amazon AWS или аналогичных. В любом случае, я не смог бы оправдать эту стоимость (Dropbox даже не публикует цены на планы свыше 100 ГБ, и безопасность вызывает беспокойство). Тем не менее, я готов потратить немного денег на правильное решение. Сервис VPN, например, может быть частью решения? Или другие коммерческие услуги? Я слышал о PogoPlug, но я не знаю, есть ли подобный сервис, который мог бы решить мои проблемы безопасности?

Я мог бы скопировать все свои файлы на свой ноутбук, потому что там есть место. Но затем я должен синхронизировать между моим домашним компьютером и ноутбуком, и в прошлом я обнаружил, что я не очень хорош в этом. И если мой ноутбук потерян или украден, мои данные будут на нем. Диск ноутбука является SSD, а решения для шифрования SSD-дисков не годятся.

Поэтому, кажется, лучше хранить все мои данные на моем файловом сервере Linux (который безопасен дома).

Это разумный вывод, или что-либо, связанное с Интернетом, представляет собой такой риск, что я должен просто скопировать данные на ноутбук (и, возможно, заменить SSD на жесткий диск, что сокращает время автономной работы и производительность)?

Я считаю, что риск потери ноутбука выше. Я не являюсь очевидной целью взлома онлайн. Мой домашний широкополосный интернет - это кабельный Интернет, и он кажется очень надежным. Поэтому я хочу знать лучший (разумный) способ безопасного доступа к моим данным (с моего ноутбука) в дороге.

Мне нужно получить к нему доступ только с этого одного компьютера, хотя я могу подключиться либо к 3G/4G моего телефона, либо через WiFi, либо к широкополосному каналу какого-либо клиента и т.д. Поэтому я заранее не знаю, какой у меня будет IP-адрес.

Я склоняюсь к решению на основе SSH и SFTP (или аналогичных). SSH/SFTP обеспечит все функции, которые мне нужны. Я хотел бы использовать SFTP и Dolphin для просмотра и загрузки файлов. Я буду использовать SSH и терминал для всего остального.

Мой файловый сервер Linux настроен с OpenSSH. Я думаю, что у меня относительно безопасный SSH. Я тоже использую Denyhosts. Но я хочу пойти еще дальше. Я хочу, чтобы кто-нибудь мог получить доступ к моему серверу как можно ближе к нулю, но при этом получить доступ с дороги.

Я не сисадмин, не программист и не настоящий "суперпользователь". Я должен проводить большую часть своего времени, занимаясь другими делами. Я слышал о "стуке портов", но никогда не использовал его и не знаю, как это реализовать (хотя я готов учиться).

Я уже прочитал ряд статей с такими названиями, как:

  • 20 лучших рекомендаций по безопасности для серверов OpenSSH
  • 20 Linux Server Советы по усилению безопасности
  • Debian Linux Stop SSH User Hacking / Cracking Атаки с помощью программного обеспечения DenyHosts
  • Больше...

Эти статьи упоминают такие вещи, как

  • Используйте DenyHosts
  • Установите параметр AllowUsers в /etc /ssh /sshd_config, чтобы разрешить подключение только определенным пользователям.
  • Отключить root-входы через SSH.
  • Использовать аутентификацию с открытым ключом и запретить вход по паролю
  • и многое другое.

Я делаю все вышеперечисленное (и еще немного). Но я не реализовал каждую вещь, о которой я читал. Я, вероятно, не могу этого сделать.

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

Одним из примеров является стук в порт. Это кажется идеально подходящим для моей ситуации. Что еще там по этим направлениям?

5 ответов5

3

Там нет такой вещи, как идеальная безопасность. Каждый вариант безопасности является компромиссом. Лично я рекомендую:

  1. Используйте DenyHosts, чтобы предотвратить грубое форсирование, но установите разумное значение тайм-аута, чтобы не блокировать себя все время, пока вы находитесь в дороге. Это может произойти, если вы не будете осторожны.
  2. Установите параметр AllowUsers в /etc/ssh/sshd_config чтобы разрешить подключение только определенным пользователям.
  3. Отключить root-входы через SSH.
  4. Используйте аутентификацию с открытым ключом с вашего ноутбука.
  5. Используйте одноразовые пароли, такие как OPIE или OTPW, с любого общественного терминала.
  6. Никогда не используйте свой пароль root от публичного терминала, даже в сочетании с sudo или su.

В качестве альтернативы я думаю о портативных зашифрованных дисках с PIN-панелью, таких как диски Apricorn Aegis Padlock. Они очень портативны, в достаточной степени защищены от большинства моделей угроз, и самые большие риски - забыть свой ПИН-код или потерять диски во время путешествия - но в обоих случаях у вас все еще есть оригинальные файлы в безопасности дома.

Если вы предпочитаете бесплатную альтернативу, вы можете использовать encfs, ecryptfs или подобное для создания зашифрованных монтировок для хранения ваших конфиденциальных данных. Вы можете потерять данные вместе с ноутбуком, или кто-то может вмешаться в ваше ядро, загрузчик или оборудование, чтобы установить кейлоггер, пока он не виден, но это не похоже на вашу текущую модель угрозы, и зашифрованные монтирования должны служить ваши цели просто отлично. Я не считаю эту опцию такой же безопасной, как PIN-панель, но это все еще довольно солидный выбор.

По сути, если вы действительно не чувствуете, что вам нужны услуги, предоставляемые удаленной системой, я бы порекомендовал просто переносить ваши файлы в такой безопасный контейнер, какой вы считаете нужным. Затем вы можете использовать rsync, канал или унисон, когда вернетесь домой, чтобы синхронизировать ваши файлы, или просто скопировать обновленные файлы обратно в основную систему.

На самом деле нет ответа "один размер подходит всем". Надеюсь это поможет.

0

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

Согласно Википедии,

Учтите, что, если внешний злоумышленник не знает последовательность стука портов, даже самые простые последовательности потребуют огромных усилий грубой силы, чтобы быть обнаруженными. Простая последовательность TCP с тремя ударами (например, порт 1000, 2000, 3000) потребовала бы, чтобы злоумышленник без предварительного знания последовательности протестировал каждую комбинацию из трех портов в диапазоне 1-65535, а затем просканировал каждый порт между ними, чтобы увидеть если что-нибудь открылось. Как система с состоянием, порт не будет открыт до тех пор, пока не будет получена правильная трехзначная последовательность, без других промежуточных пакетов.

Это равняется максимум 655363 пакетам для получения и обнаружения одного успешного открытия в худшем случае. Это 281 474 976 710 656 или более 281 триллиона пакетов. В среднем попытка потребовала бы приблизительно 9,2 квинтиллионных пакетов, чтобы успешно открыть один простой трехпортовый стук только по TCP с помощью грубой силы. Это становится еще более непрактичным, когда ограничение попыток детонации используется для прекращения атак методом грубой силы, используются более длинные и более сложные последовательности, а криптографические хеши используются как часть детонации.

Стук порта имеет некоторые ограничения (например, это общий секрет). Но, как указано в вопросе, это решение для одного человека. Таким образом, стук портов поверх существующей защиты SSH (а также denyhosts и других вещей) является эффективным и простым шагом для поднятия безопасности на новый уровень.

Широкое использование утилит Port Knocker вызывает споры у экспертов по безопасности, но этот вопрос является учебным примером того, когда Port Knocking можно использовать с большой эффективностью.

Конечно, использование стука портов также подразумевает использование iptables. Таким образом, чтобы перейти к следующему шагу, который является вопросом здесь, требуется эти два шага:

  1. использовать iptables

  2. использовать порт стук

Это особая реализация стука портов, которая мне нравится:
http://www.portknocking.org/view/implementations
Есть клиенты для многих популярных систем, включая Android.

Рекомендации:

0

Я использую Ubuntu Linux на своем ноутбуке (KDE) и на домашнем / офисном сервере. Связь не проблема. При необходимости я могу подключиться к своему телефону. Мне нужен доступ к большому количеству файлов (около 300 ГБ). Мне не нужны все они сразу, но я заранее не знаю, какие файлы мне могут понадобиться. Эти файлы содержат конфиденциальную информацию о клиенте и личную информацию, такую как номера кредитных карт, поэтому они должны быть защищены.

Вы понимаете, что использование 3G/4G-соединения вашего телефона небезопасно, верно? Телефонная компания имеет возможность (без сомнения) просматривать весь ваш интернет-трафик. Теперь интернет-трафик может быть безопасным, но теоретически он может атаковать вас в середине. Если вы используете соединение 3G/4G, вам нужно будет использовать VPN, прежде чем загружать контент через еще одно безопасное соединение.

Учитывая это, я не хочу хранить все эти файлы в Dropbox, Amazon AWS или аналогичных. В любом случае, я не смог бы оправдать эту стоимость (Dropbox даже не публикует цены на планы свыше 100 ГБ, и безопасность вызывает беспокойство). Тем не менее, я готов потратить немного денег на правильное решение. Сервис VPN, например, может быть частью решения? Или другие коммерческие услуги? Я слышал о PogoPlug, но я не знаю, есть ли подобный сервис, который мог бы решить мои проблемы безопасности?

Кроме того, любые файлы, которые содержат PII и / или конфиденциальную информацию клиента, должны быть зашифрованы. Вы не делаете вашим клиентам никаких одолжений, не шифруя эти файлы, а ЛЮБОЙ носитель, который содержит эти файлы. ВСЕ копии должны быть зашифрованы.

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

Futhermore ...Если вы действительно имеете дело с 300 ГБ данных, соединение 3G/4G на самом деле его не обрежет.

Я мог бы скопировать все свои файлы на свой ноутбук, потому что там есть место. Но затем я должен синхронизировать между моим домашним компьютером и ноутбуком, и в прошлом я обнаружил, что я не очень хорош в этом. И если мой ноутбук потерян или украден, мои данные будут на нем. Диск ноутбука является SSD, а решения для шифрования SSD-дисков не годятся.

Любой, кто говорит, что зашифрованное устройство SSD не является на 100% безопасным при условии, что оно сделано, ДО того, как на него будут помещены какие-либо данные, является полным идиотом, и вам не следует больше обращаться к ним за техническими советами.

Это разумный вывод, или что-либо, связанное с Интернетом, представляет собой такой риск, что я должен просто скопировать данные на ноутбук (и, возможно, заменить SSD на жесткий диск, что сокращает время автономной работы и производительность)?

Похоже, вы должны придумать процедуру, которая будет синхронизировать все ваши устройства хранения данных вместе. Есть решения ....

I view the risks of losing a laptop to be higher. I am not an obvious hacking target online. My home broadband is cable Internet, and it seems very reliable. So I want to know the best (reasonable) way to securely access my data (from my laptop) while on the road.

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

Мне нужно получить к нему доступ только с этого одного компьютера, хотя я могу подключиться либо к 3G/4G моего телефона, либо через WiFi, либо к широкополосному каналу какого-либо клиента и т.д. Поэтому я заранее не знаю, какой у меня будет IP-адрес.

Я бы использовал стороннюю службу VPN, которая позволит вам внести в белый список один конкретный IP-адрес, это позволит вам всегда иметь один и тот же IP-адрес. Использование длинного безопасного случайного пароля, зашифрованных данных и зашифрованных носителей делает ваши данные на 100% безопасными. Зашифрованные данные - это просто случайные байты.

Если вы не храните файлы в зашифрованном виде на сервере, все, что вы делаете, будет менее безопасным, чем удаленное облачное решение. Amazon и Dropbox тратят миллионы на защиту своих серверов, поскольку вы, будучи одним пользователем, скорее всего, не будете устанавливать все выпущенные обновления Kernal.

Кроме того, похоже, что вы должны сосредоточиться на своих клиентах, делать то, что вы делаете, а затем беспокоиться о безопасности домашнего сервера Linux, который не так безопасен, как Amazon и Dropbox.

0

Я не эксперт в этом вопросе ... но вот что генерирует мой мозг:

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

Еще один шаг - настроить сервер на прием входящих соединений только с IP-адреса VPN, предоставленного вашему ноутбуку.

Еще одна вещь - получить USB-модем и поговорить с вашим Интернет-провайдером, чтобы получить статический IP-адрес на этом устройстве. Таким образом, вы также можете контролировать входящее соединение VPN-сервера.

Используйте очень длинные пароли. Длинные пароли даже с основными символами лучше, чем маленькие пароли со специальными символами. Время расшифровки, скажем, возрастает экспоненциально с количеством символов, а не с количеством различных символов.

В качестве альтернативы SFTP, вы можете использовать WebDAV, который является протоколом по HTTP(s), и так же безопасен, как и SFTP, в зависимости от генерируемого вами сертификата.

Говоря об этом, генерируйте сертификаты с высоким разрешением (1024 бит) для SSH и SFTP/WebDAV.

После нескольких минут неиспользования блокируйте свой ноутбук, чтобы похитители не получали информацию на лету. На OS X есть опция удаленной очистки, если компьютер был украден, но он включает серверы Apple, я думаю. Я не знаю, есть ли такое решение для Linux, но вы могли бы немного погуглить об этом. Установите клиенты отключить любые функции истории. В любом случае, если ваш ноутбук будет украден, самое важное - отключить доступ с него к серверу, отменив принятые адреса и изменив пароли и сертификаты.

Смешайте логин на основе сертификатов с паролями (я не знаю точно, как это делается), как в некоторых банковских системах (где у вас есть часть ключа, хранящаяся на вашем компьютере, и с этим вы получаете доступ к службе, а затем входите в систему с паролем) или в корпоративных VPN.

Теперь я становлюсь параноиком: установить также систему входа в систему, основанную на мобильном генераторе ключей, например, используемом Blizzard в BattleNet или Банках. (здесь предстоит много исследований)

Измените порты по умолчанию вашего VPN/SSH/WebDAV сервера. Заблокируйте любые другие порты прослушивания через брандмауэр.

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

Хорошо, мой мозг вернул переполнение стека. :)

Задайте тот же вопрос здесь: https://security.stackexchange.com/

Помните одно: высоко мотивированный хакер может взломать любую систему.

0

Защитите свои файлы.

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

Например, если у вас есть продукт Apple, скорее всего, у вас есть установленный на заводе руткит; То же самое с Dell, HP, ASUS, все они. Они работают только на OS X и Windows XP и новее. Итак, используйте Linux.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .