added new posts

master
byzoni 3 months ago
parent 4c12cf5eb3
commit a445e95930
Signed by: byzoni
GPG Key ID: CB748B5A35E95507

@ -0,0 +1,89 @@
---
title: "SSH против HTTPS в Git: какой из них использовать?"
date: 2023-03-13T13:42:46+05:00
draft: false
weight: 1
ShowToc: true
TocOpen: true
summary: ""
tags: ["git"]
categories: ["linux-tutorials"]
cover:
image: "/img/git-ssh-vs-https/git-ssh-vs-https.png"
alt: ""
caption: ""
relative: false
---
В чем разница между SSH и HTTPS в git? Это вопрос, который возникает у каждого новичка, когда он впервые начинает использовать git и GitHub. В этой статье вы узнаете о разнице между использованием SSH и HTTPS для Git и о том, как выбрать правильный метод аутентификации.
<!--more-->
## SSH против HTTPS в Git: в чем разница?
Базовой функциональностью SSH и HTTPS является шифрование данных, поскольку оба протокола являются безопасными криптографическими сетевыми протоколами. Из-за своих функций безопасности многие серверы Git, включая GitHub и GitLab, используют SSH и HTTPS для защиты связи между клиентом и сервером.
Метод аутентификации зависит от того, какой удаленный URL-адрес вы выбираете HTTPS или SSH при клонировании репозитория Git.
Эти два протокола различаются по сложности и уровню безопасности.
## SSH
SSH (Secure Shell) — это протокол шифрования с открытым ключом, который гарантирует, что никто не сможет перехватить или изменить данные во время передачи. Поскольку его сложнее настроить, он не так широко распространен, как HTTPS, но обеспечивает большую целостность и безопасность данных.
Однако брандмауэры в некоторых системах отказываются разрешать подключения SSH к порту по умолчанию, что может еще больше усложнить настройку. Кроме того, в некоторых операционных системах клиенты SSH не установлены по умолчанию.
## HTTPS
HTTPS (Hyper Text Transfer Protocol Secure) — более распространенный сетевой протокол, использующий шифрование данных SSL/TLS. Поскольку HTTPS проще в настройке, чем SSH, он более распространен, но обеспечивает более низкий уровень безопасности данных, поскольку не использует криптографию с открытым ключом.
Git с HTTPS использует аутентификацию на основе токенов для установления соединений через порт 443 в режиме аутентификации Public/Private Pair. Порт 443 открыт почти во всех брандмауэрах, что не всегда верно для SSH.
Недостатком использования HTTPS является то, что каждое действие, такое как `git fetch`, `git pull` или `git push`, запрашивает ваше имя пользователя и пароль.
## Зачем использовать HTTPS для Git?
Основная цель HTTPS — обеспечить безопасную передачу данных между клиентом и сервером. HTTPS упрощает настройку Git, поскольку нет необходимости создавать ключи SSH для каждой машины, с которой вы хотите получить доступ к репозиторию.
Аутентификация выполняется с помощью токена личного доступа, который действует как уникальный пароль и позволяет пользователям дополнительно защитить свою учетную запись с помощью 2FA.
Преимущества использования HTTPS для Git:
- **Простая настройка**. HTTPS легко настроить, требуется только URL-адрес репо и команда клонирования.
- **Доступность**. HTTPS доступен во всех операционных системах и имеет очень мало ограничений брандмауэра.
- **Портативность**. Получите доступ к репозиторию с любого компьютера, указав имя пользователя и пароль/токен.
## Зачем использовать SSH для Git?
Целью установки SSH-соединения является шифрование данных, которыми обмениваются клиент и сервер. Соединения SSH основаны на паре ключей — закрытый ключ на удаленном сервере и соответствующий открытый ключ в локальной системе.
Использование ключей SSH означает, что нет необходимости указывать имя пользователя и пароль для каждого действия, например, для отправки или получения изменений или подписания коммитов.
Преимущества использования SSH для Git:
- **Разовая установка**. Для каждого действия SSH использует файл ключа на диске, который создается при клонировании репозитория. Хотя настройка сложнее, чем HTTPS, это одноразовая операция.
- **Улучшенная безопасность**. Ключи SSH более безопасны, чем любой пароль или токен аутентификации, поэтому их практически невозможно взломать.
- **Сохранение времени**. SSH не требует повторной аутентификации для каждого действия с хранилищем. Эта функция экономит время и делает SSH одной из главных причин выбора HTTPS.
## Почему Git меняет свою рекомендацию?
Git несколько раз менял свою официальную документацию, чередуя рекомендацию между SSH и HTTPS. В настоящее время нет рекомендаций для того или иного, но инструкции сосредоточены в основном на настройке SSH и устранении неполадок.
Git, вероятно, изменил свою рекомендацию с SSH, потому что HTTPS более доступен для всех. Это самый простой способ настроить Git в самых разных сетях и платформах.
Позже акцент сместился на безопасность, поэтому SSH стал предпочтительным вариантом, поскольку ключи SSH не предоставляют доступ к вашей учетной записи GitHub. Это означает, что ваша учетная запись не может быть взломана, если кто-то украдет ключ.
## Какой из них вы должны использовать?
Выбирайте между SSH и HTTPS в зависимости от ваших предпочтений, конфиденциальности данных и того, на чем вы фокусируетесь: на простоте или на безопасности. Используйте SSH как более безопасный вариант и HTTPS для базового использования Git на основе пароля.
Поскольку SSH более безопасен, чем ввод учетных данных через HTTPS, он рекомендуется для предприятий, имеющих дело с конфиденциальными и важными данными. После того, как вы сгенерируете ключи SSH, только машины с файлом ключа на диске смогут получить доступ к репозиторию.
С другой стороны, если вы хотите максимизировать доступность и простоту использования, используйте протокол HTTPS для Git. После завершения процесса входа интерфейс командной строки GitHub позже аутентифицирует все операции с помощью собственных токенов пароля.
При совместной работе над проектом учитывайте политику вашей организации и выбирайте предпочтительный тип безопасности.
## Заключение
В этой статье показаны преимущества использования HTTPS или SSH для Git. Оба шифруют данные, пересылаемые между пользователем и удаленным хранилищем, при этом SSH является более безопасным вариантом, а HTTPS проще в использовании.

