RSS
 

Архивные записи рубрики ‘Kernel’ ...

Релиз ядра Linux 4.3

02 Ноя

linuxПосле двух месяцев разработки Линус Торвальдс анонсировал релиз ядра Linux 4.3. Среди наиболее заметных изменений: удаление обособленного драйвера ФС ext3, отключение поддержки режима VM86, средства для наследования capabilities, включение по умолчанию сборки с IPv6, реализация виртуальных таблиц маршрутизации, сетевой планировщик «overflow», возможность обработки page fault в пространстве пользователя, дополнительная защита от fork-бомб, фреймворки для разработки драйверов NVMEM и MOST, зависимость от openssl-devel при сборке с поддержкой верификации модулей по цифровым подписям.

В новую версию принято около 11 тысяч исправлений от более чем 1500 разработчиков, размер патча — 42 Мб (изменения затронули 10388 файлов, добавлено 643628 строк кода, удалено -333888 строк). Около 48% всех представленных в 4.3 изменений связаны с драйверами устройств, примерно 18% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 11% связано с сетевым стеком, 3% — файловыми системами и 4% c внутренними подсистемами ядра. Прочитать всю статью »

 
Комментарии к записи Релиз ядра Linux 4.3 отключены

Рубрика: Kernel

 

Релиз ядра Linux 4.0

14 Апр

linuxПосле двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 4.0. Среди наиболее заметных улучшений: интеграция базовых компонентов для обновления ядра Linux без перезагрузки, поддержка нескольких слоёв на чтение в overlayfs, реализация механизма для выявления ошибок работы с памятью, поддержка энергонезависимой памяти (NVM), возможность привязки к хостам алгоритмов контроля перегрузки, возможность установки меток на сетевые пакеты в модулях Smack, добавление в ext4 опции lazytime.

Переход к номеру версии 4.0, вместо ожидаемого выпуска 3.20, осуществлён после проведения голосования, в котором приняло участие более 31 тысячи участников сообщества, из которых 56% посчитали, что настало время выпуска версии 4.0. Переход к нумерации 4.x является формальным шагом, обусловленным лишь эстетическими соображениями. Текущий выпуск ядра оказался как нельзя лучшим претендентом на смену нумерации. Репозиторий приблизился к отметке в 500 тысяч коммитов и преодолел рубеж в 4 млн объектов. При выпуске ядра 3.0 были преодолены рубежи в 250 тысяч коммитов и 2 млн объектов в Git. Прочитать всю статью »

 
Комментарии к записи Релиз ядра Linux 4.0 отключены

Рубрика: Kernel

 

Настройка Linux для высоконагруженных проектов и защиты от DDoS

27 Мар

black-linux_2В Интернете довольно много разных примеров конфигурации ядра Linux для поддержания большого количества соединений, высоконагруженных веб проектов и противодействия DDoS-атакам. Вот ещё один из примеров, что я уже смог попробовать на практике. Скажу сразу — мне более чем помогло. Попробуйте и вы.

Вот опции, что необходимо добавить в конец /etc/sysctl.conf

net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.tcp_max_orphans = 65536
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_mem = 50576   64768   98152
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_orphan_retries = 0
net.ipv4.tcp_syncookies = 0
net.ipv4.netfilter.ip_conntrack_max = 16777216
net.netfilter.nf_conntrack_max = 16777216
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_congestion_control = htcp
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.route.flush = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.lo.rp_filter = 1
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.lo.accept_source_route = 0
net.ipv4.conf.eth0.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rfc1337 = 1
net.ipv4.ip_forward = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_echo_ignore_all = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 1000
net.core.rmem_default = 65536
net.core.wmem_default = 65536
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
fs.inotify.max_user_watches = 16777216

А теперь о каждой опции более детально. Прочитать всю статью »

 
Комментарии к записи Настройка Linux для высоконагруженных проектов и защиты от DDoS отключены

Рубрика: Kernel, Linux

 

perf-tools — новый набор утилит для анализа производительности в Linux

19 Мар

black-linux_2Брендан Грег (Brendan Gregg), один из разработчиков DTrace, переключился на развитие средств анализа производительности в Linux и подготовлил новый набор утилит perf-tools, основанный на применении подсистем ядра Linux perf_events и ftrace. Утилиты отличаются минимальным числом зависимостей, простотой использования и дополнительными возможностями изучения параметров производительности и отзывчивости.

Например, утилита iosnoop позволяет проанализировать дисковый ввод/вывод с приведением дополнительной информации о возникающих задержках (latency):


# ./iosnoop
Tracing block I/O... Ctrl-C to end.
COMM             PID    TYPE DEV      BLOCK        BYTES     LATms
supervise        1809   W    202,1    17039968     4096       1.32
supervise        1809   W    202,1    17039976     4096       1.30
tar              14794  RM   202,1    8457608      4096       7.53
tar              14794  RM   202,1    8470336      4096      14.90
tar              14794  RM   202,1    8470368      4096       0.27
tar              14794  RM   202,1    8470784      4096       7.74
tar              14794  RM   202,1    8470360      4096       0.25
tar              14794  RM   202,1    8469968      4096       0.24
tar              14794  RM   202,1    8470240      4096       0.24

Прочитать всю статью »

 
Комментарии к записи perf-tools — новый набор утилит для анализа производительности в Linux отключены

Рубрика: Kernel, Linux

 

Представлен первый кандидат в релизы ядра Linux 4.0

23 Фев

Линус Торвальдс не стал продолжать нумерацию 3.x и выпустил первый кандидат в релизы ядра Linux 4.0, вместо ожидаемого выпуска 3.20. Смене нумерации способствовали результаты голосования, в котором приняло участие почти 30 тысяч представителей сообщества, из которых 56% посчитали, что настало время выпуска версии 4.0.

