How to protect linux

How to Protect Your Privacy on Linux

1. Don’t be complacent because you’re running Linux!
It’s easy to have a false sense of security, thinking that other operating system might be more targeted than Linux, but there are plenty of risks and vulnerabilities for all types of Linux devices. Keep your guard up regardless of your OS.

2. Ensure you use a password to protect your user account.
This should be required, but even so, make sure you always use a strong, lengthy password.

3. Don’t use an admin account for daily activity.
For everyday computing, log in with a basic or standard user account. This is likely to be the default behavior when creating a new account, but it’s worth double-checking your account’s status. Note that some system-wide actions will require you to log in with the administrator account because of restricted permissions.

4. Encrypt your data.
Full disk encryption is ideal, but it’s also possible to encrypt just your home directory, for example on a shared machine. This is usually done during installation, and is difficult to do afterwards. In that situation, the easiest solution is to backup your data (always a good thing!) and then re-install the OS selecting encryption options. If you really want to try encrypting an existing system, the process varies depending on your distribution and disk partition setup so it’s best to search for instructions relevant for your environment.

5. Activate your screensaver when idle with screen lock.
Reduce the time for the lock to take effect once the screensaver starts.

6. Review your installed applications.
It’s good practice to keep installed applications to a minimum. Not only does this keep your machine lean, it also reduces your exposure to vulnerabilities. As well as looking through your application list manually, there may be tools available for your distribution to make it easy, such as BleachBit.

7. Keep your system updated.
It’s usually easy to keep both Linux and installed applications up to date. At the very least make sure updates for security are installed automatically.

8. Periodically check for rootkits.
This can be done by installing a rootkit detector such as chkrootkit, which is easily run with the command sudo chkrootkit .

9. Lock down remote connection settings.
If you use SSH for remote access, there are some simple steps to reduce the risk of attack. The easiest is to use a port other than the default port 22 (and below 1024). You can also prevent remotely logging in as root with PermitRootLogin no in the SSH config file. This article has more tweaks for securing SSH.

10. Turn off listening services you don’t need.
Some daemons listen on external ports. Turn these services off if not needed, for example sendmail or bind. This could also improve boot times. To check for listening services, use this command: netstat -lt

Читайте также:  Ibm xseries 260 windows server 2012

11. Make sure you have a firewall running.
Your OS may have a built-in firewall already, probably iptables. Firewalls can be confusing to configure with the command line, but there’s likely to be a GUI frontend available for easier control such as Gufw.

12. Restrict privileged access with SELinux or AppArmor.
These may be installed in your system by default but if not, it’s worth adding and configuring them. They both enable users to define rules that limit how applications can run or affect other processes and files. The benefit is that in the event of an attack, the damage to your system is limited. You can read more here about how to use SELinux and AppArmor.

13. Install DuckDuckGo Privacy Essentials in your browser.
Our Privacy Essentials browser extension has built-in tracker network blocking, smarter encryption, and, of course, private search, all designed to operate seamlessly together while you search and browse the web.
How: Get the extension for popular browsers from https://duckduckgo.com/app

Congratulations! You’ve just taken a big step to increasing privacy and protecting the data on your Linux system.

Credit: Thanks to WarnerJan Veldhuis for SSH port advice.

For more privacy advice follow us on Twitter, and stay protected and informed with our privacy newsletters.

Dax the duck

We’re the Internet privacy company for everyone who’s had enough of hidden online tracking and wants to take back their privacy now.

DuckDuckGo
Privacy Newsletters

Stay protected and informed with our privacy newsletters.

Your email address will not be shared or associated with anonymous searches.

Device Privacy Tips

How to Encrypt Your Devices

How to encrypt your Mac, Windows PC, iPhone and Android, to keep your data and privacy safe.

How to Protect Privacy on Windows 7

Easy steps to protect your data on Microsoft Windows 7. Use these steps to improve privacy and security.

Источник

Защита Linux-сервера. Что сделать в первую очередь


Habib M’henni / Wikimedia Commons, CC BY-SA

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

Содержание

Нерутовый юзер

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

Поэтому нужно завести другого юзера, а для рута отключить удалённое администрирование по SSH.

Новый пользователь заводится командой useradd :

Затем для него добавляется пароль командой passwd :

Наконец, этого пользователя нужно добавить в группу, которая имеет право выполнять команды с повышением привилегий sudo . В зависимости от дитрибутива Linux, это могут быть разные группы. Например, в CentOS и Red Hat юзера добавляют в группу wheel :

Читайте также:  Usb rs232 adapter windows 10

В Ubuntu он добавляется в группу sudo :

Ключи вместо паролей SSH

Брутфорс или утечка паролей — стандартный вектор атаки, так что аутентификацию по паролям в SSH (Secure Shell) лучше отключить, а вместо неё использовать аутентификацию по ключам.

Есть разные программы для реализации протокола SSH, такие как lsh и Dropbear, но самой популярной является OpenSSH. Установка клиента OpenSSH на Ubuntu:

Установка на сервере:

Запуск демона SSH (sshd) на сервере под Ubuntu:

Автоматический запуск демона при каждой загрузке:

Нужно заметить, что серверная часть OpenSSH включает в себя клиентскую. То есть через openssh-server можно подключаться к другим серверам. Более того, со своей клиентской машины вы можете запустить SSH-туннель с удалённого сервера на сторонний хост, и тогда сторонний хост будет считать удалённый сервер источником запросов. Очень удобная функция для маскировки своей системы. Подробнее см. статью «Практические советы, примеры и туннели SSH».

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

