Параметры ядра linux grub

Углубление в параметры ядра. Часть 1: загрузочные параметры

Диапазон статьи

Параметры ядра linux grub. Смотреть фото Параметры ядра linux grub. Смотреть картинку Параметры ядра linux grub. Картинка про Параметры ядра linux grub. Фото Параметры ядра linux grub

Jul 27, 2020 · 7 min read

Параметры ядра linux grub. Смотреть фото Параметры ядра linux grub. Смотреть картинку Параметры ядра linux grub. Картинка про Параметры ядра linux grub. Фото Параметры ядра linux grub

EC2 (эластичное облако вычислений) — это наиболее часто используемый AWS-сервис, поскольку он надёжен, гибок и позволяет масштабируемость. EC2 можно назвать “хребтом” AWS, т.к. прямо или косвенно он задействуется во множестве других сервисов AWS. По большей части публичные AMI, предоставляемые Amazon и другими крупными вендорами, уже прошли тщательные испытания на пригодность использования в продакшене. Тем не менее иногда возникает необходимость подстройки поведения инстансов EC2 через изменение параметров их ядер.

В текущей серии статей мы рассмо т рим, что представляют собой параметры ядра (включая параметры его загрузки), а также как изменять эти параметры для Amazon Linux 1/2, RHEL 5/6/7/8, CentOS 6/7, SLES 12/15 и Ubuntu 14.04/16.04/18.04/20.04 на инстансах AWS EC2. Это будет первой частью погружения в тему параметров ядра.

Знакомство с параметрами ядра

Ядро Linux — это сложный элемент ПО, чьё поведение, как и поведение любого другого ПО, зависит от параметров по умолчанию, установленных в коде самого этого ядра. К примерам этого поведения можно отнести то, как ядро управляет диском, памятью или загрузкой системы. Эти параметры определяют поведение Linux, и в целях корректировки поведения системы могут быть изменены как в процессе работы ядра, так и при его загрузке.

Существует 3 способа, с помощью которых вы можете добавлять или редактировать эти параметры. Выбор одного из них будет зависеть от конкретного случая.

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

Загрузочные параметры ядра

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

За загрузку и запуск ядра Linux отвечает загрузчик ОС, поэтому, чтобы иметь возможность передать параметры загрузки, мы используем специализированный загрузчик вроде GRUB.

Загрузочные параметры ядра определяются в виде списка строк, разделённых пробелами следующим образом:
name[=value_1][,value_2]…[,value_10].

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

К примеру, приведу конфигурацию grub для инстанса на Amazon Linux 1. В ней я изменил параметр “console”, определив для него 2 значения (допускается до 10).

Мы можем также предоставить ядру параметры загрузки, приведённые ниже. Здесь вместо определения значений “console” в виде одного параметра мы повторно использовали console для определения другого значения. При необходимости каждый параметр “console” может содержать до 10 значений, что позволяет выйти за рамки предыдущих ограничений.

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

1. Универсальный способ—обновление загрузочных параметров через утилиту grubby

grubby— это инструмент командной строки для обновления и отображения информации о файлах конфигурации загрузчика. grubby отлично работает со всеми дистрибутивами Linux, включая Amazon Linux 1/2, RHEL 5/6/7/8, CentOS 6/7 и SLES 12/15, но при этом не дружит с Ubuntu.

PS: grubby по умолчанию установлен на все дистрибутивы Linux, кроме SLES. Инструкции по его установке вы можете найти в разделе “Добавить репозиторий и установить вручную” здесь.

Преимущества grubby

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

В процессе загрузки загрузчик передаёт параметры ядру Linux в буфер памяти под названием kernel command line (командная строка ядра). Файл /proc/cmdline в псевдо-файловой системе /proc также содержит копию этих параметров. Проверить это мы можем при помощи следующей команды:

Работа с grubby

Перезагрузите систему и убедитесь, что параметры “clocksource=tsc tsc=reliable” добавлены:

Либо просто проверьте это через grubby:

В дальнейшем вы можете убедиться, что источником тактовой частоты определён tsc, при помощи следующей команды:

