пятница, 21 июня 2013 г.

Параметры конфига SSH сервера

Источник


SSH, то есть программы-демона sshd, производится через файл конфигурации, расположенный по адресу: /etc/ssh/sshd_config.
Описание параметров:
AcceptEnv

Переменных среды, принимаемые от клиента, если были установлены, и копируемые в environ текущего сеанса. На стороне клиента данную настройку устанавливает параметр SendEnv подробное описание можно посмотреть в man ssh_config. Указывать нужно имена переменных, разрешается использовать символы подстановки "*" и "?". Если вам нужно передать больше одной переменной, указывайте их через пробел, или в нескольких директивах AcceptEnv. Данная директива введена с целью повышения безопасности, что-бы нельзя было обойти ограничения среды пользователя, путем изменения переменных среды.
По-умолчанию, переменные не принимаются.

AddressFamily

Семейство сетевых адресов, разрешенных для использования демоном sshd.
Возможные значения: "any", "inet", (только для IPv4) и "inet6" (только для IPv6).
По-умолчанию "any", то есть любые.

AllowTcpForwarding

Разрешает TCP форвардинг ( перенаправление ). Отключения данного параметра не увеличивает безопасность системы, пока пользователям разрешен удаленный доступ, при желании, они всегда могут установить свои перенаправления.
По-умолчанию "yes".

AllowGroups

Шаблоны имён групп, разделенные пробел. Если данная директива определена, вход в систему по протоколу SSH, разрешен только пользователям, чьи, основная или дополнительная группы, совпадают с одним из шаблонов. Директива понимает только имена групп, здесь нельзя использовать цифровой идентификатор GID.
Порядок обработки директив Allow/Deny следующий: DenyUsers -> AllowUsers -> DenyGroups -> AllowGroups.
По-умолчанию, вход в систему разрешен членам всех групп.

AllowUsers

Имена пользователей разделенные пробелом. Если данная директива определена, вход в систему по протоколу SSH, разрешен только пользователям, чьи имена, совпадают с одним из шаблонов. Как и в случае с AllowGroups, распознаются только имена, UID не используется. Если шаблон определен в форме ПОЛЬЗОВАТЕЛЬ@ХОСТ, обе части проверяются отдельно, и доступ будет разрешен только пользователю с указанным именем и только с указанного хоста. Порядок обработки директив Allow/Deny следующий: DenyUsers -> AllowUsers -> DenyGroups -> AllowGroups.
По-умолчанию, доступ разрешен всем.

DenyGroups

Шаблоны имен групп через пробел. Данный параметр запрещает доступ пользователям, имена групп которых, совпадают с шаблоном. Используются только имена групп, GID не разрешен. Порядок обработки директив Allow/Deny следующий: DenyUsers -> AllowUsers -> DenyGroups -> AllowGroups.
По-умолчанию вход разрешен для всех.

DenyUsers

Имена пользователей через пробел. Пользователям, чьи имена перечислены в данной директиве, доступ в систему запрещен. Если шаблон указан в виде ПОЛЬЗОВАТЕЛЬ@ХОСТ, доступ запрещается только указанному пользователю, только с указанного хоста. Порядок обработки директив Allow/Deny следующий: DenyUsers -> AllowUsers -> DenyGroups -> AllowGroups.
По-умолчанию вход разрешен для всех пользователей.

AuthorizedKeysFile

Путь к файлу с открытыми ключами для аутентификации.. В директиве можно использовать шаблоны, они преобразуются при настройке соединения: %% заменяется на символ %, %h на домашний каталог пользователя, %u, на имя пользователя. После преобразования AuthorizedKeysFile рассматривается как абсолютный путь, или как путь относительно домашнего каталога пользователя.
По-умолчанию: ".ssh/authorized_keys".

Banner

Файл с сообщением, которое будет показано пользователю перед входом в систему.
Работает только с протоколом 2.

ChallengeResponseAuthentication

Разрешена ли беcпарольная аутентификация "запрос-ответ". Поддерживаются все механизмы аутентификации login.conf.
По-умолчанию "yes".

Ciphers

Разрешенные алгоритмы шифрования для протокола 2, указываются через запятую.
Возможны следующие варианты:
"3des-cbc", "aes128-cbc", "aes192-cbc",'"aes256-cbc", "aes128-ctr",
"aes192-ctr", "aes256-ctr", "arcfour128", "arcfour256", "arcfour",
"blowfish-cbc" и "cast128-cbc". По-умолчанию:
aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour128, arcfour256, arcfour,
aes192-cbc, aes256-cbc, aes128-ctr, aes192-ctr, aes256-ctr

ClientAliveCountMax

Количество проверок доступности клиента, которые могут оставаться без ответа. Если предел достигнут, sshd завершит сеанс. Данные запросы, отличаются от TCPKeepAlive, так как отправляются через защищённый канал и не могут быть подменены, в то время как TCPKeepAlive такую возможность допускает.
СlientAlive полезен, если поведение клиента или сервера зависит от активности соединения. Если ClientAliveInterval (см. ниже) равно 15 секундам, а значение ClientAliveCountMax оставлено по-умолчанию, не отвечающие клиенты SSH, будут отключаться приблизительно через 45 секунд.
Параметр работает только для протокола версии 2.
По-умолчанию установлено значение 3.

