Самый безопасный способ доступа к моему домашнему серверу Linux, пока я в дороге? Требуется специализированное решение

Самый безопасный способ доступа к моему домашнему серверу Linux, пока я в дороге? Требуется специализированное решение

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

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

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

Еще больше подробностей:

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

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

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

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

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

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

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

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

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

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

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

  • 20 лучших практик безопасности сервера OpenSSH
  • 20 советов по усилению безопасности Linux-сервера
  • Debian Linux Остановите атаки взлома и взлома пользователей SSH с помощью программного обеспечения DenyHosts
  • более...

В этих статьях упоминаются такие вещи, как

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

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

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

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

решение1

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

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

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

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

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

На самом деле нет универсального ответа на ваш вопрос. Надеюсь, это поможет.

решение2

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

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

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

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

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

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

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

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

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

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

Использованная литература:

решение3

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

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

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

решение4

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

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

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

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

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

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

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

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

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

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

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 тратят миллионы на защиту своих серверов, вы, как одиночный пользователь, вряд ли будете устанавливать все выпущенные обновления ядра.

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

Связанный контент