Это всё, что касается grubby.

2. Дистрибутивы Linux с Legacy GRUB

Amazon Linux 1 аналогично RHEL6.X, RHEL5.X и CentOS использует в качестве загрузчика GRUB (также известный как Legacy RUB). Узнать версию в подобных дистрибутивах вы можете так:

Файл конфигурации GRUB располагается в /boot/grub/grub.conf и содержит две символические ссылки на себя: /etc/grub.conf и /boot/grub/menu.lst. Нам нужно изменить эту конфигурацию grub, добавив дополнительные параметры загрузки ядра. Однако, чтобы сделать это эффективно, давайте сначала разберём основы конфигурации grub. Ниже приведён её пример из инстанса EC2 Amazon Linux 1.

Конфигурация GRUB

Здесь, как вы видите, присутствует более 1 записи меню. Запись меню наряду с параметрами содержит информацию о расположении образов ядра и initrd. Каждая запись начинается с “title…” и содержит численный порядок, начиная с 0. Значение “default” определяет текущий образ ядра, который используется для загрузки serve=. В конфигурации, приведённой выше, значение представлено как “0”. Это означает, что действует первая запись меню (4.14.181–108.257.amzn1.x86_64). Давайте взглянем на строку ядра. Вся структура name[=value_1], указанная после местоположения образа ядра (выделена жирным курсивом и разделена пробелами), представляет параметры загрузки:

kernel /boot/vmlinuz-4.14.181–108.257.amzn1.x86_64 root=LABEL=/ console=tty1 console=ttyS0 selinux=0 nvme_core.io_timeout=4294967295

Важно знать её, чтобы добавлять параметры в правильную запись меню.

Работа с конфигурацией GRUB

Теперь отредактируйте файл конфигурации (/etc/grub.conf) в предпочтительном редакторе и добавьте/измените нужные вам параметры. Я добавил те же параметры “clocksource=tsc tsc=reliable”, что и ранее.

kernel /boot/vmlinuz-4.14.181–108.257.amzn1.x86_64 root=LABEL=/ console=tty1 console=ttyS0 selinux=0 nvme_core.io_timeout=4294967295 clocksource=tsc tsc=reliable

Перезапустите систему, чтобы изменения вступили в силу. Проверить это мы можем тем же способом, что и в опции 1:

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

3. Дистрибутивы Linux с загрузчиком GRUB2

Amazon Linux 2, так же как RHEL7.X, CentOS7, SLES15 и SLES12, использует в качестве загрузчика GRUB2. Узнать версию такого дистрибутива вы можете следующим образом:

Для систем, по умолчанию использующих загрузчик GRUB2, конфигурация этого загрузчика размещается в /boot/grub2/grub.cfg. Управлять этим файлом должен только сам GRUB2, поскольку он генерирует его автоматически посредством grub2-mkconfig с использованием шаблонов из каталога /etc/grub.d и файла /etc/default/grub. Об этом мы поговорим чуть позже.

Понимание конфигурации GRUB2

PS. Если вы используете инстансы из семейства ARM, упомянутые здесь и здесь, то конфигурация grub должна располагаться где-то в каталоге /boot/efi/EFI. К примеру, для RHEL7, работающего на ARM, это будет /boot/efi/EFI/redhat/grub.cfg.

Загрузочные параметры ядра дистрибутивов, использующих GRUB2, определены в каталоге /etc/default/grub. Давайте взглянем на пример из инстанса на Amazon Linux 2:

“GRUB_CMDLINE_LINUX_DEFAULT” содержит загрузочные параметры (командной строки) ядра. Это строка, в которой мы редактируем конфигурацию grub для изменения загрузочных параметров.

GRUB_CMDLINE_LINUX_DEFAULT=”console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295

Работа с конфигурацией GRUB2