ClientAliveInterval

Время простоя клиента в секундах, после которого демон sshd отправляет через защищённый канал запрос клиенту. Директива работает только для протокола 2.
По-умолчанию стоит 0, то есть клиенту вообще не будут направляться такие запросы.

Compression

Данная директива позволяет разрешить сжатие сразу, разрешить после успешной аутентификации или отключить.
Возможные значения: "yes", "delayed" или "no".
По-умолчанию "delayed".

ForceCommand

В данной директиве можно указать команду, которая будет выполнена при входе пользователя в систему, игнорируя команды пользователя. Команда запускается оболочкой пользователя с ключом -c. Это относится к выполнению самой оболочки, команды или подсистемы. Используется обычно в блоке Match. Команда первоначально запрошенная пользователем, доступна в переменной среды SSH_ORIGINAL_COMMAND. Например, если прописать в данную директиву, файл-менеджер mc ( Midnight Commander ), ForceCommand mc, то при подключении пользователя по протоколу SSH, в его оболочке будет запущен mc, как только пользователь закроет mc, сессия связи будет разорвана.
По-умолчанию: не определена.

GatewayPorts

Данная директива определяет, могут-ли ли удалённые хосты подключение к портам, выделенным для туннелирования трафика клиентов. По-умолчанию, сервер sshd разрешает доступ к портам, используемым для туннелирования инициируемого сервером, только для петли (loopback), т.е. удалённые машины подключаться к перенаправляемым портам не могут. Данный параметр позволяет это исправить. Значение "no" разрешает туннелирование только в рамках данной системы, "yes" разрешает туннелирование для хостов соответствующих шаблону, а "clientspecified" позволяет клиенту самостоятельно выбирать адрес для туннелирования.
По-умолчанию "no".

GSSAPIAuthentication

Включить GSSAPI аутентификацию. Только для протокола версии 2.
По-умолчанию "no".

GSSAPICleanupCredentials

Очищать ли кэш данных аутентификации клиента, при завершении сеанса связи. Только для протокола версии 2.
По-умолчанию "yes".

HostbasedAuthentication

Использовать HostBased аутентификацию, т.е. аутентификацию по rhosts или /etc/hosts.equiv, в сочетании с открытым ключом клиента. Эта директива похожа на RhostsRSAAuthentication.
Только для протокола версии 2.
По-умолчанию "no".

HostbasedUsesNameFromPacketOnly

Выполнять запрос имени хоста при проверке файлов ~/.shosts ~/.rhosts и /etc/hosts.equiv, в рамках HostBased аутентификации. Если "yes", для проверки будет использоваться имя указанное клиентом, а не имя полученное средствами TCP соединения.
По-умолчанию "no".

HostKey

Файл хранения приватных ключей хоста. Имейте в виду, что файлы с приватными ключами, не должны быть доступны для чтения всей группе или другим пользователям, в таком случае sshd их не примет. Возможно указание нескольких файлов ключей. Ключи rsa1, используются протоколом версии 1, ключи dsa и rsa, для версии 2, протокола SSH.
По-умолчанию /etc/ssh/ssh_host_key для протокола 1, /etc/ssh/ssh_host_rsa_key и /etc/ssh/ssh_host_dsa_key для протокола 2.

IgnoreRhosts

Игнорировать содержимое файлов .rhosts и .shosts, при аутентификации RhostsRSAAuthentication и HostbasedAuthentication. Учитываться будут только /etc/hosts.equiv и /etc/shosts.equiv.
По-умолчанию "yes".

IgnoreUserKnownHosts

Игнорировать содержимое файла ~/.ssh/known_hosts, при RhostsRSAAuthentication или HostbasedAuthentication .
По-умолчанию "no".

KerberosAuthentication

Включает поддержку аутентификации Kerberos: Проверять ли пароль пользователя для PasswordAuthentication , в Kerberos KDC. Это может быть "билет" Kerberos, либо, пароль пользователя, будет проверен через Kerberos KDC, если включен PasswordAuthentication. Для данной директивы, серверу, необходима Kerberos servtab, разрешающая проверку субъекта KDC.
По-умолчанию "no".

KerberosGetAFSToken

Если AFS включена и у пользователя имеется Kerberos 5 TGT, получать талон AFS перед обращением к домашнему каталогу пользователя.
По-умолчанию "no".

KerberosOrLocalPasswd

Если аутентификация по Kerberos не проходит, проверять пароль другими средствами, например /etc/passwd.
По-умолчанию "yes".

KerberosTicketCleanup

Очистка кэша "билетов" пользователя при завершении сеанса.
По-умолчанию "yes".

KeyRegenerationInterval

Для протокола версии 1, ключ сервера будет регенерироваться по истечении количества секунд, указанных данным параметром, (в случае его использования). Целью регенерации, является, защита уже установленных, шифрованных сессий от перехвата ключей. Ключ нигде не сохраняется. Значение 0, запрещает регенерацию.
По-умолчанию 3600 секунд.