Переход к нумерации 4.x является формальным шагом, обусловленным лишь эстетическими соображениями. В 2013 году рассматривалась идея использования смены первого номера в версии как дополнительного стабилизирующего этапа (предлагалось включить в ядро 4.0 только исправления ошибок, без функциональных изменений и новшеств), но данная идея была отвергнута. С точки зрения функциональности выпуск 4.0 не содержит кардинальных изменений или нарушений совместимости и не выделяется среди остальных выпусков, плавно продолжая развитие текущей кодовой базы.

Прошлая смена нумерации была произведена в 2011 году, когда в ветке 2.6.x накопилось 39 релизов. На подготовку 40 выпусков в ветке 2.6.x было потрачено 10 лет, что по мнению Линуса слишком много, поэтому наращивание нумерации ветки 3.x решено прекратить после 20 выпусков. Весомым аргументом в пользу ядра 4.0 также стало желание как можно скорее увидеть выпуск 4.1.15 — это номер версии ядра Linux, показанный в фильме Терминатор, при демонстрации интерфейса киборга T-800. Прочитать всю статью »

 
Комментарии к записи Представлен первый кандидат в релизы ядра Linux 4.0 отключены

Рубрика: Kernel, Linux

 

Блокирование попыток эксплуатации heartbeat-уязвимости в OpenSSL средствами iptables

22 Апр

hacker_attackПример блокирования  критической уязвимости CVE-2014-0160 в OpenSSL 1.0.1,
позволяющей получить содержимое памяти удалённых серверных и клиентских приложений.

Отражаем в логе все heartbeat-запросы при помощи iptables и модуля u32:

   iptables -t filter -A INPUT -p tcp --dport 443 -m u32 --u32 "52=0x18030000:0x1803FFFF" -j LOG --log-prefix "BLOCKED: HEARTBEAT"

Блокируем heartbeat-запросы:

   iptables -t filter -A INPUT -p tcp --dport 443 -m u32 --u32 "52=0x18030000:0x1803FFFF" -j DROP

Отслеживаем возможные атаки при помощи Wireshark:

   tshark -i interface port 443 -R 'frame[68:1] == 18'
   tshark -i interface port 443 -R 'ssl.record.content_type == 24'

 
Комментарии к записи Блокирование попыток эксплуатации heartbeat-уязвимости в OpenSSL средствами iptables отключены

Рубрика: IPtables, Kernel, Linux, Security

 

Linux 3.14: планировщик Deadline, zram, графика Intel Broadwell, платформа Intel Merrifield, Kernfs

01 Апр

linuxМинувшей ночью Линус Торвальдс (Linus Torvalds) анонсировал выпуск новой версии ядра Linux — 3.14.

Среди ключевых новшеств и изменений в ядре Linux 3.14:

  • реализация планировщика SCHED_DEADLINE, который разрабатывался несколько лет и реализует алгоритм Earliest Deadline First (EDF);
  • поддержка криптографических сопроцессоров AMD CCP (AMD’s Cryptographic Coprocessor), процессорных ядер MIPS interAptiv и proAptiv;
  • поддержка платформы Intel Merrifield для мобильных интернет-устройств;
  • поддержка Generic CPU Boost/Turbo для CPUfreq;
  • Xen PVH (PV-гости в контейнере HVM);
  • стабильная версия zram — блочных устройств для оперативной памяти, сжимающих все записываемые на них данные;
  • подсистема Kernfs, вынесенная из sysfs для возможности использования другими компонентами (ее будут использовать для управления cgroups и для debugfs);
  • поддержка ACL для распределенной файловой системы Ceph;
  • стабильная поддержка видеопроцессоров Intel Broadwell;
  • поддержка NVIDIA GK110 GPU (GeForce GTX 780 / TITAN) и GK208 GPU (GeForce 630/640) в драйвере Nouveau, а также NVIDIA Tegra PRIME;
  • TCP autocorking;
  • событийные триггеры (event triggers) в подсистеме трассировки.

 
Комментарии к записи Linux 3.14: планировщик Deadline, zram, графика Intel Broadwell, платформа Intel Merrifield, Kernfs отключены

Рубрика: Kernel

 

Опасная удалённая уязвимость в ядре Linux

21 Мар

linux_smallВ ядре Linux исправлена опасная уязвимость (CVE-2014-2523), позволяющая удаленному злоумышленнику выполнить код на уровне ядра. Проблема обусловлена ошибкой в коде conntrack (подсистемы, отслеживающей входящие, исходящие и транзитные сетевые соединения для обеспечения корректности процедур фильтрации и NAT), выполняющем обработку пакетов протокола DCCP. При помощи специально сформированного DCCP-пакета, удаленный злоумышленник может выполнить произвольный код с привилегиями ядра, либо инициировать крах системы.

Уязвимый участок кода существовал в Linux начиная с версии 2.6.26 (июль 2008 года) по 3.13 включительно. Несмотря на то, что исправление было принято в начале января 2014 года (и вошло в Linux 3.14-RC1), проблема была отмечена как уязвимость только в минувший понедельник. За выходом исправлений для популярных дистрибутивов можно проследить на следующих страницах: Fedora/RHEL, SuSE, Debian, Ubuntu.

В качестве временного исправления, можно заблокировать conntrack-обработку входящих и исходящих DCCP пакетов:

iptables -t raw -I PREROUTING -p dccp -j NOTRACK
iptables -t raw -I OUTPUT -p dccp -j NOTRACK

 
Комментарии к записи Опасная удалённая уязвимость в ядре Linux отключены

Рубрика: Kernel