Защита от DDoS с помощью утилиты tcpdump

23.08.2010

tcpdump — это мощнейшая утилита UNIX, позволяющая перехватывать и анализировать сетевой трафик, проходящий через сетевые интерфейсы. Об установке читайте в документации утилиты или на сайте разработчика, в FreeBSD она есть в портах, в Debian Linux в репозиториях.

tcpdump -v -i eth0 dst port 80

После выше набранной команды вы сможете наблюдать список подключений к 80-у порту, чем больше повторных подключений с одинаковых хостов тем вероятнее мы столкнулись с DoS или DDoS атакой. Как вы уже наверное догадались, изменив порт можно проверить есть ли атака на FTP, SSH или другие сервисы которые крутятся на сервере. Добавив ключ -n имена хостов преобразуются в IP адреса.

Cначала запишем вывод tcpdump-a в файл. пакетов 200-300 хватит.

tcpdump -v -n -w ip.log dst port 80 -c 250

-v самый простой уровень логирования, без изысканности.
-n преобразуем имена хостов в IP адреса
-w записываем анализ трафика в файл
-c количество захваченных пакетов

Приступим к анализу полученных данных через tcpdump, отпарсим лог следующей командой:

tcpdump -nr ip.log |awk ‘{print $3}’ |grep -oE ‘[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}’ |sort |uniq -c |sort -rn

Результат будет — 2 столбца, в первом количество подключений, во втором IP. Чем больше подключений для одного IP тем вероятнее что это бот.

Если список очень длинный можно ограничить его указав нужное количество выводимых строк

tcpdump -nr ip.log |awk ‘{print $3}’ |grep -oE ‘[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}’ |sort |uniq -c |sort -rn | head -20

Что бы получить только IP адреса, без первого столбца, нужно убрать ключ -c после uniq
Вывод парсинга можно перенаправить в файл, а затем простым bash-скриптом, заблокировать все IP со списка.