Отредактируйте файл конфигурации grub (/etc/default/grub.conf) с помощью предпочтительного редактора. Добавьте/измените интересующие вас параметры для строки GRUB_CMDLINE_LINUX_DEFAULT. Например, я добавил параметры systemd.log_level=debug systemd.log_target=console. Эти дополнительные параметры активируют режим отладки системы и перенаправляют в консоль. Итак, после обновления моя запись в файле /etc/default/grub будет выглядеть примерно так:

GRUB_CMDLINE_LINUX_DEFAULT=”console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0 systemd.log_level=debug systemd.log_target=console”

Теперь, чтобы автоматически сгенерировать конфигурацию grub2 на основе добавленных параметров, нам нужно запустить grub2-mkconfig, добавив путь к этой конфигурации:

Перезагрузите систему и проверьте, вступили ли изменения в силу из /proc/cmdline, как мы делали ранее.

4. Для инстансов EC2 на Ubuntu 14.04 / 16.04 / 18.04 / 20.04

GRUB2 является предустановленным загрузчиком и менеджером для Ubuntu, начиная с версии 9.10. Именно поэтому процесс изменения загрузочных параметров ядра практически такой же, как и для других дистрибутивов Linux с GRUB2, которые мы рассмотрели выше.

В данном случае местоположением файла конфигурации будет /etc/default/grub.d/50-cloudimg-settings.cfg.

Для добавления параметров откройте в редакторе /etc/default/grub.d/50-cloudimg-settings.cfg и измените нужные параметры в GRUB_CMDLINE_LINUX_DEFAULT, как мы делали ранее.

После этого выполните команду update-grub, чтобы повторно сгенерировать уже обновлённую конфигурацию grub:

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

Источник

Содержание

Первые шаги

При первом сравнении GRUB со старым GRUB Legacy самым весомым различием оказывается измененная структура файлов конфигурации.

И об этом нас предупреждают не просто так. Ведь «grub.cfg» генерируется автоматически с использованием нескольких скриптов. Поэтому после следующего обновления GRUB ваш «grub.cfg» будет создан заново, и все ваши правки будут утрачены.

Кроме файла «grub.cfg», отвечающего за загрузочное меню, имеются файл «/etc/default/grub» и папка «/etc/grub.d«. Рассмотрим их подробнее.

/etc/default/grub

Данный файл содержит в себе основные настройки для GRUB. Через него, собственно, они и изменяются. Для наглядности ниже приводится примерное содержимое этого файла:

Изменение стандартного пункта загрузки

Значением «GRUB_DEFAULT» является номер пункта меню, который должен быть выбран стандартным. Чтобы выбрать другой пункт, нам нужно узнать, каким по счету он будет в списке. Есть два варианта:

Или же можно указать значение идентификатора (id), оно должно быть именно таким, каким мы его видим в «/boot/grub/grub.cfg«. Данный способ удобен тем, что после обновления ядра не придется изменять настройки из-за сбившейся нумерации.

Пример

Если в «grub.cfg» пункт меню выглядит так:

То значение параметра «GRUB_DEFAULT» должно указываться именно в виде:

Изменение времени отображения меню

«Скрытое» меню

В случае, если на компьютере установлена только Ubuntu, меню загрузки по умолчанию не будет отображаться, а GRUB будет загружать вас напрямую в систему. Однако же, иногда может возникнуть необходимость загрузиться с другим ядром или же запустить проверку памяти. Для этого предусмотрено «скрытое меню» за него отвечает параметр «GRUB_HIDDEN_TIMEOUT».

Параметр «GRUB_HIDDEN_TIMEOUT_QUIET» отвечает за отображение таймера во время паузы. Если его значение «true» таймер отображаться не будет, а со значением «false» будет.

Чтобы GRUB отображал меню со списком установленных операционных систем, без нажатия клавиш вызова меню (например Shift или Esc ) необходимо:

Убираем подменю

Чтобы раскрыть все меню используем такой параметр:

Это бывает нужно если хотим загружаться не с первой строчки.

Особые случаи

Поведение меню отличается от заданного переменными GRUB_TIMEOUT и GRUB_HIDDEN_TIMEOUT когда предыдущая загрузка не завершилась успехом или предыдущаяя загрузка происходила в режиме восстановления. Подробно это описано далее, в разделе «Защита от зацикливания на перезагрузке». Полную справку по параметрам файла настроек можно дав команду:

