HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>В сегодняшней публикации мы коснёмся<strong>основ безопасности Linux-систем</strong>в общем понимании. Речь скорее пойдёт об общих принципах построения защищённой системы, чем о написании конкретных конфигов и настройки тех или иных сервисов.</p>
1 <p>В сегодняшней публикации мы коснёмся<strong>основ безопасности Linux-систем</strong>в общем понимании. Речь скорее пойдёт об общих принципах построения защищённой системы, чем о написании конкретных конфигов и настройки тех или иных сервисов.</p>
2 <p>Материал не претендует на полную и абсолютную истинность. Однако указанные советы несомненно будут полезными при эскизном проектировании ИБ, а также смогут послужить как отправные точки для написания различного рода внутренних регламентов и политик безопасности.</p>
2 <p>Материал не претендует на полную и абсолютную истинность. Однако указанные советы несомненно будут полезными при эскизном проектировании ИБ, а также смогут послужить как отправные точки для написания различного рода внутренних регламентов и политик безопасности.</p>
3 <p>Чтобы сервер был безопасен, надо соблюдать ряд действий и правил. Простых и не очень. Опишу всё по порядку.</p>
3 <p>Чтобы сервер был безопасен, надо соблюдать ряд действий и правил. Простых и не очень. Опишу всё по порядку.</p>
4 <h3>1. Ставить везде разные и везде сложные пароли</h3>
4 <h3>1. Ставить везде разные и везде сложные пароли</h3>
5 <p>Ну, я думаю, зачем это, объяснять не нужно, если с фантазией сложно, можно использовать утилиту<strong>pwgen</strong>, которая сгенерирует пароли за вас.</p>
5 <p>Ну, я думаю, зачем это, объяснять не нужно, если с фантазией сложно, можно использовать утилиту<strong>pwgen</strong>, которая сгенерирует пароли за вас.</p>
6 <h3>2. Не использовать стандартные порты</h3>
6 <h3>2. Не использовать стандартные порты</h3>
7 <p>Это, как ни странно, полезно. Многие сканеры уязвимостей ищут их только на определённых портах. Если даже у вас есть уязвимая служба на другом порту, сканер может её не определить.</p>
7 <p>Это, как ни странно, полезно. Многие сканеры уязвимостей ищут их только на определённых портах. Если даже у вас есть уязвимая служба на другом порту, сканер может её не определить.</p>
8 <h3>3. Читать и проверять логи</h3>
8 <h3>3. Читать и проверять логи</h3>
9 <p>Все сообщения об ошибках пишутся в логах, также можно понять многое и о уязвимостях, найденных другими, просто просмотрев их.</p>
9 <p>Все сообщения об ошибках пишутся в логах, также можно понять многое и о уязвимостях, найденных другими, просто просмотрев их.</p>
10 <h3>4. Не сидеть постоянно под рутом</h3>
10 <h3>4. Не сидеть постоянно под рутом</h3>
11 <p>Дело в том, что и вы можете ошибиться и что-то удалить, да и, если попадёте в ловушку из-под рута, злоумышленник также будет владеть полными правами.</p>
11 <p>Дело в том, что и вы можете ошибиться и что-то удалить, да и, если попадёте в ловушку из-под рута, злоумышленник также будет владеть полными правами.</p>
12 <h3>5. Выставлять безопасные права на файлы и папки, владельцев</h3>
12 <h3>5. Выставлять безопасные права на файлы и папки, владельцев</h3>
13 <p>Также хочу заметить, что не повредит<strong>selinux</strong>(модуль ядра, разработанный американскими военными для более сложных уровней доступа) и<strong>bindfs</strong>(можно примонтировать папку как отдельную файловую систему).</p>
13 <p>Также хочу заметить, что не повредит<strong>selinux</strong>(модуль ядра, разработанный американскими военными для более сложных уровней доступа) и<strong>bindfs</strong>(можно примонтировать папку как отдельную файловую систему).</p>
14 <h3>6. Chroot'ить всё, что можно, что может дать доступ к системе</h3>
14 <h3>6. Chroot'ить всё, что можно, что может дать доступ к системе</h3>
15 <p><strong>Черут</strong>- это создание окружения с нужными файлами и утилитами, после этой команды корень файловой системы будет именно в этом каталоге, в который вы черутите. Разумеется, там нужны многие системные файлы, но плюсы в том, что вы можете скопировать только нужные утилиты в папку /bin/ и у людей, закрытых в этой директории, будут урезанные возможности, и даже если они что-то натворят, то только в этой папке. Поэтому<strong>надо черутить всё</strong>, что так или иначе может дать доступ к системе, например, апач. Многие программы в конфиге позволяют настроить черут для некоторых юзеров. Например, пользователей<strong>proftpd</strong>можно закрыть в любом каталоге и выше него они не подымутся, это делается всё также - черутом, но уже без вашего участия, а автоматически программами.</p>
15 <p><strong>Черут</strong>- это создание окружения с нужными файлами и утилитами, после этой команды корень файловой системы будет именно в этом каталоге, в который вы черутите. Разумеется, там нужны многие системные файлы, но плюсы в том, что вы можете скопировать только нужные утилиты в папку /bin/ и у людей, закрытых в этой директории, будут урезанные возможности, и даже если они что-то натворят, то только в этой папке. Поэтому<strong>надо черутить всё</strong>, что так или иначе может дать доступ к системе, например, апач. Многие программы в конфиге позволяют настроить черут для некоторых юзеров. Например, пользователей<strong>proftpd</strong>можно закрыть в любом каталоге и выше него они не подымутся, это делается всё также - черутом, но уже без вашего участия, а автоматически программами.</p>
16 <h3>7. Запускать службы и демоны, которые могут дать доступ к системе под отдельным пользователем, урезанным в правах</h3>
16 <h3>7. Запускать службы и демоны, которые могут дать доступ к системе под отдельным пользователем, урезанным в правах</h3>
17 <p>И снова можно привести пример с апачем. Если в нём найдётся уязвимость, то можно будет выполнять команды от юзера, запустившего его, поэтому стоит позаботится об ограничении прав для этого пользователя. В убунте уже есть юзер, специально созданный для этого дела, -<strong>www-data</strong>, и веб-серверы запускаются от его имени.</p>
17 <p>И снова можно привести пример с апачем. Если в нём найдётся уязвимость, то можно будет выполнять команды от юзера, запустившего его, поэтому стоит позаботится об ограничении прав для этого пользователя. В убунте уже есть юзер, специально созданный для этого дела, -<strong>www-data</strong>, и веб-серверы запускаются от его имени.</p>
18 <h3>8. Использовать программы для безопасной работы, фаерволы, блокировщики (iptables, fail2ban и т. п.)</h3>
18 <h3>8. Использовать программы для безопасной работы, фаерволы, блокировщики (iptables, fail2ban и т. п.)</h3>
19 <p>Вы можете настроить политику подключений и пропускать те пакеты, которые удовлетворяют вашей политике безопасности. Для этого существует хороший фаервол -<strong>консольный iptables</strong>.</p>
19 <p>Вы можете настроить политику подключений и пропускать те пакеты, которые удовлетворяют вашей политике безопасности. Для этого существует хороший фаервол -<strong>консольный iptables</strong>.</p>
20 <p><strong>Fail2ban</strong>, к примеру, блокирует пользователей по ssh или другим службам (можно настроить) после некоторых попыток неправильного ввода пароля. Позволяет защититься от перебора паролей автоматически. Существует много подобных интересных программ (пишите в комменты, делитесь опытом).</p>
20 <p><strong>Fail2ban</strong>, к примеру, блокирует пользователей по ssh или другим службам (можно настроить) после некоторых попыток неправильного ввода пароля. Позволяет защититься от перебора паролей автоматически. Существует много подобных интересных программ (пишите в комменты, делитесь опытом).</p>
21 <h3>9. Использовать антивирусы</h3>
21 <h3>9. Использовать антивирусы</h3>
22 <p>Вирусы в линукс, конечно, не так опасны, но могут причинить вред пользователям, если речь идет о сайте, и он заражен. Я использую на своем сервере<strong>clamav</strong>.</p>
22 <p>Вирусы в линукс, конечно, не так опасны, но могут причинить вред пользователям, если речь идет о сайте, и он заражен. Я использую на своем сервере<strong>clamav</strong>.</p>
23 <h3>10. Отключать неиспользуемые протоколы</h3>
23 <h3>10. Отключать неиспользуемые протоколы</h3>
24 <p>Действительно, зачем они нам, если косвенно могут предоставлять опасность? Лучше их отключить, например,<strong>IPv6</strong>, если не используем.</p>
24 <p>Действительно, зачем они нам, если косвенно могут предоставлять опасность? Лучше их отключить, например,<strong>IPv6</strong>, если не используем.</p>
25 <h3>11. Дополнительную авторизацию для служб, которые вещают в сеть, вешать на https</h3>
25 <h3>11. Дополнительную авторизацию для служб, которые вещают в сеть, вешать на https</h3>
26 <p>Яркий пример -<strong>phpmyadmin</strong>, лучше его повесить на<strong>https</strong>, чтобы никто не перехватывал трафик с паролями, а также для большей безопасности лучше повесить на дополнительную авторизацию веб-сервера.</p>
26 <p>Яркий пример -<strong>phpmyadmin</strong>, лучше его повесить на<strong>https</strong>, чтобы никто не перехватывал трафик с паролями, а также для большей безопасности лучше повесить на дополнительную авторизацию веб-сервера.</p>
27 <h3>12. Ограничить подключения только c<strong>localhost</strong>, если не планируется подключаться удалённо</h3>
27 <h3>12. Ограничить подключения только c<strong>localhost</strong>, если не планируется подключаться удалённо</h3>
28 <p>Например, к базе данных. Если все подключения строго с сервера, то нет смысла открывать порт и вещать в сеть, лучше запретить внешние подключения в конфигурации базы данных.</p>
28 <p>Например, к базе данных. Если все подключения строго с сервера, то нет смысла открывать порт и вещать в сеть, лучше запретить внешние подключения в конфигурации базы данных.</p>
29 <h3>13. Авторизация ssh по ключу, ограничение доступа</h3>
29 <h3>13. Авторизация ssh по ключу, ограничение доступа</h3>
30 <p>Пароли можно подобрать, а ключ, он ключ.<strong>Авторизация ключом безопаснее</strong>. Если юзер нужен вообще для определённых целей, но не нужен для ssh, лучше его запретить для этого юзера или черутить.</p>
30 <p>Пароли можно подобрать, а ключ, он ключ.<strong>Авторизация ключом безопаснее</strong>. Если юзер нужен вообще для определённых целей, но не нужен для ssh, лучше его запретить для этого юзера или черутить.</p>
31 <p>Есть ещё программа<strong>jailkit</strong>, как раз позволяет черутить. Но она не очень-то и гибкая, я вам скажу, навязывает свою структуру и запирает пользователя строго в домашнем каталоге. Но попробовать стоит. Также, если предполагается подключение только узкого круга лиц, стоит ограничить его для подключения строго с определенных ip-адресов.</p>
31 <p>Есть ещё программа<strong>jailkit</strong>, как раз позволяет черутить. Но она не очень-то и гибкая, я вам скажу, навязывает свою структуру и запирает пользователя строго в домашнем каталоге. Но попробовать стоит. Также, если предполагается подключение только узкого круга лиц, стоит ограничить его для подключения строго с определенных ip-адресов.</p>
32 <h3>14. Регулярный бэкап</h3>
32 <h3>14. Регулярный бэкап</h3>
33 <p><strong>Не бывает ничего безопасного</strong>. Лучше настроить регулярный бэкап. При этом так, чтобы данные дополнительно хранились на сторонних ПК либо на облачных сервисах.</p>
33 <p><strong>Не бывает ничего безопасного</strong>. Лучше настроить регулярный бэкап. При этом так, чтобы данные дополнительно хранились на сторонних ПК либо на облачных сервисах.</p>
34 <p><em>Есть что добавить? Пишите в комментариях!</em></p>
34 <p><em>Есть что добавить? Пишите в комментариях!</em></p>
35  
35