@ -0,0 +1,226 @@
---
title: "21 совет по безопасности сервера для защиты вашего сервера"
date: 2023-03-13T14:15:15+05:00
draft: false
weight: 1
ShowToc: true
TocOpen: true
summary: ""
tags: ["security"]
categories: ["Security"]
cover:
image: "/img/server-security-tips/server-security.jpg"
alt: ""
caption: ""
relative: false
---
Злоумышленники всегда ищут уязвимости серверов. В обязанности системных администраторов и сотрудников службы безопасности входит обеспечение безопасности данных на сервере.
<!--more-->
Сведите к минимуму риски и увеличьте безопасность системы, которую вы обслуживаете, применяя наши советы и рекомендации по безопасности серверов.
## Что такое безопасность сервера?
Безопасность сервера — это набор мер, которые защищают сервер от всех типов угроз, таких как DDoS-атаки, атаки методом перебора, а также неосторожные или злонамеренные пользователи. Меры могут включать установку и обслуживание брандмауэров, применение надежных паролей и протоколов аутентификации пользователей, установку антивирусного программного обеспечения и регулярное резервное копирование во избежание потери данных.
## Почему важна безопасность сервера?
Серверы играют ключевую роль в обработке и хранении важных для бизнеса данных. Защита серверов от внешних угроз с помощью мер безопасности сервера необходима для поддержания:
- **Целостность**. Безопасность сервера обеспечивает точность и полноту данных, хранящихся на сервере, за счет предотвращения искажения и случайного изменения.
- **Доступность**. Меры безопасности помогают системным администраторам постоянно поддерживать доступ к серверу и его службам для авторизованных пользователей.
- **Конфиденциальность**. Защита конфиденциальных данных, хранящихся на сервере, предотвращает использование данных неавторизованными пользователями в злонамеренных целях.
- **Репутация**. Нарушение безопасности может привести к потере данных или нарушению работы службы. Эти инциденты могут нанести ущерб репутации компании и привести к финансовым потерям.
- **Соответствие требованиям**. Крупные компании подчиняются отраслевым нормам, которые требуют, чтобы их серверы соответствовали определенным стандартам безопасности. Несоблюдение этих стандартов часто приводит к штрафам регулирующих органов.
## 21 совет по защите вашего сервера
Ниже приведен список из 21 совета по повышению безопасности ваших серверов. В нем есть разделы, посвященные подключению к Интернету и управлению пользователями — областям, в которых вы можете сделать больше всего для повышения общей надежности системы. Кроме того, в списке представлены другие передовые методы в области безопасности серверов.
## Безопасное подключение к серверу
### 1. Установите и используйте безопасное соединение
При подключении к удаленному серверу важно установить безопасный канал для связи.
Протокол SSH (Secure Shell) — лучший способ установить защищенное соединение. В отличие от использовавшегося ранее Telnet, при доступе по SSH все данные, передаваемые при обмене, шифруются. Чтобы получить удаленный доступ по протоколу SSH, вы должны установить демон SSH и клиент SSH для выдачи команд и управления серверами.
По умолчанию SSH использует порт 22. Изменение номера порта по умолчанию — это простой способ снизить вероятность атаки хакеров на ваш сервер. Поэтому для SSH лучше всего использовать случайный номер порта от 1024 до 32 767.
### 2. Используйте аутентификацию по ключам SSH
Вместо пароля вы можете аутентифицировать сервер SSH, используя пару ключей SSH, что является лучшей альтернативой традиционным входам в систему. Ключи содержат значительно больше битов, чем пароль, и современные компьютеры не могут легко взломать их. Например, популярное 2048-битное шифрование RSA эквивалентно 617-значному паролю.
Пара ключей SSH состоит из открытого ключа и закрытого ключа.
Публичный ключ имеет несколько копий, одна из которых остается на сервере, а остальные доступны пользователям. Любой, у кого есть открытый ключ, имеет возможность зашифровать данные, в то время как прочитать эти данные может только пользователь с соответствующим закрытым ключом.
Закрытый ключ не должен передаваться никому и должен храниться в безопасности. При установлении соединения сервер запрашивает доказательства того, что у пользователя есть закрытый ключ, прежде чем разрешить привилегированный доступ.
### 3. Безопасный протокол передачи файлов
Использование защищенного протокола передачи файлов (FTPS) помогает передавать файлы на сервер и с сервера без опасности взлома или кражи данных злоумышленниками.
FTPS использует каналы команд и данных для шифрования файлов данных и аутентификационной информации. Однако важно помнить, что FTPS защищает файлы только во время передачи. Как только они достигают сервера, данные больше не шифруются. По этой причине шифрование файлов перед их отправкой добавляет еще один уровень безопасности.
### 4. Сертификаты уровня защищенных сокетов
Защитите свои области веб-администрирования и формы с помощью Secure Socket Layer (SSL), который защищает информацию, передаваемую между двумя системами через Интернет. SSL может использоваться как при обмене данными между сервером и клиентом, так и между сервером и сервером.
Программа шифрует данные, поэтому конфиденциальная информация (например, имена, идентификаторы, номера кредитных карт и другая личная информация) не украдена при передаче. Веб-сайты с SSL-сертификатом имеют HTTPS в URL-адресе, что указывает на их безопасность.
Сертификат не только шифрует данные, но также используется для аутентификации пользователя. Таким образом, управляя сертификатами для ваших серверов, SSL помогает установить полномочия пользователя. Администраторы могут настроить серверы для связи с централизованным центром сертификации и любым другим сертификатом, который подписывает центр сертификации.
### 5. Используйте частные сети и VPN
Еще один способ обеспечить безопасную связь — использовать частные и виртуальные частные сети (VPN) и программное обеспечение, такое как OpenVPN. В отличие от открытых сетей, которые доступны для внешнего мира и поэтому подвержены атакам со стороны злонамеренных пользователей, частные и виртуальные частные сети ограничивают доступ для избранных пользователей.
Частные сети используют частный IP-адрес для установления изолированных каналов связи между серверами в пределах одного диапазона IP-адресов. Это позволяет нескольким серверам в одной сети обмениваться информацией и данными без доступа к публичному пространству.
Используйте VPN, когда вы хотите подключиться к удаленному серверу, как если бы вы делали это локально через частную сеть. VPN обеспечивают полностью безопасное и частное соединение и могут охватывать несколько удаленных серверов. Чтобы серверы могли обмениваться данными в рамках одной и той же VPN, они должны совместно использовать данные безопасности и конфигурации.
## Управление пользователями сервера
### 6. Отслеживайте попытки входа в систему
Использование программного обеспечения для предотвращения вторжений для отслеживания попыток входа в систему — это способ защитить ваш сервер от атак грубой силы. Эти автоматические атаки используют метод проб и ошибок, пытаясь получить доступ к системе всеми возможными комбинациями букв и цифр.
Программное обеспечение для предотвращения вторжений контролирует все файлы журналов и обнаруживает подозрительные попытки входа в систему. Когда количество попыток превышает установленную норму, программа предотвращения вторжений блокирует IP-адрес на определенный период или бессрочно.
### 7. Управление пользователями
На каждом сервере есть пользователь root, который может выполнять любую команду. Из-за своего уровня доступа root может быть опасен, если сервер попадет в чужие руки. Широко распространена практика полного отключения входа root для SSH.
Поскольку пользователь root обладает наибольшей властью, хакеры сосредотачивают свое внимание на попытках взлома пароля root. Когда вы полностью отключаете этого пользователя, вы ставите злоумышленников в невыгодное положение и защищаете сервер от потенциальных угроз.
Чтобы посторонние не могли злоупотреблять привилегиями root, создайте ограниченную учетную запись пользователя. Эта учетная запись не имеет таких же полномочий, как root, но может выполнять административные задачи с помощью команд sudo.
Таким образом, вы можете администрировать большинство задач с ограниченной учетной записью пользователя и использовать учетную запись root только при необходимости.
## Безопасность пароля сервера
### 8. Установите требования к паролю
Прежде всего, необходимо установить требования к паролю и правила, которым должны следовать все пользователи сервера. Соблюдайте следующие важные правила:
- Не допускайте пустых паролей или паролей по умолчанию.
- Обеспечьте минимальную длину и сложность пароля.
- Наличие политики блокировки.
- Не храните пароли с использованием обратимого шифрования.
- Установите тайм-аут сеанса для бездействия и включите двухфакторную аутентификацию.
### 9. Установите политику истечения срока действия пароля
Установка даты истечения срока действия пароля — еще одна рутинная практика при установлении требований пользователя. В зависимости от требуемого уровня безопасности пароль может действовать от нескольких недель до нескольких месяцев.
### 10. Используйте парольные фразы для паролей сервера
Использование парольной фразы вместо пароля может помочь повысить безопасность сервера. Основное отличие состоит в том, что парольная фраза длиннее и содержит пробелы между словами. Поэтому часто это предложение, но не обязательно им быть.
Например, парольная фраза может быть такой: **shakabledrierwrittenangular**.
Данный пример длиннее обычного пароля и содержит буквы верхнего и нижнего регистра, цифры и уникальные символы. Кроме того, гораздо легче запомнить парольную фразу, чем строку случайных букв. Наконец, поскольку он состоит из 49 символов, его труднее взломать.
### 11. Пароль не работает
Если вы хотите поддерживать безопасность сервера, вам следует избегать нескольких вещей, когда речь идет о паролях. Будьте внимательны, где вы храните пароли. Не записывайте их на бумаге и держите в офисе.
Желательно не использовать личную информацию, такую ​​как ваш день рождения, родной город, имена домашних животных и другие вещи, которые могут связать вас с паролем. Их очень легко угадать, особенно людям, которые вас знают.
Пароли, которые содержат только простые словарные слова, также легко взломать, особенно атаками по словарю (грубой силой). Кроме того, старайтесь избегать повторения последовательностей символов в одном и том же пароле.
Наконец, **не используйте один и тот же пароль для нескольких учетных записей**. Перерабатывая пароли, вы подвергаете себя значительному риску. Если хакеру удастся получить доступ к одной учетной записи, все остальные учетные записи с таким же паролем могут оказаться в опасности.
Попробуйте использовать разные пароли для каждой учетной записи и отслеживайте их с помощью менеджера паролей, такого как KeePassXC.
## Другие передовые методы защиты сервера
### 12. Регулярно обновляйте и обновляйте программное обеспечение
Регулярное обновление программного обеспечения на сервере имеет решающее значение для его защиты от хакеров. Устаревшее программное обеспечение уже изучено на предмет его слабых мест, поэтому хакеры могут воспользоваться им и нанести вред вашей системе.
Автоматические обновления — это один из способов гарантировать, что вы не пропустите важные обновления. Однако разрешение системе вносить автоматические изменения может быть рискованным. Перед обновлением производственной среды рекомендуется проверить, как обновление работает в тестовой среде.
Обязательно регулярно обновляйте панель управления сервером. Вам также необходимо регулярно обновлять свою систему управления контентом (если вы ее используете), а также любые плагины, которые могут быть в ней установлены. Каждый новый выпуск включает исправления безопасности для исправления известных проблем безопасности.
### 13. Удалите или отключите все ненужные службы
Повысьте безопасность сервера, уменьшив так называемый вектор атаки. Этот термин кибербезопасности относится к установке и поддержке только минимальных требований, необходимых для поддержания работы ваших служб. Включите только те сетевые порты, которые использует ОС сервера и установленные компоненты. Чем меньше у вас в системе, тем лучше.
Сервер ОС Windows должен иметь только необходимые компоненты операционной системы. Сервер операционной системы Linux должен иметь минимальную установку с установленными только основными пакетами.
Поскольку большинство дистрибутивов Linux прослушивают входящие соединения в Интернете, настройте брандмауэр так, чтобы он разрешал только определенные порты и запрещал все остальные ненужные соединения.
Перед установкой программного обеспечения в вашей системе проверьте наличие зависимостей, чтобы убедиться, что вы не добавляете ничего, что вам не нужно. Кроме того, проверьте, какие зависимости были автоматически запущены в системе и нужны ли они вам.
### 14. Скрыть информацию о сервере
Старайтесь предоставлять как можно меньше информации о базовой инфраструктуре. Чем меньше известно о ваших серверах, тем лучше.
Кроме того, рекомендуется скрывать номера версий любого программного обеспечения, установленного на сервере. Индикатор версии часто показывает точную дату выпуска, что помогает хакерам при поиске слабых мест.
### 15. Используйте системы обнаружения вторжений
Для обнаружения несанкционированных действий используйте систему обнаружения вторжений (IDS), такую ​​как Sophos, которая отслеживает процессы, запущенные на вашем сервере. Вы можете настроить его для проверки повседневных операций, запуска автоматического периодического сканирования или запуска IDS вручную.
### 16. Аудит файлов
Аудит файлов — еще один эффективный способ обнаружения нежелательных изменений в вашей системе.
Этот метод ведет учет всех характеристик системы, когда она находится в работоспособном состоянии, и сравнивает ее с ее текущим состоянием. Сравнивая две версии одной и той же системы из стороны в сторону, вы можете обнаружить все несоответствия и отследить их происхождение.
### 17. Аудит услуг
Аудит служб исследует, какие службы работают на сервере, их протоколы и порты, через которые они обмениваются данными. Знание этих особенностей помогает настроить надежную защиту поверхностей атаки в системе.
### 18. Настройте и поддерживайте брандмауэр
Защитите свой сервер, контролируя и ограничивая доступ к вашей системе.
Использование CSF (ConfigServer и Firewall) необходимо для усиления безопасности на сервере. Он разрешает только определенные жизненно важные соединения и блокирует доступ к другим службам.
Настройте брандмауэр во время первоначальной настройки сервера или при внесении изменений в службы сервера. По умолчанию на обычном сервере работает несколько общедоступных, частных и внутренних служб.
- **Общедоступные службы** обычно работают на веб-серверах, которым необходимо разрешить доступ к веб-сайту. Любой может получить доступ к этим услугам через Интернет.
- **Частные службы** используются, например, при работе с панелью управления базой данных. В этом случае несколько выбранных пользователей получают доступ к одной и той же точке. У них есть авторизованные учетные записи с особыми привилегиями на сервере.
- **Внутренние службы** никогда не должны подвергаться воздействию Интернета или внешнего мира. Они доступны только изнутри сервера и принимают только локальные соединения.
Роль брандмауэра состоит в том, чтобы разрешать, ограничивать и фильтровать доступ в соответствии со службой, для которой авторизован пользователь. Настройте брандмауэр для ограничения всех служб, кроме обязательных для вашего сервера.
### 19. Сделайте резервную копию вашего сервера
Хотя ранее упомянутые шаги предназначены для защиты данных вашего сервера, очень важно иметь резервную копию системы на случай, если что-то пойдет не так.
Храните зашифрованные резервные копии важных данных вне офиса или используйте облачное решение для резервного копирования и восстановления данных.
Независимо от того, выполняете ли вы автоматизированные задания резервного копирования или выполняете их вручную, обязательно выполняйте эту меру предосторожности. Кроме того, вы должны выполнить всесторонние тесты резервного копирования. Сюда входят «проверки работоспособности», в ходе которых администраторы или конечные пользователи проверяют правильность восстановления данных.
### 20. Создавайте многосерверные среды
Изоляция — один из лучших способов защиты сервера.
Полное разделение требует наличия выделенных серверов без операционной системы, которые не используют ресурсы совместно с другими серверами. Хотя этот метод обеспечивает наибольшую безопасность, он также и самый дорогой.
Наличие изолированных сред выполнения в центре обработки данных позволяет так называемое разделение обязанностей (SoD) и настройку конфигурации сервера в соответствии с функциями, которые выполняет сервер.
Разделение серверов баз данных и серверов веб-приложений является стандартной практикой обеспечения безопасности. Отдельные среды выполнения особенно выгодны для крупных предприятий, которые не могут позволить себе никаких нарушений безопасности.
Независимые серверы баз данных защищают конфиденциальную информацию и системные файлы от хакеров, которым удается получить доступ к административным учетным записям. Кроме того, изоляция позволяет системным администраторам отдельно настраивать безопасность веб-приложений и минимизировать поверхность атаки.
### 21. Создайте виртуальную изолированную среду
Если вы не можете позволить себе полную изоляцию с помощью компонентов выделенного сервера или не нуждаетесь в ней, вы также можете выбрать изоляцию сред выполнения.
Это поможет вам справиться с проблемами безопасности, гарантируя, что другие данные не будут скомпрометированы. Вы можете выбирать между контейнерами или виртуализацией виртуальных машин, которые намного проще настроить.
Другим вариантом для виртуализированных сред в операционной системе UNIX является создание chroot-тюрьм. Chroot отделяет процесс от корневого каталога центральной операционной системы и позволяет ему получать доступ только к файлам в его дереве каталогов. Однако это не является полной изоляцией и должно практиковаться только с другими мерами безопасности.
## Заключение
Прочитав эту статью и следуя рекомендациям по безопасности, вы должны быть более уверены в безопасности своего сервера.
Многие из этих мер безопасности должны быть реализованы во время первоначальной настройки сервера, а другие должны быть частью постоянного или периодического обслуживания. Если мониторинг вашего сервера не автоматизирован, обязательно разработайте и выполняйте запланированные проверки безопасности.
Чтобы быть в курсе лучших практик в области кибербезопасности, я рекомендую вам воспользоваться сертификатами кибербезопасности и следить за лидерами отрасли в области безопасности во многих доступных подкастах.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Loading…
Cancel
Save