#!/bin/bash
BLOCKDB=»ips.txt»
IPS=$(grep -Ev «^#» $BLOCKDB)
for i in $IPS
do
iptables -A INPUT -s $i -j DROP

Установка KDevelop на Kubuntu/Ubuntu 10.04

09.07.2010

KDevelop — свободная среда разработки программного обеспечения для UNIX-подобных операционных систем. Проект стартовал в 1998 году. KDevelop распространяется согласно GNU General Public License.

KDevelop не включает в свой состав компилятор; вместо этого он использует GNU Compiler Collection (или любой другой компилятор) для создания исполняемого кода.

Код KDevelop 3.0 был полностью переписан после KDevelop 2. Релиз 3-й версии вышел вместе с KDE 3.2 в феврале 2004.

Стабильная версия 3.5 поддерживает большое количество языков программирования, таких как Ада, Bash, C, C++, Фортран, Java, Pascal, Perl, PHP, Python, Ruby и SQL.

KDevelop использует встроенный компонент текстовый редактор через технологию KParts. Основным редактором является Kate. Этот раздел рассматривает внутренние особенности KDevelop. Если вы интересуетесь возможностями текстового редактора, используемого в KDevelop, — обратитесь к статье о Kate.

* Подсветка исходного кода с учетом синтаксиса используемого языка программирования (язык определяется автоматически) (Kate).
* Менеджер проектов, для проектов разного типа, таких как Automake, qmake для проектов базирующихся на Qt и Ant для проектов, базирующихся на Java.
* Навигатор классов (Class Browser).
* Front-end для GNU Compiler Collection.
* Front-end для GNU Debugger.
* Wizards («Помощники») для генерации и обновления определения классов и framework.
* Автоматическая система завершения кода. (Си/C++).
* Встроенная поддержка Doxygen.
* Контроль версий (известный как SCM). Также поддерживается CVS, Subversion, Perforce и ClearCase.

KDevelop 3 представляет собой «подключаемую» архитектуру. Когда разработчик делает изменения, он должен лишь скомпилировать плагин. Предусмотрена возможность сохранения профилей, указывающих какие плагины должны быть загружены. KDevelop не поставляется с встроенным текстовым редактором, он подключается как плагин. KDevelop не зависит от языка программирования и не зависит от платформы, на которой он запускается, поддерживая KDE, GNOME и много других технологий (например, Qt, GTK+ и wxWidgets).

KDevelop поддерживает большое количество языков программирования, включая C, C++, Perl, Python, PHP, Java, Fortran, Ruby, Ada, Pascal, SQL и Bash. Поддерживаются такие системы сборки проектов, как GNU (automake), qmake и make для собственных средств сборки проектов (KDevelop оставляет ваши Makefiles нетронутыми, если вы хотите использовать их).

Code completion доступно для языков C и C++. Символы хранятся в Berkeley DB файле для быстрого поиска без пре-парсинга. Встроенный отладчик позволяет вам работать графически со всеми средствами отладки, такими как точки останова и трассировки. Он так же может работать с динамически подгружаемыми плагинами, в отличие от консольного gdb.

Установка KDevelop на Kubuntu/Ubuntu 10.04

Добавляем в репозитории
sudo add-apt-repository ppa:kubuntu-ppa/backports

Обновляем список
sudo apt-get update

Установка KDevelop
sudo apt-get install kdevelop cmake build-essential

Новое ядро Linux 2.6.34 две новые файловые системы

20.05.2010

Линус Торвальдс (Linus Torvalds), автор и ведущий разработчик платформы Linux, анонсировал выпуск новой версии ядра Linux 2.6.34. Кроме различных технических улучшений и исправлений прошлых ошибок, ядро предлагает пользователям поддержку сразу двух новых файловых систем – «облачной» технологии Ceph и системы LofFS для флеш-накопителей.

Поддержка «облачной» файловой системы Ceph является одним из самых значимых новшеств в развитии Linux – эта распределенная сетевая файловая система обеспечивает массовое масштабирование и может обслуживать хранилища емкостью в несколько петабайт данных. Технология организации сверхбольших информационных хранилищ содержит адаптивную платформу для хранения метаданных. Эта платформа хранения метаданных способна автоматически перераспределять информацию об иерархии файловой системы по узлам хранения данных в ответ на изменения в запросах приложений и пользователей. В то же время, разработчики предупреждают, что проект Ceph все еще находится в экспериментальной стадии и еще не готов к использованию в промышленных условиях.

Еще одним важным дополнением к технологиям Linux стала поддержка новой файловой системы LogFS со строгой структурой журналов. Технология LogFS, предназначенная для использования в носителях на основе энергонезависимой флеш-памяти, призвана заменить ранее реализованную в ядре систему JFFS2 (Journalling Flash File System v2), поскольку лучше подходит для флеш-накопителей большого объема. Разработчики заверяют, что система LogFS значительно сокращает время монтирования накопителей и объем требуемой памяти по сравнению с JFFS2.

Также в ядре версии Linux 2.6.34 реализовано множество других важных нововведений. Так, работа по параллелизации процессов помогла существенно ускорить переключение систем в «спящий» режим и вывод из этого режима. Сетевые механизмы в гипервизоре KVM также стали работать гораздо быстрее за счет использования новых сетевых драйверов vhost.

Флагманский процессор Atom для неттопов

08.04.2010

Корпорация Intel вскоре выпустит очередной процессор семейства Atom с небольшим энергопотреблением. Чип с обозначением D525 должен стать флагманом Atom-линейки для неттопов и компьютеров класса «всё в одном».

Процессор получит два ядра и будет функционировать на тактовой частоте 1,8 ГГц. Для сравнения: частота современных моделей Atom для настольных ПК не превышает 1,66 ГГц.

Как и нынешний двухъядерный Atom D510, готовящийся к выпуску процессор будет обладать максимальным значением рассеиваемой тепловой энергии (TDP) в 13 Вт. При этом он получит поддержку не только памяти DDR2, но и DDR3.

На рынке чипы Atom D525, предположительно, появятся в текущем квартале.

Напомним также, что «Интел» готовит новое семейство процессоров Atom с кодовым названием Oak Trail. Эти чипы придут на смену моделям Atom серии Z5xx и будут применяться во встраиваемых устройствах, развлекательных системах и мини-компьютерах с увеличенным временем автономной работы.

Введение Xen

08.04.2010

Xen — это монитор виртуальных машин (VMM, Virtual Machine Monitor) или гипервизор (hypervisor) с поддержкой паравиртуализации (para-virtualization) для процессоров x86 архитектуры, распространяющийся с открытым исходным кодом (opensource). Xen может организовать совместное безопасное исполнение нескольких виртуальных машин на одной физической системе с производительностью близкой к непосредственной (native). Xen обладает функциональностью ПО корпоративного уровня; в нём, в частности, обеспечивается:

  • Производительность виртуальных машин близкая к производительности при непосредственном исполнении на железе;
  • Возможность живой миграции работающих виртуальных машин между хостами;
  • Поддержка до 32 виртуальных процессоров на одну гостевую машину с возможностью горячего добавления (hotplug) процессоров;
  • Поддержка платформ x86/32, x86/32 с PAE и x86/64;
  • Поддержка аппаратной виртуализации Intel Virtualization Techonology (VT-x) для запуска немодифицированных операционных систем (включая Microsoft Windows);
  • Отличная поддержка оборудования (поддерживаются практически все драйверы устройств Linux).

Варианты использования

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

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

Запуск множества различных ОС.
Одновременное выполнение множества ОС при разработке, тестировании или экспериментах.

Разработка ядра ОС.
Тестирование и отладка ядра в ограниченной виртуальной машине — нет необходимости в выделении отдельной тестовой машины.

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

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

Поддержка операционными системами

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

Этот подход требует чтобы операционная система была портирована для запуска в Xen. Портирование ОС для запуска в Xen похоже на добавление поддержки ещё одной аппатной платформы, но проще, поскольку архитектура паравиртуальной машины очень похожа на архитектуру базовой системы. Ядра операционных систем должны быть портированы на Xen, но ключевая особенность заключается в том, что пользовательские программы (user space apllications) и библиотеки не требуют модификации.

На процессорах с аппаратной поддержкой виртуализации (технологии Intel VT и AMD SVM) есть возможность запускать немодифицированные гостевые системы. Портирование не требуется, однако необходима дополнительная драйверная поддержка внутри самого Xen. В отличие от традиционных гипервизоров, выполняющих полную виртуализацию, которые страдают от большой потери производительности, Xen и VT или Xen и Pacifica (SVM) дополняют друг друга: комбинация предлагает превосходную производительность паравиртуализированных гостевых операционных систем и вместе с тем полную поддержку немодифицированных гостевых систем, работающих непосредственно на процессоре. Полная поддержка технологий VT и Pacifica появится в начале 2006 года (Уже появилась — Прим. перев.).

Поддержка паравиртуализации Xen в большом количестве операционных систем и их число постоянно растёт. В настоящий момент поддержка Linux находится уже в очень зрелом состоянии, она включена в стандартный дистрибутив. Портирование других ОС, включая NetBSD, FreeBSD и Solaris x86 v10, близко к завершению.

Поддержка аппаратного обеспечения

В настоящий момент Xen работает на x86 архитектуре, и требует процессора P6 или новее (например, Pentium Pro, Celeron, Penitum II, Pentium III, Pentium IV, Xeon, AMD Athlon, AMD Duron). Поддерживаются многопроцессорные машины и поддерживается HyperThreading (SMT). Кроме того, ведется портирование на архитектуры IA64 и Power.

Обычный 32-битный Xen поддерживает до 4GB оперативной памяти. Однако, в Xen 3.0 появилась поддержка расширений физической адресации Intel PAE (Phyisical Addressing Extensions), которая позволяет на машине x86/32 адресовать до 64GB физической памяти. Xen 3.0 также поддерживает платформы x86/64, такие как Intel EM64T и AMD Opteron, на которых возможна адресация до 1TB физической памяти.

Xen перекладывает большинство задач по поддержке железа на гостевую операционную систему, работающую в управляющей виртуальной машине, также известной как домен 0. Сам Xen содержит только код, необходимый для обнаружения и запуска остальных процессоров системы, настройки обработки прерываний и нумерации PCI шины (PCI bus enumeration <—!—>). Драйверы устройств работают внтури привилегированной гостевой операционной системы, а не в самом Xen. Такой подход обеспечивает совместимость с большинством устройств, поддерживаемых Linux. Сборка XenLinux по умолчанию содержит поддержку большинства серверного сетевого и дискового оборудования, но при необходимости можно добавить поддержку других устройств, переконфигурировав Linux-ядро стандартным способом.

Структура Xen-системы

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

В Xen может работать множество гостевых операционных систем, каждая из которых выполнятся в безопасной виртуальной машине. В терминологии Xen такая машина называется домен. Исполнение кода доменов планируется Xen так, чтобы сделать использование доступных процессоров наиболее эффективным. Каждая гостевая ОС занимается управлением собственных приложений. Это управление включает ответственность за планирование выполнения каждого приложения в течение временного интервала, выделенного Xen виртуальной машине.

Первый домен, домен 0, создаётся автоматически при загрузке системы. Этот домен обладает особыми управляющими привилегиями. Домен 0 запускает остальные домены и предоставляет им виртуальные устройства. Еще он занимается выполнением административных задач, таких как остановка (suspending), возобновление (resuming) работы виртуальных машин и их миграция.

В домене 0 работает процесс xend, который и занимается управлением Xen. Xend отвечает за управление виртуальными машинами и обеспечение доступа к их консолям. Команды Xend даются из командной строки и передаются ему через HTTP-интерфейс.

История

Первоначально Xen разрабатывался исследовательской группой Systems Research Group компьютерной лаборатории Кембриджского университета (University of Cambridge Computer Laboratory) как часть проекта XenoServers, спонсируемого UK-EPSRC.Цель XenoServers — предоставить «общедоступную инфраструктуру для глобальных распределенных вычислений» (public infrastructure for global distributed computing). Xen играет здесь ключевую роль, позволяя эффективно разделять одну физическую машину между несколькими клиентами, выполняющими собственные операционные системы и приложения в собственной ограниченной среде. Эта среда предоставляет защиту, изоляцию ресурсов и учёт. Дополнительные сведения о Xenoservers можно получить на web-странице проекта, там же есть ссылки на документацию и технические отчёты:

Разархивировать тарбол

08.04.2010

Создаем папку, куда будем разархивировать тарбол,

mkdir <Имя_папки>

Копируем туда тарбол

cp <исходный_файл> > <назначенная папка>

Непосредственно разархивируем в папку:

tar xfzv <Имя_тарбола>

— разархивация архивов типа tar.gz и tgz

tat xfjv <Имя_тарбола>

— разархивация архивов типа tar.bz и tbz

файлы разархивируются в текущую папку (для работы с архивами очень удобно использовать Midnight Commander — MC — свободный клон NC)

Переходим в папку с разархивированным тарболом

cd _Имя_папки_

Установка программ из сорца (.src.rpm)

08.04.2010

Программисты создают проект программы (например с помощью Kdevelop), в котором есть все makefile и файлы конфигурации (configure), а потом упаковывают их в тарболы. В случае доработки пакета создаются Patch-и к исходным текстам, которые заменяют одни строки текста программ на другие. Тарболы и прикладываемые к ним patch-и упаковываются в пакеты-сорцы (.SRC.RPM)(бывают и другие системы пакетов — но я говорю о дистрибутивах на основе RPM — Red Hat, Mandrake, SuSe). RPM-пакет — это особо организованный архив, в который помимо данных (тарбола и патчей — для сырца, необходимых программ — для бинарного RPM) упакованы скрипты установки и обновления. C помощью сорца можно создать бинарный RPM — т.е. такой RPM, в котором упакованы исполняемые пакеты. Причем, если RPM создан на текущей машине, он теоретически будет наилучшим образом подходить к текущей конфигурации пакетов (именно поэтому многие администраторы наиболее важные пакеты собирают из сырцов заново на своей машине). В результате установки сорца- в директорию /usr/src/RPM/source помещаются все необходимые тарболы (обычно один) и патчи (может быть много, а может быть и не одного — все зависит от разработчика и составителя конкретного RPM). — В директорию /usr/src/RPM/spec помещается установочный скрипт (файл с расширением spec) в котором разработчик RPM помещает все действия по установке пакета — разархивирование тарбола, накладывания патчей, транслирование и т.д. Разработано уже много макросов для spec-файлов. С наиболее старыми из них и общей теорией их построения а также опциями команды rpm можно познакомится в RPM-HOWTO . При построении пакета все операции с исходным текстом программ обычно (но не всегда) помещаются в /usr/src/RPM/builder, а новые полученные пакеты (новый сырец и новый бинарник) помещаются соответственно в /usr/src/RPM/RPMS и /usr/src/RPM/SRPMS. Получить из установленного сорца соответствующий пакет можно с помощью команды

rpm -ba packet.....spec

Установка программ из пакетов .RPM

08.04.2010

В дистрибутивах Red Hat, Mandrake, Suse, AltLinux, ASP Linux и некоторых других, программы (состоящие, как правило, из нескольких файлов) распространяются объединенными в пакеты формата RPM (RedHat Packet Manager). С помощью программы rpm можно легко устанавливать, модифицировать, удалять и создавать пакеты программного обеспечения, а также получать о них разнообразную информацию. Все эти дистрибутивы (кроме программы начальной установки) состоят из таких пакетов. Каждый пакет определяется именем программы, номером ее версии и номером версии релиза этой программы дистрибутива, а также архитектурой пакета. Например, bash-2.0.5-alt2.i586.rpm: в этом пакете

  • имя — bash,
  • номер версии — 2.0.5,
  • номер релиза — alt2,
  • архитектура — i586.

Чем больше номер версии (или при одинаковых номерах версии — чем больше номер релиза), тем, соответственно, новее пакет. Управлять пакетами можно из командной строки при помощи программы rpm, которая имеет следующий синтаксис:

rpm -options rpm_package_name

Далее приводятся возможные параметры.

Установка пакета.

Вы можете установить программу, используя опцию -i (опции -v и -h выставлены здесь для того, чтобы включить визуальное отображение процесса установки). Например, для того, чтобы установить klyx, наберите:

rpm -ivh klyx-0.10.9-ipl6mdk.i586.rpm

(настоящее имя зависит от версии программы на доступном носитеое). Заметим, что ipl6mdk означает, что пакет был модифицирован ALT Linux Team (ранее — IPLabs Linux Team) для русской редакции, это его шестая сборка, он входит в дистрибутив Mandrake. i586 указывает на то, что он скомпилирован для процессоров не ниже Pentium(tm). Наличие в имени пакета аббревиатуры alt2 означает, что пакет был собран ALT Linux Team и это его вторая сборка.

Обновление пакета.

Для того чтобы обновить программу (с целью установки более свежей версии), нужно использовать опцию -U, вместо -i, это позволит сохранить все текущие конфигурационные файлы. Если пакета ранее не было в системе, то он будет установлен.

Удаление пакета.

Если вы желаете удалить пакет из системы, внимательно введите:

# rpm -e имя_пакета_без_номера_версии_и_релиза

то есть, например, для пакета klyx:

# rpm -e klyx

Если в процессе удаления пакета произойдет нарушение зависимостей, программа rpm сообщит об этом.

Информация о пакете.

Вы можете запросить у rpm ряд полезной информации о пакете, не устанавливая его — например, бывает удобно просмотреть список всех файлов пакета или краткое описание его возможностей. Для этого используйте опцию -q (query, запрос). -qi используется для получения некоторой информации о ранее установленном пакете; -qip используется для еще не установленных пакетов. В этом случае вы должны указать полный путь и имя пакета (например, /mnt/cdrom/Mandrake/RPMS/klyx-0.10.9-ipl6mdk.i586.rpm); -ql используется для того, чтобы просмотреть список файлов пакета. Добавьте p, если пакет еще не был установлен; -qa выдает список всех установленных пакетов (не нужно указывать имя пакета).

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

Если надо установить два или более пакетов, зависящих друг от друга, то установите их одновременно:

# rpm -ihv foo-1.1-3mdk.rpm libfoo-1.5-2mdk.rpm

Часто бывает удобнее, однако, применять программы специально созданные для данного дистрибутива, например, rpmdrake, разработанную MandrakeSoft, kpackage из KDE, gnorpm из GNOME или систему apt (AltLinux). В дистрибутивах, родственных Mandrake удобнее управлять пакетами через графическую оболочку rpmdrake, которую можно запустить через панель управления DrakConf (находящуюся на рабочем столе). Можно выбрать два режима работы — установка или удаление — при помощи кнопок в правом верхнем углу. Выделив пакет, можно получить информацию о нем, входящих в его комплект файлах, а также некоторую другую. Нажав кнопку «Удалить выбранное» или «Установить выбранное», можно удалить или установить выбранные пакеты. Часто бывает так, что требуемый пакет для нормального функционирования требует другие; в этом случае программа предложит вам установить или удалить еще несколько пакетов. При удалении пакетов необходимо соблюдать осторожность, чтобы не удалить важные части системы, например пакеты kernel или glibc. Для использования функции обновления пакетов необходимо указать программе через меню Файл|Настройки дополнительный источник пакетов, в качестве которого может выступать как ресурс Internet, так и локальный каталог или диск CD-ROM. Установку пакетов весьма удобно выполнять и через консольную программу urpmi — с тем отличием, что все действия будут выполняться менее наглядно. Для установки пакетов, поставляемых ALT Linux Team, можно даже запускать программу urpmi не от имени суперпользователя, а от обычного пользователя; единственное, что необходимо сделать для этого ? добавить его в группу urpmi. Для получения дополнительной информации наберите man rpm.

Выбор файловой системы

08.04.2010


О файловой системе ext2fs написано немало. Ее отличительная особенность — очень эффективный механизм кэширования дисковых операций, что обеспечивает замечательное быстродействие, едва ли не рекордное среди известных файловых систем. Оборотная сторона — относительно слабая устойчивость при аварийном завершении работы, поскольку отложенность записи изменений файлов делает весьма высокой вероятность нарушения связи между их inode и блоками данных. Конечно, времена, когда некорректный останов Linux-машины грозил разрушением файловой системы, остались в далеком прошлом. Однако останов системы без штатного размонтирования файловых систем приводит к тому, что не устанавливается бит чистого размонтирования и утилиты обслуживания диска при перезагрузке не воспринимают их как целостные и начинают проверку, которая при современных объемах дисков отнимает время. Эта проблема решена в журналируемых файловых системах, в которых фиксируются не выполненные дисковые операции, а только предстоящие манипуляции с файлами, вследствие чего оказывается возможным самовосстановление целостности файловой системы после сбоя. Текущие версии ядра Linux поддерживают в качестве родных четыре журналируемые файловые системы: ReiserFS, ext3fs, XFS и JFS.

Файловая система ReiserFS оказалась для Linux исторически первой — она поддерживается каноническим ядром, начиная с первых версий ветви 2.4.x и была единственной, разработанной «с нуля» специально для этой ОС Хансом Райзером. Как и в большинстве таких систем здесь осуществляется журналирование только операций над метаданными файлов. Кроме этого, ReiserFS обладает уникальной возможностью оптимизации дискового пространства, занимаемого мелкими файлами — они целиком хранятся в своих inode, без выделения блоков в области данных и вместе с экономией места это способствует и росту производительности, так как данные и метаданные хранятся в непосредственной близости и могут быть считаны одной операцией ввода/вывода. Другая особенность ReiserFS — та, что хвосты файлов меньше чем один блок могут быть подвергнуты упаковке (режим тайлинга). Это обеспечивает около 5% экономии дискового пространства.

ReiserFS не совместима с ext2fs на уровне утилит обслуживания файловой системы, однако соответствующий инструментарий, объединенный в пакет reiserfsprogs, уже давно включается в штатный комплект современных дистрибутивов. Более серьезная проблема — загрузчики Linux (Lilo и GRUB) часто не способны загрузить ядро Linux с раздела ReiserFS, оптимизированного в режиме тайлинга. А поскольку, будучи отключенным, этот режим обладает свойством самовосстановления, пользователь может столкнуться с тем, что после пересборки ядра система откажется загружаться. Именно поэтому может быть необходимым создание раздела под каталог /boot.

В отличие от ReiserFS, ext3fs — не более чем журналируемая надстройка над классической ext2fs, разработанная в компании Red Hat и поддерживаемая ядром Linux, начиная с 2.4.16. Как следствие такого происхождения, она сохраняет со своей прародительницей полную совместимость, в том числе и на уровне утилит обслуживания (начиная с версии 1.21 объединяющего их пакета e2fsprogs). Другое преимущество — чуть ли не максимальная надежность: ext3fs является единственной системой из рассматриваемых, в которой возможно журналирование операций не только с метаданными, но и с данными.

В ext3fs предусмотрено три режима работы: полное журналирование (full data journaling), журналирование с обратной записью (writeback), а также задействуемое по умолчанию последовательное (ordered). В первом случае все новые данные сначала пишутся в файл журнала и только после этого фиксируются на диске. В случае аварийного отказа можно повторно перечитать журнал, приведя данные и метаданные в непротиворечивое состояние. Этот механизм практически гарантирует от потерь данных, однако является наиболее медленным. В режиме с обратной записью в файл журнала записываются только изменения метаданных и никакой гарантии сохранности данных он не предоставляет, однако обеспечивает наибольшее (в рамках ext3fs) быстродействие. В последовательном режиме также физически журналируются только метаданные файлов, однако, связанные с ними блоки данных логически группируются в единый модуль, называемый транзакцией. И эти блоки сохраняются перед записью на диск новых метаданных, что, хотя и не гарантирует полной сохранности но весьма способствует ей.

Файловая система XFS, в отличие от молодых ReiserFS и ext3fs, развивается на протяжении почти десяти лет — впервые она появилась для версии Irix 5.3 в 1994 г. XFS — единственная из рассмотренных 64-разрядная файловая система. Особенностями XFS являются:

  • механизм allocation group — деление единого дискового раздела на несколько равных областей, имеющих собственные списки inodes и свободных блоков, для распараллеливания дисковых операций;
  • логическое журналирование только изменений метаданных, но с частым сбросом их на диск для минимизации возможных потерь при сбоях;
  • механизм delayed allocation — ассигнование дискового пространства при записи файлов не во время журналирования, а при фактическом сбросе их на диск, что, вместе с повышением производительности, предотвращает фрагментацию дискового раздела;
  • списки контроля доступа (ACL, Access Control List) и расширенные атрибуты файлов (extended attributes), рассмотрение которых далеко выходит за рамки нынешней темы.

XFS очень сбалансированная файловая система — она почти столь же надежна, как ext3fs, и не уступает ReiserFS в быстродействии на большинстве файловых операций. А при манипуляциях с очень большими файлами XFS вне конкуренции. Не отмечалось для нее и проблем с совместимостью. Однако следует учесть, что в отличие от ReiserFS и ext2fs, поддержка которых является штатными опциями ядра Linux, XFS по сию пору (текущая версия — 2.4.19) не поддерживается каноническим ядром Линуса Торвальдса. Хотя недавнее включение такой поддержки в разрабатываемую ветвь ядра (версии 2.5.X) позволяют надеяться, что скоро эта функция станет штатной. Утилиты поддержки для XFS объединены в несколько пакетов, из которых абсолютно необходимым является xfsprogs. Хотя многие дистрибутивы Linux штатно комплектуются средствами поддержки XFS (из SB-дистрибутивов в настоящий момент это Gentoo и SMGL), обо всем этом следует помнить при предварительной разметке диска.

Команды Linux

08.04.2010
  • login запрос от пользователя имени и пароля (запрос от системы к пользователю) для входа в систему( по умолчанию, при наборе пароля, он не отображается).
  • logout выход из текущего сеанса оболочки.
  • startx команда для запуска графического интерфейса X Window (не путайте с системой Windows.Не бойтесь. Это не она:)).
  • shutdown останавливает систему и предотвращает повреждение файловой системы при этом, но,используется только при работе в консольном режиме.При работе в режиме X Window, не используйте.
  • halt быстрое и корректное выключение системы.
  • poweroff корректное выключение системы.
  • reboot корректное выключение с последущей загрузкой.Перезагрузка.
  • vmstat выдаёт сведения о процессах, памяти и загруженности центрального процессора.
  • su вход в сеанс администратора, но прийдётся ввести пароль.Для выхода из этого сеанса наберите exit и нажмите ENTER.
  • apropos поиск строки в заголовках и названиях документации ( дополнительно вводится слово для поиска). Выдаёт список всего найденного.
  • cal форматированный календарь на текущий месяц ( добавить y и будет календарь на весь текущий год).
  • date отображает текущие дату и время, по системным часам ядра.
  • oclock простые часы, которые висят на рабочем столе (много дополнительных параметров).
  • finger отображение информации о пользователе, имя которого указано в команде.
  • hostname команда отображает идентификатор данного узла сети ( его имя). root может изменить имя узла на новое.
  • hwclock встроенные часы Вашего компьютера.Для изменения даты и времени и синхронизации с системными часами, необходимы привелегии root.
  • pwd отображает полный путь к текущему каталогу.
  • tzselect запуск утилиты, которая позволяет выбрать часовой пояс.
  • uname выводит информацию об используемой операционной системе (при вводе дополнительных параметров команды , выдаёт довольно много информации).
  • uptime показывает текущее время, продолжительность сеанса , количество пользователей и загруженность процессора.
  • users отображает краткий список пользователей работающих в системе в данный момент.
  • w подробная информация о всех пользователях, работающих в данный момент и также простой, вход в систему и др.Если нужен один пользователь, то указать имя в параметре.
  • whatis поиск по базе данных страниц руководства и отображение краткого описания.
  • who список пользователей работающих в системе в данный момент.
  • whereiz находит файлы, страницы справочного руководства для указанной команды.
  • which показывает полный путь к исполняемому файлу команды.
  • whoami показывает текущий идентификатор пользователя, работающего в данном терминале.
  • write отправляет сообщение другому пользователю, находящемуся в системе, путём копирования строк с терминала отправителя на терминал получателя.
  • wall отправляет сообщение на терминал каждого пользователя находящегося в системе в данный момент.
  • history показывает пронумерованный список команд, которые Вы выполняли в этом и предыдущем сеансе. Если в списке историии их довольно много, то увидите последние.
  • jobs выводит список всех выполняемых и приостановленных задач.
  • kill завершить процесс (необходимо указать какой).
  • killall позволят управлять процессами используя их имена или имена файлов, а не идентификаторы как в kill. Завершаются все указанные процессы.
  • kernelversion показывает основную и дополнительную версии ядра.
  • nice позволяет отобразить или настроить приоритет задачи.
  • ps выводит список всех работающих процессов.
  • pstree показывает иерархию процессов системы, что хорошо показывает их взаимозависимость.
  • renice задаёт приоритет для указанной задачи.
  • script позволяет записывать весь вывод с терминала в файл.Что бы остановить запись нажмите Ctrl+d.Если имя файла не указано то записывается в typescript.
  • times показывает полное время выполнения процессов для всей системы и данного пользователя.
  • top запускает программу , которая позволяет управлять процессами.И ещё много дополнительной, полезной информации.
  • cd смена текущего каталога.По умолчанию переходит в домашний каталог текущего пользователя (если без параметров).
  • dir отображает файлы в текущем каталоге в алфавитном порядке и с учётом регистра.
  • file показывает тип содержимого указанного файла(текст, выполняемый, данные).
  • find поиск файлов в текущем каталоге.Если указать путь, можно искать везде.
  • free отображает информацию об оперативной памяти, подкачки, кэше,свободная памать, общая и т.д.
  • ls показывает все файлы в текущем каталоге в алфавитном порядке.Аналогична dir.
  • last показывает список пользователей, которые заходили в систему с момента создания файла /var/log/wtmp.
  • lastlog проверяет историю входа в систему зарегистрированных пользователей.Форматирует и выводит на печать файл /var/log/lastlog.
  • logger посылает запрос демону syslogd с просьбой поместить сообщение в системный журнал.
  • lpr отправляет документ на печать демону печати.
  • chmod изменяет режим доступа к файлу.Символьный или числовой формат.
  • chown смена владельца указанного файла.Требуется доступ root.
  • chage применяется для изменения срока действия учетной записи.Для администрирования.
  • chfn изменяет сведения о пользователе в файле /etc/passwd из которого берёт информацию команда finger .
  • chgrp команда для администратора,для изменения группы владельцев файла.
  • clear очищает экран терминала (если это возможно).
  • crontab обеспечивает возможность выполнения определённых задач по расписанию. Чаще используется администратором, хотя свои задачи могут быть и у пользователей.
  • csplit разбивает файл на несколько частей.Надо задать метод разбивки (строки и т.д.).
  • cp копирует один файл в другой, или несколько файлов в каталог.
  • dd копирование файла с одновременным выполнением различных, дополнительных преобразований.
  • dc калькулятор.
  • debugfs применяется для восстановления файловой системы (ext2,ext3) если недостаточно команды fsck.
  • df показывает количество используемого и свободного дискового пространства для всех подключенных разделов файловой системы.
  • du показывает количество блоков диска, занятых каждым из файлов каталога.
  • mc запускает программу Midnight Commander диспетчер файлов в текстовой консоли. Напоминает MSDOS менеджеры и довольно проста и удобна в использовании.Очень много нужных и удобных функций.
  • mkdir создание указанного каталога.
  • man справочное руководство.
  • mcat копирует необработанные данные на дискету.
  • mcopy использует отформатированную дискету MSDOS для копирования файлов в Линукс и из Линукс без предварительного подключения дискеты к файловой системе.
  • mdel удаляет файл на отформатированной дискете MSDOS.
  • mdir отображает содержимое каталога на дискете MSDOS.
  • mdu показывает дисковое пространство занятое каталогом MSDOS.
  • mesg контролирует доступ к Вашему терминалу, что бы коллеги не могли засыпать Вас сообщениями с помощью команды write
  • mformat создаёт на дискете файловую систему MSDOS.
  • mkbootdisk применяется в некоторых дистрибутивах, для создания загрузочной дискеты, содержащей всё необходимое для аварийной загрузки.
  • mktemp создаёт уникальное имя файла для временной работы.
  • mlabel создаёт метку тома на MSDOS на отформатированной дискете.
  • mmd создаёт подкаталог MSDOS на отформатированной дискете.
  • mmount подключает к файловой системе отформатированное устройство MSDOS.
  • mmove перемещает или переименовывает файл на дискете MSDOS.
  • more средство постраничного просмотра текстового файла.
  • mv переименовывает или перемещает файлы или каталоги.
  • rm удаление указанного файла.Можно и много удалить.
  • rmdir удаление указанного пустого каталога.
  • safedelete удалиние указанного файла в каталог safedelete,где он хранится некоторое время перед необратимым удалением.
  • stat отображение всей доступной информации об указанном файле.
  • touch изменяет время последнего доступа или изменения файла на текущее время.
  • undelete восстанавливает файлы удалённые командой safedelete.
  • wc показывает число строк, слов и символов в файле.
  • bunzip2 распаковывает указанный файл на 30%быстрей чем gzip.
  • bzip2 сжимает указанный файл по ускоренному алгоритму.
  • bzip2recover делает попытку восстановить данные из повреждённого файла сжатого bzip2.
  • compress сжимает указанный файл по другому алгоритму.
  • uncompress распаковывает файл сжатый предыдущей командой.
  • cpio позволяет создавать архивы и извлекать из архивов файлы.Позволяет копировать файлы. Необходимо указывать соответствующие параметры.
  • gpg позволяет зашифровать и расшифровать файл.Метод шифрования открытым ключом. Позволяет создавать электронные подписи.Если этой программы нет у Вас, скачайте http://www.gnupg.org
  • gzip сжимает указанный файл.
  • gunzip распаковывает указанный файл (расширения .Z,.gz,.tgz,.zip ).
  • gzexe позволяет сжать исполняемый файл с указанным именем так, что бы он автоматически распаковывался и выполнялся, когда пользователь даёт команду на выполнение сжатого файла.
  • gpasswd устанавливает пароль группы.
  • mcrypt Шифрует указанный файл.Создаётся новый файл в рабочем каталоге с расширением .enc. Вам будет предложено ввести пароль.Не забудьте его.
  • mdecrypt расшифровывает это же файл.Если этих утилит нет, скачайте http://mcrypt/hellug.grl
  • tar помещает два и более файлов в новый или существующий архив или извлекает их из архива.При задании каталога, заархивирует все файлы в каталоге и подкаталоге.
  • talk позволяет вести интерактивный диалог с пользователем сети ИНТЕРНЕТ.
  • tee отсылет выходные данные на два устройства вывода.Можно одновременно вывести на экран и в файл.
  • toe выдаёт сведения о существующих терминалах, которые могут быть использованы для дальнейшей работы.
  • touch изменяет время создания файла на текущее.Если файл не существует, то создаёт новый, пустой файл.
  • unarj распаковывает или выводит список содержимого указанного архива в формате .ARJ(формат сжатия MS DOS).
  • unzip распаковывает и извлекает файлы из архивов , созданных утилитами ZIP ( Linux,MS DOS,Microsoft Windows ).
  • zip архивирует и сжимает файлы.
  • zipinfo отображает информацию о содержимом архива.Если указать имя, то выдаст информацию о конкретном файле.
  • zipnote позволяет вывести и отредактировать комментарии к файлам из архива ZIP.
  • zipsplit позволяет разделить архив zip на достаточно маленькие части, для записи их на сменные носители, и записывает файлы на указанное устройство(дискеты).
  • zforce добавляет расширение .gz ко всем файлам в рабочем каталоге, или к указанному файлу, которые были сжаты, но не имеют расширения.Т.е. предотвращает повторное сжатие.
  • uuencode кодирует двоичный файл для передачи по ASC11сетям.
  • uudecode декодирует выше названный файл.
  • autorun автоматически распознаёт все доступные приводы CDROM в системе, монтирует их при вставке диска и может запускать отдельные приложения (например проигрыватель).Для использования, необходимо добавить параметры в файл привода.
  • badblocks проверить указанное устройство на наличие повреждённых секторов (указать устройство).
  • eject извлекает носитель из указанного устройства.Если устройство смонтировано то команда производит размонтирование перед извлечением носителя.
  • e2fsck проверяет и при необходимости восстанавливает повреждённый том файловой системы (ext2,ext3).
  • echo выводит строку текста на стандартное устройство вывода.
  • fdformat форматирование гибкого диска.Дополнительно вводится имя устройства и необходимый вид форматирования.
  • fg переводит процесс выполняемый в фоновом режиме в приоритетный режим.
  • fgconsole показывает количество активных виртуальных консолей.
  • fsck проверяет и восстанавливает файловую систему.
  • mount монтирование файловой системы.
  • umount отмонтирование файловой системы (в обоих командах необходимо указать, что именно).
  • rdev при вызове без параметров выводит информацию о текущей файловой системе.
  • rcp применяется для копирования файлов с одного компьютера на другой.
  • rdate получает значение даты и времени от другого узла сети.Используется для синхронизации системного времени узлов.
  • rename переименовывает файлы.Очень удобно, когда много файлов.
  • resize изменяет размер окна виртуального терминала в графическом окружении.
  • restore восстанавливает файлы заархивированные с помощью команды dump.
  • runlevel отображает текущий и предыдущий уровни выполнения.
  • shred выполняет безопасное удаление файла предварительно перезаписав его содержимое на другой диск.
  • sleep приостанавливает начало выполнения процесса на заданное количество секунд.
  • usleep приостанавливает на микросекунды.
  • sync очищает буферы файловой системы.
  • cmp производит быстрое сравнение двух указанных файлов.Если они идентичны, то никакие сообщения не выводятся.
  • column форматирует входной текст из указанного файла в список из пяти колонок.
  • diff сравнивает два указанных текстовых файла.Каждое отличие выводится в контексте. Позволяет сравнивать каталоги.
  • diff3 сравнивает три указанных файла и выводит результаты.
  • enscript преобразует указанный текстовый файл в формат Post Script.Вывод может быть направлен на печать или записан в файл.
  • fmt данная утилита производит форматирование каждой строки в указанном файле таким образом, что все строки имеют одинаковую ширину.
  • head утилита выводит первые десять строк файла.Можно и несколько файлов.
  • ispell запуск интерактивной утилиты для проверки орфографии в указанном файле.
  • id отображает действующие значения идентификаторов пользователя и группы для текущего пользователя.
  • ifconfig отображает состояние текущей конфигурации сети или настраивает сетевой интерфейс.
  • less отображает содержимое указанного файла на экране и позволяет удобно просмотреть.
  • nl команда нумерует строки в указанном файле.
  • paste обьединяет соответствующие строки файлов в колонки.При желании можно обьединить несколько файлов.
  • pdf2ps преобразует файл формата PDF в Post Script.Результат записывает на диск.
  • pdftotext преобразует файл из формата PDF в текст и записывает результат на диск.
  • pr подготавливает текст к печати, осуществляя форматирование с разбиением на страницы.Можно подготовить несколько файлов.
  • sort команда позволяет отсортировать строки файла в алфавитном порядке.
  • split разбивает файл на части.
  • zcat;zmore выводит содержимое файла сжатого gzip на экран без распаковки.
  • zcmp сравнивает сжатые gzip два файла без распаковки.
  • zdiff сравнивает сжатые gzip два файла без распаковки.
  • zegrep;zfgrep;zgrep осуществляют поиск указанной строки, выражения в файле сжатом gzip, без распаковки.
  • aumix запускает в интерактивном режиме утилиту, которая управляет различными настройками звуковой карты.
  • cdda2wav утилита предназначена для записи звуковых дорожек с аудиокомпакт диска в файлы формата WAV.Если имя файла не указано, то запись идёт в файл audio.wav в текущем каталоге.
  • cdlabelgen команда предназначена для подготовки обложек к коробкам компакт дисков. Результат в файле формата Post Script.Требуется наличие интерпретатора языка Perl не ниже 5.003 версии.
  • cdp запуск проигрывателя аудиокомпакт дисков в текстовом режиме.
  • cdparanoia считывает звуковые дорожки с аудиокомпактов и записывает в файлы WAV,AIFF,RAW.
  • combine обьединяет два и более графических файла в один.Огромное количество спецэффектов.Является частью пакета Image Magick и можно взять http://www.imagemagick.org
  • convert преобразует указанный входной графический файл, в выходной.Распознаёт множество форматов. Скачать так же как и предидущую.
  • identify определяет формат и характеристики графического файла и проверяет целостность и наличие ошибок.
  • mogrify преобразует графический файл и перезаписывает исходный.
  • montage преобразование нескольких файлов в обьединённое изображение.Скачать http://www.imagemagick.org
  • mpg123 воспроизводит на основном устройстве воспроизведения аудио файл в формате MP3. Вписывается имя файла или его адрес в Интернет.Чтобы остановить воспроизведение Ctrl+c.Что бы остановить и выйти из программы Ctrl+c нажать дважды.
  • play воспроизводит звуковой файл с указанным именем.Автоматически распознаёт тип файла. Позволяет добавлять различные звуковые эффекты к воспроизводимым файлам.
  • playmidi воспроизводит зуковые файлы в формате MIDI.
  • rec записывает входной сигнал с микрофона или других входов в звуковой файл. Тип файла следует указать с помощью параметра (type).Есть возможность добавить звуковые эффекты.
  • sox преобразует сэмплы из формата входного сигнала, на выходной с добавлением эффектов.
  • emacs запуск текстового редактора Emacs.
  • joe простой в использовании редактор работающий в текстовом режиме.
  • pico простой и удобный в использовании текстовый редактор.Удобен для редактирования конфигурационных и простых файлов.
  • vi запуск классического текстового редактора VI для UNIX систем.
  • dmesg выводит на экран сообщения ядра, включая отображаемые при запуске и потом. Что бы удобней читать, вводите dmesg|less.
  • groupadd создание группы пользователей с указанным именем.
  • groupdel удаляет группу с указанным именем.
  • groupmod изменяет параметры группы с указанным именем.
  • mkpasswd создаёт высококачественный пароль, состоящий по умолчанию из девяти символов и содержащий по крайней мере буквы в разном регистре и цифры.
  • passwd позволяет пользователю с указанным именем изменять пароль своей учётной записи. root может изменить пароль любого пользователя.
  • pwgen создаёт высококачественный пароль,который хорошо запоминается.Длинна пароля указывается числом. Если этой утилиты нет, скачать http://metalab.unc.edu/pub/Linux/system/security
  • quota показывает текущую статистику использования диска и текущие ограничения для пользователя или группы с указанным именем.
  • quotacheck исследует файловую систему на предмет использования дискового пространства.
  • quotaon включает и отключает ограничения на использование дискового пространства.
  • rpm запускает менеджер пакетов, утилиту,позволяющую устанавливать , проверять и обновлять пакеты с расширением rpm.
  • rpmfind поиск нужного пакета в базе пакетов RPM через ИНТЕРНЕТ.Последняя версия утилиты http://www.rpm.org
  • tmpwatch удаление всех файлов в указанном каталоге, если к ним не осуществлялся доступ в течении последних n часов.Очищает временные каталоги.
  • useradd создание нового пользователя с указанным именем.
  • userdel удаляет пользователя с указанным именем.
  • usermod изменяет параметры пользователя с указанным именем.
  • fetchmail утилита получения почты.Роботает в фоновом режиме.Скачивает почту с указанного сервера. Если её нет, скачать можно http://www.freshmeat.net
  • ftp устанавливает соединение с указанным узлом и позволяет скачивать или закачивать файлы.
  • lynx запуск консольного WEBброузера.
  • mail утилита редактирования и просмотра электронной почты.Отправка и получение писем.
  • netstat вывод информации о сетевой подсистеме.Очень много настроек и параметров.
  • ping отправка на указанный адрес пакетов для проверки возможности соединения с этим узлом.
  • telnet открывает окно терминала на удалённом узле и запускает интерактивный сеанс.
  • wvdial программа подключается к ИНТЕРНЕТ по протоколу PPP с использованием параметров, хранящихся в файле /etc/wvdial.conf
  • wvdialconf осуществляет поиск модема, определяет порт, к которому он подключен, его строку инициализации и максимальную скорость передачи данных.Эта информация автоматически записывается в файл (смотри выше).Требуется доступ root.
  • ar средство архивирования, предназначено для создания и распаковки архива.
  • arch отображает данные об архитектуре центрального процессора.
  • at ставит задания в очередь для последующего выполнения в указанное время.
  • atq показывает список заданий которые поставлены в очередь на выполнение.