Изменение стандартных параметров загрузки ядра

Вы можете добавить необходимые вам параметра запуска ядра, приведя это значение к виду «quiet splash your_param1 your_param2», то есть дописав через пробел нужные параметры.

Пример

Чтобы заменить графическую заставку во время загрузки на информацию о загрузке компонентов системы (это позволит проследить за процессом загрузки и выявить неполадки). Необходимо заменить строчку:

/etc/grub.d

Эта папка содержит в себе скрипты, которые используются для создания файла «grub.cfg». При обновлении GRUB они находят все установленные на компьютере системы и ядра и формируют в файле «grub.cfg» меню загрузки, которое мы и видим. Два основных из них:

Пример

Добавляем режим загрузки без графической заставки, с текстовым отображением процесса загрузки (verbose mode). Для этого мы немного отредактируем обычный пункт загрузки. допустим, он выглядит так (в «/boot/grub/grub.cfg«):

Для того, чтобы сделать из этого verbose mode, нам нужно убрать опции quiet и splash и изменим название самого пункта. В итоге получаем:

Все это и добавляем в «40_custom» в конец файла. Строка с echo не является обязательной она лишь будет сигнализировать нам о том, что наш пункт найден и добавлен при обновлении GRUB.

Команды консоли GRUB

Чтобы попасть в консоль, нужно нажать клавишу C во время отображения меню загрузки.

Команда сообщит нам тип файловой системы на разделе, метку раздела (если таковая имеется), UUID и дату последнего изменения данных на разделе (в формате UTC).

Данная команда выводит содержимое заданного файла, используется в формате:

linux

Аналог команды «kernel» в GRUB Legacy. Загружает указанное Linux-ядро:

initrd

Загружает указанный initrd-образ. Используется так:

chainloader

Передает управление загрузкой по цепочке другому загрузчику (загрузчик ищется на заданном в качестве root разделе). В общем случае требует указания файла для загрузки:

Для (загрузчика Windows) можно использовать:

После задания раздела команда сообщит новый root-раздел и тип файловой системы. Примечание: «root hd(*,*)» не всегда корректно срабатывает. более предпочтительным вариантом является «set root» (см. ниже)

Весьма универсальная команда для изменения различных параметров. Служит для задания значений переменных и используется в формате:

search

Служит для поиска раздела по UUID, метке или заданному файлу. Имеет следующие ключи:

lsfonts

Команда отобразит список загруженных в настоящий момент шрифтов.

При использовании в чистом виде выведет список доступных команд. В формате:

Выведет справку по всем командам, начинающимся на «r».

Отобразит справку по команде «search»

reboot

background_image

Позволяет «на лету» изменить фоновое изображение. Используется в формате:

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

terminal_output.console

Применение изменений

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

Нюанс с нумерацией дисков и разделов

Если в GRUB Legacy первый раздел первого диска (sda1) именовался «hd0,0». То в GRUB, первый раздел первого диска (sda1) теперь будет «hd0,1».

Создание дополнительного меню загрузки

Суть в том, что вместо уже знакомого «grub.cfg» можно загрузить свой файл настройки загрузочного меню со своей конфигурацией. Это позволяет создать дополнительное меню с другими пунктами, настройками, оформлением и т.д. Итак, создадим наш новый файл конфигурации. Создавать с нуля не будем, а скопируем «grub.cfg», дав новое имя:

Поскольку файл скопируется с правами 444, выставим ему права на запись:

Теперь открываем его в любимом текстовом редакторе и изменяем:

Строкой ниже мы можем задать цвета текста. Изменяются они так же, как и в »/etc/grub.d/05_debian_theme« (см. Настройка внешнего вида загрузчика GRUB). Можно проделать один интересный трюк: уберите строки с set color_highlight и else теперь настройка будет такой:

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

Настроив свой файл, сохраните его Ctrl + Shift и закройте.