ListenAddress

Локальный адрес ( или адреса ), на которых сервер sshd будет принимать соединения.
Формат записей может быть следующим:
  • ListenAddress имя хоста или адрес-IPv4 / IPv6
  • ListenAddress имя хоста или адрес-IPv4 : порт
  • ListenAddress имя хоста или адрес-IPv6 : порт
Без указания порта, сервер sshd, будет ожидать соединений на данном адресе и на портах, указанных ранее в директиве Port, если директива Port не была назначена, соединения принимаются на 22 порту. По-умолчанию сервер sshd, ожидает соединений на всех локальных адресах.
Допускается многократное использование директивы, для указания более чеи одного адреса.

LoginGraceTime

Время ожидания регистрации пользователю в системе. Если пользователь, не успел войти в систему в течении отведенного данной директивой времени, сеанс обрывается. Если установлено 0, время на вход не ограничено.
По-умолчанию 120 секунд.

LogLevel

Устанавливает так называемый, уровень логгирования событий. сервера sshd.
Допустимые значения: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3.
Значения DEBUG и DEBUG1 являются эквивалентами. Значения DEBUG*, использовать не рекомендуется, так нарушается конфиденциальность пользователей.
По-умолчанию: INFO.

MACs

Разрешенные MAC (Message Authentication Code ), алгоритмы. Используются протоколом версии 2 для гарантирования целостности передаваемых данных. Алгоритмы указываются через запятую.
По-умолчанию: "hmac-md5,hmac-sha1,hmac-ripemd160,hmac-sha1-96,hmac-md5-96".

Match

Директива условие, образует блок. Если условия в самой директиве удовлетворены, входящие в блок директивы имеют приоритет над указанными в глобальном разделе файла конфигурации. Окончанием блока может быть, либо следующая директива Match, либо конец файла. Аргументами директивы Match, являются пары, критерий-шаблон, возможные критерии: User, Group, Host, и Address.
В блоке Match можно использовать следующие директивы: AllowTcpForwarding, Banner, ForceCommand, GatewayPorts, GSSApiAuthentication, KbdInteractiveAuthentication, KerberosAuthentication, PasswordAuthentication, PermitOpen, RhostsRSAAuthentication, RSAAuthentication, X11DisplayOffset, X11Forwarding, X11UseLocalHost .

MaxAuthTries

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

MaxStartups

Число одновременных соединений, в которых еще не пройдена аутентификация. При достижении данного значения, последующие соединения будут сбрасываться, пока не будет пройдена аутентификация, на уже установленных соединениях или пока не истечет время, установленное директивой LoginGraceTime. В качестве альтернативы может быть использован механизм раннего, случайного отказа в подключении, путем установки разделённых двоеточием значений "старт:норма:предел" (например, "10:30:60"). Соединение будет сбрасываться с вероятностью "норма/100" (30%) если имеется "старт" (10) соединений с не пройденной аутентификацией. Вероятность возрастает линейно, и всем соединениям будет отказано, если количество не прошедших аутентификацию соединений достигнет числа "предел" (60).
По-умолчанию 10.

PasswordAuthentication

Разрешить аутентификацию по паролю.
По-умолчанию "yes".

PermitEmptyPasswords

Разрешить использование пустых паролей при аутентификации по паролю.
По-умолчанию "no".

PermitOpen

Директива ограничивает возможные конечные точки для TCP туннелей. Формат записи следующий:
  • PermitOpen хост : порт
  • PermitOpen адрес-IPv4 : порт
  • PermitOpen [ адрес-IPv6 ] : порт
Разрешено указывать нескольких конечных точек, разделяя их пробелом.
Значение "any" снимает ограничение и установлено по-умолчанию.

PermitRootLogin

Разрешить пользователю root вход через протокол SSH. Возможные значения: "yes", "without-password", "forced-commands-only", "no". Если директива установлена в "without-password" вход для пользователя root по паролю, будет запрещен. Значение "forced-commands-only" разрешает регистрацию пользователя root по открытому ключу, но только если установлен параметр command ( может пригодиться для удалённого создания резервных копий, даже если вход пользователя root по протоколу SSH, в обычном режиме запрещен ). Остальные способы аутентификации для пользователя root будут запрещены.
Значение по умолчанию "no", удаленный вход в систему пользователем root, полностью запрещён.

PermitTunnel

Разрешать-ли использовать форвардинг для устройств tun. Возможные значения: "yes", "point-to-point" (уровень 3), "ethernet" (уровень 2), "no". Значение "yes", одновременно эквивалентно значениям, "point-to-point" и "ethernet".
По-умолчанию "no".

PermitUserEnvironment

Директива определяет, принимать-ли во внимание содержимое ~/.ssh/environment и параметры environment= в файле ~/.ssh/authorized_keys. Изменяя переменные окружения, пользователь может обойти ограничения своих полномочий, например, с помощью механизма LD_PRELOAD.
По-умолчанию "no".