Итак, для своего нового юзера сначала нужно сгенерировать ключи SSH на компьютере, с которого вы будете заходить на сервер:

Публичный ключ хранится в файле .pub и выглядит как строка случайных символов, которые начинаются с ssh-rsa .

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP username@hostname

Затем из-под рута создать на сервере директорию SSH в домашнем каталоге пользователя и добавить публичный ключ SSH в файл authorized_keys , используя текстовый редактор вроде Vim:

Наконец, установить корректные разрешения для файла:

и изменить владение на этого юзера:

На стороне клиента нужно указать местоположение секретного ключа для аутентификации:

Теперь можно залогиниться на сервер под именем юзера по этому ключу:

После авторизации можно использовать команду scp для копирования файлов, утилиту sshfs для удалённого примонтирования файловой системы или директорий.

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

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

На CentOS/Red Hat находим строку PermitRootLogin yes в конфигурационном файле /etc/ssh/sshd_config и изменяем её:

На Ubuntu добавляем строку PermitRootLogin no в конфигурационный файл 10-my-sshd-settings.conf :

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

На CentOS/Red Hat находим строку PasswordAuthentication yes в конфигурационном файле /etc/ssh/sshd_config и изменяем её следующим образом:

На Ubuntu добавляем строку PasswordAuthentication no в файл 10-my-sshd-settings.conf :

Инструкцию по подключению двухфакторной аутентификации по SSH см. здесь.

Файрвол

Файрвол гарантирует, что на сервер пойдёт только тот трафик по тем портам, которые вы напрямую разрешили. Это защищает от эксплуатации портов, которые случайно включились с другими сервисами, то есть сильно уменьшает поверхность атаки.

Перед установкой файрвола нужно убедиться, что SSH внесён в список исключений и не будет блокироваться. Иначе после запуска файрвола мы не сможем подключиться к серверу.

С дистрибутивом Ubuntu идёт Uncomplicated Firewall (ufw), а с CentOS/Red Hat — firewalld.

Читайте также:  Pk 835g драйвер windows 10

Разрешение SSH в файрволе на Ubuntu:

На CentOS/Red Hat используем команду firewall-cmd :

После этой процедуры можно запустить файрвол.

На CentOS/Red Hat запускаем сервис systemd для firewalld:

На Ubuntu используем такую команду:

Fail2Ban

Сервис Fail2Ban анализирует логи на сервере и подсчитывает количество попыток доступа с каждого IP-адреса. В настройках указаны правила, сколько попыток доступа разрешено за определённый интервал — после чего данный IP-адрес блокируется на заданный отрезок времени. Например, разрешаем 5 неудачных попыток аутентификации по SSH в промежуток 2 часа, после чего блокируем данный IP-адрес на 12 часов.

Установка Fail2Ban на CentOS и Red Hat:

Установка на Ubuntu и Debian:

В программе два конфигурационных файла: /etc/fail2ban/fail2ban.conf и /etc/fail2ban/jail.conf . Ограничения для бана указываются во втором файле.

Джейл для SSH включён по умолчанию с дефолтными настройками (5 попыток, интервал 10 минут, бан на 10 минут).

Кроме SSH, Fail2Ban может защищать и другие сервисы на веб-сервере nginx или Apache.

Автоматические обновления безопасности

Как известно, во всех программах постоянно находят новые уязвимости. После публикации информации эксплоиты добавляются в популярные эксплоит-паки, которые массово используются хакерами и подростками при сканировании всех серверов подряд. Поэтому очень важно устанавливать обновления безопасности как только они появляются.

На сервере Ubuntu в конфигурации по умолчанию включены автоматические обновления безопасности, так что дополнительных действий не требуется.

На CentOS/Red Hat нужно установить приложение dnf-automatic и включить таймер:

Смена портов по умолчанию

SSH был разработан в 1995 году для замены telnet (порт 23) и ftp (порт 21), поэтому автор программы Тату Илтонен выбрал порт 22 по умолчанию, и его утвердили в IANA.

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

Смена стандартных портов — обфускация — в несколько раз сокращает объём мусорного трафика, размер логов и нагрузку на сервер, а также сокращает поверхность атаки. Хотя некоторые критикуют такой метод «защиты через неясность» (security through obscurity). Причина в том, что эта техника противопоставляется фундаментальной архитектурной защите. Поэтому, например, Национальный институт стандартов и технологий США в «Руководстве по безопасности сервера» указывает необходимость открытой серверной архитектуры: «Безопасность системы не должна полагаться на скрытность реализации её компонентов», — сказано в документе.

Теоретически, смена портов по умолчанию противоречит практике открытой архитектуры. Но на практике объём вредоносного трафика действительно сокращается, так что это простая и эффективная мера.

Номер порта можно настроить, изменив директиву Port 22 в файле конфигурации /etc/ssh/sshd_config. Он также указывается параметром -p

в sshd. Клиент SSH и программы sftp тоже поддерживают параметр -p

можно использовать для указания номера порта при подключении с помощью команды ssh в Linux. В sftp и scp используется параметр -P

(заглавная P). Указание из командной строки переопределяет любое значение в файлах конфигурации.

Если серверов много, почти все эти действия по защите Linux-сервера можно автоматизировать в скрипте. Но если сервер только один, то лучше вручную контролировать процесс.

На правах рекламы

Закажи и сразу работай! Создание VDS любой конфигурации и с любой операционной системой в течение минуты. Максимальная конфигурация позволит оторваться на полную — 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe. Эпичненько 🙂

Источник

Оцените статью