Теперь необходимо добавить дополнительное меню. Для этого в файле »/etc/grub.d/40_custom« добавим запись такого вида:

Если вы хотите, чтобы ваше новое меню загружалось вместо стандартного «grub.cfg», установите новый пункт в качестве пункта по умолчанию, но перед этим проверьте новое меню на работоспособность.

Обновите свой «grub.cfg» выполнив команду:

В качестве образца пример файла «custom.cfg» (файл урезан до необходимого минимума):

Защита от зацикливания на перезагрузке

Зачем это сделано

А что если.

А что если отключить?

Отключаем.

Как это работает

Для того, что бы убрать необходимость интерактивного вмешательства в процесс загрузки нужно установить переменную GRUB_RECORDFAIL_TIMEOUT в /etc/defaul/grub в то количество секунд, которые меню GRUB-а будет ждать ввода в случае когда recordfail=1. Сохранить изменения и обновить GRUB (sudo update-grub).

Финт с GRUB_RECORDFAIL_TIMEOUT может не сработать в некоторых (старых) версиях GRUB. Тогда нужно редактировать /etc/grub.d/00_header. Нужно найти функцию make_timeout (), которая выглядит примерно так:

и заменить в ней строчку

После этого финт с GRUB_RECORDFAIL_TIMEOUT заработает. Нужно сохранить изменения и обновить GRUB (sudo update-grub).

Источник

Настройка ядра Linux

Да, мы не можем включать добавлять неподдерживаемые модули и драйвера устройств, но мы можем настроить такие параметры ядра Linux, как особенности работы процессора, памяти, виртуального пространства памяти, планировщика ядра, сетевой стек и многое другое. Все эти настройки доступны через файловую систему proc. Мы рассматривали подробно ее в предыдущей статье, теперь же остановимся только на директории /proc/sys, с помощью которой мы и будем настраивать ядро.

Как выполняется настройка?

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

echo «1» > /proc/sys/net/ipv4/ip_forward

Значение 1 будет записано в файл ipv4_forward. Но измененные таким способом параметры не сохраняются после перезагрузки. Перед тем как рассматривать как сохранить параметры ядра linux из proc рассмотрим еще один способ их модификации.

Для работы с параметрами ядра есть утилита sysctl. Она представляет все параметры в виде переменных. Имена этих переменных соответствуют адресу файла в папке /proc/sys только слеш заменен точкой. Например:

Вы можете установить значение параметра такой командой:

Вы можете также сразу посмотреть все доступные переменные с помощью опции -a:

abi.vsyscall32 = 1
debug.exception-trace = 1
dev.cdrom.autoclose = 0
dev.cdrom.autoeject = 0
dev.cdrom.check_media = 0
dev.cdrom.debug = 0
.
vm.stat_interval = 1
vm.swappiness = 60
vm.user_reserve_kbytes = 131072
vm.vfs_cache_pressure = 100
vm.zone_reclaim_mode = 0

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

Вы также можете вручную добавлять переменные и их значения в эти файлы. Если вы хотите вернуть значения переменных до состояния сохраненного в файлах и удалить свои изменения выполните:

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

Настройка ядра Linux

abi.vsyscall32

Если установлено 1, разрешает выполнение 32 битных программ в 64 битной системе. По умолчанию включено, можете отключить, а затем попробовать запустить, например, skype.

debug.exception-trace

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

dev.cdrom.autoclose

Ваш CDROM будет автоматически закрыт при попытке его монтирования, по умолчанию отключено.

dev.cdrom.autoeject

CDROM будет открыт после размонтирования содержащегося там диска с помощью команды umount.

dev.hpet.max-user-freq

Максимальная частота генерации прерываний от системного таймера High Precision Event Timer (HPET), который пришел на замену таймеру реального времени RTC. По умолчанию 64.

fs.aio-nr

Количество асинхронных операций ввода и вывода в вашей файловой системе.

fs.file-max

Максимальное количество дескрипторов файлов, которые может создать и обрабатывать ядро. Если вы часто получаете сообщения об ошибке из-за невозможности создать дескриптор файла увеличьте этот лимит. По умолчанию установлено значение 10 % от вашей оперативной памяти.