PidFile

PID-файл в который записывается идентификатор процесса, сервера sshd.
По-умолчанию /var/run/sshd.pid.

Port

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

PrintLastLog

Показывать-ли ли время и дату последнего входа в систему, при интерактивной регистрации пользователя в ней.
По-умолчанию "yes".

PrintMotd

Показывать-ли содержимое файла /etc/motd при интерактивном входе пользователя ( в некоторых системах это выполняется сценарием /etc/profile или аналогом ).
По-умолчанию "yes".

Protocol

Какую версию протокола использовать. Возможные значения 1 и 2. можно указать через запятую. В данный момент протокол версии 1, использовать не рекомендуется из соображений безопасности.
По-умолчанию: 2.

PubkeyAuthentication

Разрешить аутентификацию по открытому ключу. Только для протокола версии 2.
По-умолчанию "yes".

RhostsRSAAuthentication

Разрешить аутентификацию по файлам .rhosts или /etc/hosts.equiv, совместно с аутентификацией по хосту RSA. Только для протокола версии 1.
По-умолчанию "no".

RSAAuthentication

Разрешить аутентификацию только по ключу RSA. Только для протокола версии 1.
По-умолчанию "yes".

ServerKeyBits

Длина ключа сервера для протокола версии 1. Минимальное значение - 512,
По-умолчанию: 768.

StrictModes

Директива определяет, проверять-ли права доступа и владельца конфигурационных файлов и домашнего каталога, перед разрешение входа пользователя в систему. Рекомендуется выполнять данную проверку, новички частенько оставляют свои каталоги или файлы доступными на запись другим пользователям.
По-умолчанию "yes".

Subsystem

Включает внешнюю подсистему (например FTP). В качестве параметров понимает, имя подсистемы и команду, которая будет выполнена при запросе подсистемы. Команда sftp-server, реализует протокол передачи файлов через SSH, "sftp".
Только для протокола версии 2.
По-умолчанию: не установлена.

SyslogFacility

Код сообщений для протокола syslog.
Возможные значения: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7.
По-умолчанию: AUTH.

TCPKeepAlive

Поддерживать-ли соединение в активном состоянии, для этого используются специальные контрольные сообщения, посылаемые с определенным интервалом времени. Если директива установлена, обрыв соединения будет вовремя замечен, а соответствующий процесс будет убит. Возможные значения "yes", "no".
По-умолчанию: "yes".

UseDNS

Использовать DNS запросы, для определения имени удалённого хоста, с целью проверки, что обратное преобразование возвращает правильный IP-адрес.
По-умолчанию: "yes".

UseLogin

Использовать login для интерактивного входа в систему. Имейте в виду, login, не используется для удалённого выполнения команд. Если директива включена, функция X11Forwarding будет отключена, поскольку login, не умеет обрабатывать cookie xauth. Если используется разделение полномочий, UsePrivilegeSeparation, директива будет отключена, после прохождения аутентификации.
По-умолчанию: "no".

UsePAM

Включить дополнительные, подключаемые модули аутентификации ( Pluggable Authentication Module ). Возможные значения "yes", "no". Если данная директива включена, PAM аутентификация, будет доступна через ChallengeResponseAuthentication и PasswordAuthentication,
в дополнение к учётной записи PAM и обработке модулей для всех видов аутентификации. Так как беспарольная аутентификация PAM "вызов-ответ", является заменой аутентификации по паролю, нужно отключить, либо PasswordAuthentication, либо ChallengeResponseAuthentication. Если директива UsePAM включена, сервер sshd, можно выполнять только с правами пользователя root.
По-умолчанию: "no".

UsePrivilegeSeparation

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

X11DisplayOffset

Номер первого дисплея доступного для туннелирования трафика X11, сервером sshd. Позволяет избежать вмешательства сервера sshd в работу настоящих серверов X11.
По-умолчанию - 10.

X11Forwarding

Разрешить туннелирование X11. Возможные значения "yes", "no". Если дисплей-посредник ожидает соединений на любых адресах ( подстановка "*"), включение туннелирования X11, подвергает сервер и виртуальные дисплеи пользователей, дополнительной опасности. По этой причине, такое поведение не является поведением по-умолчанию. Проверка и подмена данных аутентификации при атаке выполняются на стороне клиента. При туннелировании X11 графический сервер клиента, может подвергаться атаке, при запросе клиентом SSH туннелирования. Для большей безопасности администратор может запретить туннелирование, установив значение "no". Имейте в виду, даже если туннелирование X11 запрещено данной директивой, пользователи по-прежнему смогут туннелировать трафик X11, настроек туннели общего назначения. Туннелирование X11 отключается автоматически при включении параметра UseLogin.
По-умолчанию: "no".

X11UseLocalhost

Директива определяет, на какой адрес, sshd повесит сервер для форвардинга X11, на так называемую петлю ( 127.0.0.1 ) или на подстановку "*" ( любой ). По-умолчанию sshd привязывает сервер туннелирования к петле, а в качестве хоста, в переменную среды DISPLAY заносит "localhost".
Это не позволяет удалённым хостам подключаться к дисплею-посреднику. Однако, в случае старых клиентов X11, такая конфигурация может не сработать, в этом случае можно установить значение "no". Возможные значения: "yes", "no".
По-умолчанию: "yes".

XAuthLocation

Указывает путь к команде xauth.
По-умолчанию: /usr/X11R6/bin/xauth.

воскресенье, 17 февраля 2013 г.

Консольные утилиты мониторинга для Linux

Перепост отличной статьи с сайта: Korodus


На данный пост меня вдохновила статья на хабре про утилиты мониторинга для Linux. Оригинал статьи находится здесь.
1. vmstat (virtual memory statistics) — выдает некоторую статистику по использованию процессов и памяти.
vmstat [-V] [-n] [delay [count]]
2. top - консольная команда, которая выводит список работающих в системе процессов и информации о них.
top -hv | -bcisSH -d delay -n iterations [-u user | -U user] -p pid [,pid ...]
Программа с частотой обновления в 2с показывает текущую активность процессов в виде таблицы. Стандартные колонки:
  • PID — идентификатор процесса
  • USERNAME — пользователь, от которого запущен процесс
  • THR — количество потоков, запущенных процессом
  • PRI — текущий приоритет процесса
  • NICE — приоритет, выставленный командой nice. От −20 (наивысший) до 19.
  • SIZE — размер процесса (данные, стек и т. д.) в килобайтах
  • RES — текущее использование оперативной памяти
  • STATE — текущее состояние («START», «RUN» (только в этом состоянии показывает текущую нагрузку программы на процессор), «SLEEP», «STOP», «ZOMB», «WAIT» или «LOCK»)
  • C — номер процессора, на котором идет выполнение (доступен только на SMP системах)
  • TIME — время использования процессора в секундах
  • CPU — процент доступного времени процессора, которое использовала запущенная программа
  • WCPU — усредненное значение CPU
  • COMMAND — название команды, под которой работает процесс.
Чтобы выйти из программы top, нужно нажать клавишу [q].
Полезные интерактивные команды, которые можно использовать в top:
  • [Пробел] Немедленно обновить содержимое экрана.
  • [h] Вывести справку о программе.
  • [k] Уничтожить процесс. Программа запрашивает у вас код процесса и сигнал, который будет ему послан.
  • [n] Изменить число отображаемых процессов. Вам предлагается ввести число.
  • [u] Сортировать по имени пользователя.
  • [M] Сортировать по объёму используемой памяти.
  • [P] Сортировать по загрузке процессора.
Подробнее об утилите top на страничке Wiki http://ru.wikipedia.org/wiki/Top
3. atop — продвинутый интерактивный полноэкранный монитор производительности, написанный для Linux. Является аналогом top, но в отличие от него выводит только новые изменения об активных системных процессах. Позволяет контролировать загрузку ЦПУ, ОЗУ, HDD, компьютерной сети, а также распределение нагрузок по обрабатываемым процессам. Является удобным инструментом для администрирования системы.
atop [-flags] [interval [samples]]
atop -w  file  [-S] [-a] [interval [samples]]
atop -r [file] [-b hh:mm] [-e hh:mm] [-flags]
Подробнее об утилите atop на страничке Wiki http://ru.wikipedia.org/wiki/Atop  4. htop - продвинутый монитор процессов. Htop показывает динамический список системных процессов, список обычно выравнивается по использованию ЦПУ. В отличие от top htop показывает все процессы в системе. Также показывает время непрерывной работы, использование процессоров и памяти.
Подробнее об утилите htop на страничке Wiki http://ru.wikipedia.org/wiki/Htop


5. iotop — показывает активность записи на диск и чтения с диска, использование swap-раздела, и полную статистику обращения к диску всех процессов. Список процессов сортируется от более активных процессов к менее активным и обновляется раз в секунду.
Список команд управления утилитой очень короткий и состоит всего из двух команд:
  • r обратная сортировка, то есть от менее активных процессов к более активным;
  • q для выхода.
Для iotop нет man-страницы, так что используйте опцию —help для просмотра списка всех доступных опций, таких, например, как -d, которая задает частоту обновления.
Установка: sudo apt-get install iotop
Команда запуска: /usr/bin/iotop
Сайт: http://guichaz.free.fr/misc/#iotop
6. iftop - утилита предназначена для мониторинга загрузки канала в реальном времени. По умолчанию программа отображает конечные точки сетевых соединений (можно нажать клавишу p, тогда будут отображаться также номера портов), причем объем передаваемых данных отображается как в виде цифр, так и в виде графического представления: горизонтальной полоски.
Настройка отображаемой информации осуществляется путем нажатия на клавиши: для вывода списка доступных команд нажмите ?. iftop можно запускать с различными опциями, например, если нужно отслеживать только один интерфейс.
Информация отображается iftop в очень простом и понятном виде. Программа незаменима для контроля сети и определения ее пропускной способности. Возможно, вам также понадобится команда netstat -p для определения, какой именно процесс использует сеть в настоящее время.
Установка из командной строки: sudo apt-get install iftop
Команда запуска: /usr/sbin/iftop
Сайт: http://www.ex-parrot.com/~pdw/iftop/
7. powertop - находит программные компоненты, которые вынуждают Ваш ноутбук потреблять больше энергии, чем это необходимо, в то время как он находится в режиме ожидания.
PowerTOP собирает информацию из различных источников ядра и отображает результат работы системы в одном окне так, что Вы можете видеть, насколько хорошо Ваша система работает, и какие компоненты наиболее проблемные.
Подробнее об утилите можно прочитать на сайте
http://www.calculate-linux.org/blogs/en/205/show
8. itop - Мониторинг интенсивности генерации прерываний.
http://www.hunz.org/itop/
9. kerneltop
Наверное, должен показывать что-то интересное про ядро. У меня дома ему не понравился System.map, а на сервере — отсутствие /proc/profile.
10. dnstop
Специализированный анализатор DNS-трафика на интерфейсе. Наверное, был бы очень полезен при починке DNS на контроллере домена, к сожалению, Active Directory на линуксе работает не очень хорошо.
Безусловно полезно для нахождения засранца, загоняющего бинд в неприличный LA.
Анализ количества DNS запрососв как средство борьбы с завирусованными клиентами
На DNS сервер запускаем dnstop
dnstop -4 -Q -i IP_АДРЕС ВАШЕГО_DNS eth0
На DNS сервер запускаем dnstop
Смотрим tcpdump-ом DNS запросы клиентов которые превышают 1% от общего количества и убеждаемся что они с «бешеной» скоростью перебирают MX записи. Звоним клиенту – предупреждаем о зараженной машине которая рассылает спам.
11. jnettop — так же, как и iftop утилита предназначена для мониторинга загрузки канала в реальном времени.
12. sntop
Замечательная штука для скринсейвера или публичного монитора — по конфигу рассылает пинги и показывает, если какой-то хост лёг. В принципе, в рабочих условиях при настроенном конфиге позволяет быстро оценить состояние не очень большого парка серверов (запустили — и сразу красным видно, кто лежит).
13. latencytop
14. xrestop
Монитор потребления ресурсов X-сервера разными приложениями, которые к нему подключились. (Обнаружил, что хром жрёт ресурсов х-сервера много больше, чем опера. Но, Опера в свою очередь жрет гораздо больше системных ресурсов, чем слово «херня» нарисованное на заборе, что не означает, что будем использовать ту херню.)
14a. slabtop
Специализируется на структурах данных SLAB ядра, фактически, показывает использование памяти в более тонких категориях, чем «свободно/занято/кеш». View only, несколько режимов сортировки.
15. apachetop
Не столь полезен, как хотелось бы, показывает статистику ответов на запросы. Никакой магии, просто читает логи апача.
16. sqtop
Топ по логам сквида. С учётом скорости их роста, сначала генерирует промежуточную статистику, а потом уже даёт по ней шаритьс
17. pg_top
Пакет в debian почему-то называется ptop (Как и всё в дебиане… Вроде есть, но не так называется, не так работает… Пример VIM. Отвлекся…). Мониторит загрузку postgresql.
18. mytop
Мониторит mysql. Есть альтернативный mtop, делает примерно то же, но заброшен и (в дебиане ;] ) выпилен в районе lenny -> squeeze.
19. xentop
Мониториг доменов XEN’а. Интересен тем, что показывает не только память-процессор, но и дисковые операции с сетью. К сожалению, никакого управления, view only. Единственный из всех top’ов, не влазящий в 80 столбцов при выводе.
Список топов, которые я глазами не посмотрел:
  • hatop — мониторинг haproxy
  • virt-top — мониторинг за работой libvirt
  • mctop — мониторинг состояния memcached
  • perf-top — нашёл документацию, самого perf-top в виде тарбола или пакета не нашёл.
20. hatop
21. virt-top
22. mctop
23. gkrelmtop
24. ntop
25. libgtop
26. nload
27. nethogs
Отображает сетевой трафик от конкретных приложений. Очень топовая штука, имхо…
28. ntop показывает текущее использование сети. Он отображает список хостов, которые в настоящее время используют сети и предоставляет информацию, касающуюся IP и не-IP-трафикf, генерируемого каждым хостом.
29. netstat позволяет получить в режиме реального времени информацию о состоянии сетевых соединений, а также статистические данные и таблицу маршрутизации.
30. iptraf мониторинг данных, пересылаемых через сетевой интерфейс, а также просмотр статистики пo соединениям.
31. ipstate мониторит contrack из iptables, показывает активные трансляции с возможностью их прибить. Фактически, близок к цисковому sh ip nat tra, но удобнее.
32. prstat
33. glance
34. vnstat
vnstat —live Monitoring eth0
Сначала ложные топы кратко:
  • gkrelmtop — плагин под gkrelm (монитор производительности в гуе) — оффтопик.
  • ntop — нарушает text-based традицию интерактивных программ и ставится как сайт для апача.
  • libgtop — библиотека для мониторигна производительности
  • nload — консольный монитор сетевой активности, в отличие от обычных top’ов не выводит рейтинг, а рисует текстовый график.
При подготовке поста использовались материалы Wikipedia, http://www.fedoralinux.ru http://gnu.su/news.php?extend.602

понедельник, 15 октября 2012 г.

Перевод чисел из одной системы счисления в другую

Периодически понимаю, что СНОВА забыл как переводить из одной системы СС в другую!
В памяти остается только то, что это "Ну очень-же просто!"
Вообще хороший пример отсюда

Перевод чисел из одной системы счисления в другую

 Привожу примеры перевода из одной системы счисления в другую.
1)Перевод из 16 с.с. в 10 с.с.

9E16 =9*161+14*160=144+14=158;  
2)Перевод из 10 с.с в 8 с.с.
Здесь мы должны делить наше число на основание системы в которую хотим перевести число (то есть в данном случае на 8)! Собираем полученные при делении цифры, снизу вверх.
6210= 768
3)Перевод из 10 с.с в 16 с.с.

В 16 с.с. мы используем кроме цифр буквы: A,B,C,D,E,F. Поэтому при переводе из десятичной с.с. в 16 с.с., если вам встречаются числа: 10,11,12,13,14,15, то не забывайте их заменять буквами A,B,C,D,E,F!

9210= 5C16

Надо еще помнить, что  пинг адреса 172.16.1.70 и к примеру 172.016.001.070 это разные адреса - последний будет пытаться слать английский алфавит ;) на адрес 172.14.1.56 .
То есть пинг - вполне себе  калькулятор перевода из восьмеричной или шестнадцатеричной  сс в 10сс.

понедельник, 3 сентября 2012 г.

Этапы загрузки системы c Linux

При включения компьютера, первоначально происходит запуск BIOS (basic input/output system — «базовая система ввода-вывода»), которая  производит инициализацию и  проверку аппаратных средств машины (POST - power-on-self-test). Сама BIOS представляет из себя микросхему с неизменным набором микропрограмм (ПЗУ), пользовательские настройки к которым находятся в динамической энергозависимой памяти CMOS. По завершению тестирования, BIOS ищет на доступных носителях информации запись MBR - данные необходимые для дальнейшей загрузки операционной системы расположенную в первых секторах носителей, загружает его в оперативную память и передает ей управление.

В MBR находится программа-загрузчик (скорее всего GRUB(GRand Unified Bootloader), так как LILO(LInux LOader) уже практически не используется). Основная задача загрузчика состоит в переносе ядра ОС в оперативную память и передача ему управления дальнейшим функционированием компьютера.

Ядро при загрузке производит опрос присутствующих устройств с целью определения "что есть в системе". Если драйвер вкомпилирован в ядро, то устройство инициализируется, а если нет, то оно должно подключиться в виде модуля, а модуль лежит в виде файла на файловой системе, причем на неизвестно каком носителе. То есть для загрузки модулей ядра порождения процесса init (отвечающего за создание процессов описанных в /etc/inittab) необходимо получить доступ к файловой системе. Но файловая система не является частью ядра - значит её модуль тоже надо загрузить из файла который лежит где? Правильно, где то на диске.
Для решения этой проблемы была реализована технология initrd, а в настоящий момент initramfs.

initramfs - виртуальная файловая система, образ которой хранится рядом с образом ядра. при этом минимальный набор драйверов включается в ядро, а остальные подгружаются в виде модулей из виртуальной системы.
Цитата:
 Все сказанное выше относительно процедур загрузки и использования файла initrd справедливо для ядер версии 2.4.xx и более ранних. В ядрах версии 2.6 (а точнее, начиная с экспериментального ядра версии 2.5.46) разработчики решили реализовать иной механизм. Причиной послужили несколько недостатков ранее использовавшегося варианта реализации временной корневой файловой системы.
Во-первых, виртуальный диск, как и все блочные устройства, требует драйвер файловой системы для интерпретации данных во время выполнения. Этот драйвер приходилось включать в ядро.
Во-вторых, неэфективно используется оперативная память, так как размер виртуального диска фиксирован и не может изменяться во время работы без его переформатирования (даже если диск не заполнен, невозможно отдать эту память под другие нужды).
В третьих, в Linux осуществляется кэширование всех файлов и записей каталогов, прочитанных или записанных на блочное устройство. Виртуальный диск тоже кешируется, как и обычные диски, то есть часть данных будет храниться не только на RAM диске, но и в страничном кэше "page cache" (для файловых данных) и в кэше для записей каталогов "dentry cache", что еще больше снижает эффективность использования памяти.
Для устраненеия этих недостатков Линус Торвальдс предложил монтировать кэш ядра Линукс как особую файловую систему, работающую полностью в кэше ядра. При этом нет лишнего дублирования информации между блочным устройством и кэшем, так как блочного устройства попросту нет. Файловая система, реализующая эти идеи, была разработана и получила название initramfs. Ее использование имеет следующие преимущества:
  • Система, использующая initramfs в качестве корневой файловой системы, более не нуждается в соответствующем драйвере файловой системы, встроенном в ядро, так как нет блочных устройств для интерпретации файловых систем.
  • Размер этой файловой системы автоматически изменяется в соответствии с обьёмом данных, которые она содержит. При добавлении новых файлов (как и при расширении существующих) автоматически выделяется память, при удалении или уменьшении файла происходит высвобождение памяти.
  • Достоинством initramfs является также то, что это не новый код, а новое применение уже существующего кода кэширования ядра Линукс, что практически не влечёт увеличение размера ядра, выполнение будет очень простым и основано на чрезвычайно хорошо протестированной инфраструктуре.
  • Исчезают некоторые проблемы загрузки с SATA-дисков.
  • Initramfs загружается немного быстрее, чем initrd.
Формат initramfs используется по умолчанию для всех ядер, начиная с версии 2.6.15.

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


Для подробной информации стоит воспользоваться следующими ресурсами на основе которых была написана эта статья:
  1. Исследуем процесс загрузки Linux  ,
  2. Новая модель инициализации initramfs
  3. Процесс загрузки Linux

вторник, 22 мая 2012 г.

Установка Ubuntu по сети и настройка кэширующего сервера обновлений

Описание здесь
sudo apt-get install apt-cacher.
Создаем и назначаем права на папку, которая будет хранить пакеты.
Настройки apt-cacher хранятся в /etc/apt-cacher/apt-cacher.conf.
Настройка Apache:
Alias /apt-cacher /usr/share/apt-cacher/apt-cacher.pl Options ExecCGI, AddHandler cgi-script .pl.
Запускаем демона
sudo /etc/init.d/apt-cacher start.
По умолчанию сервер будет работать на 9999 порту. На клиентских машинах редактируем файл: /etc/apt/sources.list, раскоментируем настройки и добавляем:
deb updateserver:9999/ubuntu intrepid multiverse restricted main universe
, где updateserver – это имя компьютера на котором мы только что подняли apt-cacher.

четверг, 1 марта 2012 г.

Samba с асторизацией через AD

За основу и рыбу была взята замечательная статья:
Samba c доменной авторизацией и правкой пермишенов через галочки автора lissyara/

# yum install samba-winbind krb5-workstation samba

Указываем использовать winbind в /etc/nsswitch.conf

passwd: files winbind
shadow: files
group: files winbind
hosts: files dns

Правим конфиг самбы:
[global]
workgroup = BITZA
realm = BITZA.LAN
server string = Samba Server Version %v
interfaces = lo, eth0
security = ADS
password server = fs.bitza.lan dc.bitza.lan
log file = /var/log/samba/log.%m
max log size = 50
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind use default domain = Yes
admin users = "@BITZA\Domain Admins", BITZA\admin
hosts allow = 172.16.1., 127.
cups options = raw

[SVN_conf]
comment = SVN configuration
path = /var/svn/conf
admin users = "@BITZA\Domain Admins"
read only = No
vfs objects = recycle, full_audit
full_audit:priority = INFO
full_audit:facility = local1
full_audit:failure = unlink rmdir mkdir write rename write aio_write pwrite
full_audit:success = unlink rmdir mkdir write rename write aio_write pwrite
full_audit:prefix = share=%S; id=%U; ip=%I -->
recycle:minsize = 1
recycle:versions = Yes
recycle:directory_mode = 0770
recycle:exclude = *.TMP *.tmp
recycle:maxsize = 0
recycle:version = Yes
recycle:touch_mtime = Yes
recycle:touch = Yes
recycle:keeptree = Yes
recycle:repository = /shares/trash/%S

[TRAC_conf]
comment = SVN configuration
path = /var/trac-projects
admin users = "@BITZA\Domain Admins"
read only = No
vfs objects = recycle, full_audit
full_audit:priority = INFO
full_audit:facility = local1
full_audit:failure = unlink rmdir mkdir write rename write aio_write pwrite
full_audit:success = unlink rmdir mkdir write rename write aio_write pwrite
full_audit:prefix = share=%S; id=%U; ip=%I -->
recycle:minsize = 1
recycle:versions = Yes
recycle:directory_mode = 0770
recycle:exclude = *.TMP *.tmp
recycle:maxsize = 0
recycle:version = Yes
recycle:touch_mtime = Yes
recycle:touch = Yes
recycle:keeptree = Yes
recycle:repository = /shares/trash/%S

Ну и на всякий случай как ввести машину в домен:

# more /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = BITZA.LAN
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true

[realms]
BITZA.LAN = {
kdc = fs.bitza.lan
admin_server = fs.bitza.lan
}

[domain_realm]
.example.com = BITZA.LAN
example.com = BITZA.LAN

Получаем тикет:
# kinit -p admin
Password for admin@BITZA.LAN: # Вводим пароль администратора домена
Вводим машину в домен:
net ads join -U admin

пятница, 3 февраля 2012 г.

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

GENTOO:
elogv - оболочка для парсинга вывода результата emerge



CONSOLE:
CTRL-A - переход к началу строки (+CISCO CLI)
CTRL-E - переход к концу строки (+CISCO CLI)