fs.inotify.max_queued_events

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

fs.inotify.max_user_instances

Максимальное количество объектов inotify, которые может создать один пользователь.

fs.inotify.max_user_watches

Максимальное количество файлов и директорий, за которыми может наблюдать один объект inotify.

cad_pid

PID процесса, который получит сигнал, если будет нажато сочетание клавиш Ctrl+Alt+Del

kernel.ctrl-alt-del

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

kernel.domainname

Позволяет установить доменное имя NIS (Network Internet Services) и YP (Yellow Pages). Но не путайте это доменное имя с DNS, это совсем разные вещи.

kernel.hostname

Имя вашего компьютера. Это самый простой способ изменить имя компьютера прямо сейчас, без перезагрузки.

kernel.modules_disabled

Позволяет отключить загрузку модулей ядра.

kernel.panic

Указывает количество секунд после ошибки в ядре (kernel panic) до перезагрузки.

kernel.pid_max

Максимальное значение PID процесса. Когда PID достигает этого значения, ядро переходит опять к минимальному. Значения больше этого не выделяются.

Параметры ядра linux grub. Смотреть фото Параметры ядра linux grub. Смотреть картинку Параметры ядра linux grub. Картинка про Параметры ядра linux grub. Фото Параметры ядра linux grub

kernel.random.boot_id

Этот файл доступен только для чтения и содержит уникальный, случайный идентификатор загрузки. Генерируется для каждой загрузки.

kernel.random.uuid

При каждом запросе генерирует случайный UUID. Тоже доступен только для чтения.

kernel.randomize_va_space

Рандомизация адресного пространства это функция увеличивающая безопасность вашей системы. Она защищает от атак на переполнение буфера. По умолчанию включена.

kernel.sysrq

Позволяет включить или отключить управление ядром с помощью SysRQ. Доступны такие параметры:

kernel.threads-max

Максимальное количество запущенных потоков для процессов.

net.ipv4.icmp_echo_ignore_all

Если включено, ядро будет игнорировать все icmp запросы. Рекомендуется для защиты от DDOS атак.

net.ipv4.icmp_echo_ignore_broadcasts

Так же, как и в предыдущем варианте, только игнорироваться будут только широковещательные icmp запросы.

net.ipv4.ip_default_ttl

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

net.ipv4.ip_forward

Разрешить проходящие пакеты через этот компьютер. Обычно такая настройка параметров ядра Linux нужна для роутеров.

net.ipv4.ip_local_port_range

Диапазон локальных портов, которые могут быть использованы вашими программами.

net.ipv4.tcp_rfc1337

Установите 1 чтобы защитить компьютер от атаки TCP TimeWait.

net.ipv4.tcp_fin_timeout

Таймаут ожидания завершения соединения после отправки пакета FIN. Рекомендовано 15.

net.ipv4.tcp_keepalive_time

Поддерживать соединение активным определенное время, например, 300 секунд. По истечении этого времени TCP соединение будет разорвано.

net.core.rmem_default

Указывает размер по умолчанию буфера для сокета получения данных по сети.

net.core.rmem_max

Максимальный размер буфера сокета для получения данных по сети.

net.core.wmem_default

Размер сокета по умолчанию для отправки данных по сети.

net.core.wmem_max

Максимальный размер буфера сокета для отправки данных по сети.

net.ipv4.tcp_rmem

Количество памяти, доступной для работы TCP.

vm.dirty_background_ratio

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

vm.dirty_ratio

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

vm.laptop_mode

Функция laptop mode позволяет не сразу записывать данные на жесткий диск после запроса, а хранить их указанное время в оперативной памяти. Может быть полезно если вы экономите заряд батареи и не хотите, чтобы жесткий диск всегда вращался.

vm.swappiness

Устанавливает процент свободной памяти, по достижении которого данные начинают переноситься на swap раздел, для систем с большим количеством памяти рекомендовано значение 10.

Выводы

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *