Роман Теличко

Блог о программировании, оптимизации и администрировании

Тег linux

Какие команды терминала вы используете чаще всего?

// 13 октября, 2016 | 198 просмотров | комментариев (0)

Многие из нас используют командную строку на регулярной основе.
А вы когда-нибудь задавались вопросом, какие команды вы используете чаще всего? Есть очень простой способ выяснить.

Выполните следующую команду в окне терминала, чтобы увидеть список 10 наиболее часто используемых терминальных команд:

history | awk '{print $2}' | sort | uniq -c | sort -rn | head -10

Интерестно, не правда ли?

За полгода использования моей Ubuntu 16.04 LTS мой топ-10 список составил следующие команды:

    686 ssh
    251 sudo
    217 ll
    170 cd
     92 up
     85 hg
     70 cat
     56 scp
     51 pwgen
     44 aps

Софт по-умолчанию для Ubuntu Gnome 16.04

// 17 сентября, 2016 | 882 просмотров | комментариев (0)

В начале

sudo vi /etc/apt/sources.list
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

Софт по-умолчанию

sudo apt-get install chromium-browser aptitude unrar p7zip safe-rm sshfs pwgen imagemagick msttcorefonts mc openssh-server tmux htop atop meld cabextract gthumb fdupes mplayer vlc easytag audacious rsync libreoffice gparted git mercurial subversion shutter etherwake guake whois nmap rpl openjdk-9-jre gnome-shell-extension-weather

Дополнительный софт

Читать далее…

Делаем ввод паролей в терминале видимым

// 11 августа, 2016 | 1089 просмотров | комментариев (0)

Каждый раз, когда вы используете sudo — терминал попросит вас ввести пароль пользователя.
Это отличная мера безопасности, тут никто не спорит. Но терминал не предлагает никакой визуальной обратной связи при вводе пароля. Это часто сбивает с толку.
Добавить такую связь довольно просто в результате чего мы будем при вводе видеть «звездочки».

  1. Открываем терминал (часто сочетанием клавиш Ctrl+Alt+T) и вводим
    sudo vi /etc/sudoers
  2. Находим строчку
    Defaults env_reset

    и заменяем её на

    Defaults env_reset,pwfeedback

    visible_passwd_sudoers

  3. Сохраняем наш файл через :wq! (для программы vi)
  4. И вот, теперь вы видим такой результат при вводе:
    visible_passwd_result

Удачи!

Linux. Установка и настройка анализатора логов Logwatch

// 30 апреля, 2015 | 4473 просмотров | комментариев (1)

logwatch — это анализатор системных логов (журналов), начиная от /var/log/messages и заканчивая логами CISCO-оборудования. Результаты анализа утилита группирует и помещает в отчёт, который может как выводиться в stdout, так и отправляться электронной почтой или сохраняется в файл. Формат отчёта предлагается в трех вариантах: plaintext, HTML или файл, при этом вы можете регулировать уровень детализации отчёта исходя из собственных потребностей.
Сегодня я расскажу вам как его установить и настроить.

Ставится он в Debian/Ubuntu довольно просто:

sudo apt-get install logwatch

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

cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/

И открываем на редактирование:

vi /etc/logwatch/conf/logwatch.conf

Настраиваем:

  • Задаём месторасположение временной директории

    TmpDir = /tmp
  • Вид отправки отчета по-умолчанию задаём как

    Output = mail

    чтобы получать отчёты не в stdout (поток стандартного вывода), а на почту.

  • Формат отчёта выбираем HTML, а не plaintext

    Format = html
  • Указываем ваш email, куда будут отправлены ежедневные отчёты

    MailTo = [email protected]
  • Задаёт имя и адрес отправителя (потом удобно создать фильтр)

    MailFrom = [email protected]
  • Задаём за какой период времени отбирать анализируемые сообщения: all, today или yesterday

    Range = yesterday
  • Определяем уровень детализации отчёта. Может принимать как числовые значения от 0 (минимум детализации) до 10 (максимум). Также можно использовать синонимы: Low, Med и High, которые соответственно равны числовым 0, 5 и 10;

    Detail = Med
  • Задаём имя службы (имя файла из каталога /usr/share/logwatch/scripts/services/), логи которой необходимо анализировать. Если указать значение All, то будут обрабатываться все службы. Более того, можно некоторые из них исключить из отчёта указав перед именем службы минус ("-"). Например включаю в отчёт все службы кроме http и exim:

    Service = All
    Service = "-eximstats"
    Service = "-http"

Внешне вывод в HTML виде выглядит страшненько. Прямо «Привет из 90х».
Лично я сам формат стилизовал следующим образом, хотя можно найти и другие темы в Сети.

Открываем файл HTML-шаблона

vi /usr/share/logwatch/default.conf/html/header.html

И заменяем наш <style>...</style> на следующий:

<style type="text/css">
    body,h1,h2,h3 { 
        margin:0; padding:0; color:#404040;
        font:16px/16px courier,"courier new",Verdana,Arial,sans-serif; 
    }
    a { color:#227596; font-size:14px; }
    ul li a { font-size:18px; line-height:22px; }
    .service { padding:20px 0 0 20px; } 
    .return_link { padding:10px 0 30px 20px; }
    table,tr,td,th { 
        border:0!important; border-collapse:collapse; 
        font:14px/18px courier,"courier new",Verdana,Arial,sans-serif; 
        color:#404040; text-align:left; background: #ffffff; 
    }
    td,th { padding:2px 4px; margin:0; }  
    h1, h1 a, h2, h2 a, h3, h3 a, th { font-size:16px; }
</style>

Проверим работу logwatch. Отчет должен сформироваться и прийти на почту.

/etc/cron.daily/00logwatch

Это всё. Удачи.

Конвертация FLAC в MP3

// 17 сентября, 2014 | 2461 просмотров | комментариев (0)

Сегодня я расскажу вам о простом способе конвертации вашей музыки из .flac в .mp3 через консоль Linux/Ubuntu

sudo apt-get install flac lame

Затем переходим в папку с музыкой в формате .flac и запускаем перекодировку в .mp3 в качестве 320 kbps (файлы .flac НЕ будут удалены)

for f in *.flac; do flac -cd "$f" | lame -b 320 - "${f%.*}".mp3; done

Это всё.

Ускоряем Chromium за счёт tmpfs в Linux

// 6 июня, 2014 | 8111 просмотров | комментариев (1)

Есть довольно простой способ ускорить работу браузера Chromium (Google Chrome) явно указав путь к папке с временными файлами что будет находиться в оперативной памяти (ОЗУ). Этот приём будет особенно полезен владельцам SSD-дисков ресурс перезаписи которых очень ограничен.

Добавляем временное хранилище размером в 1GB (должно хватить), что будет находиться в оперативной памяти (ОЗУ):

sudo mkdir /ram
sudo vi /etc/fstab
tmpfs    /ram    tmpfs    defaults,noatime,mode=1777,size=1024M    0    0

Монтируем:

sudo mount -a

Смотрим:

df -h

Должно быть что-то такое:

Ф. система   Розм     Вик       Дост      Вик%      змонтований на
tmpfs        1,0G     0         1,0G      0%        /ram

Теперь редактируем файл с default-настройками Chromium, явно указывая ему путь к нашему временному хранилищу:

sudo vi /etc/chromium-browser/default

Меняем строчку

CHROMIUM_FLAGS=""

На следующую:

CHROMIUM_FLAGS="--disk-cache-dir=/ram"

Перезапускаем браузер Chromium и смотрим на использование ОЗУ диска:

df -h

Если у вас в колонке «Использовано» что-то большее нуля, то вы всё сделали правильно.

Ф. система   Розм     Вик       Дост      Вик%      змонтований на
tmpfs        1,0G     17M       1008M     2%        /ram

В результате Chromium стал реактивным 🙂
Это всё.
Удачи!

Linux. Список сервисов в автозагрузке

// 3 июня, 2014 | 12948 просмотров | комментариев (1)

Самый простой и наглядный способ вывести список сервисов/программ, находящихся в автозагрузке, с возможностью их редактирования — это использовать консольную утилиту sysv-rc-conf

Ставим

sudo apt-get install sysv-rc-conf

Запускаем

sudo sysv-rc-conf

и получаем картину:

sysv-rc-conf

Теперь с помощью пробела мы можем включить или выключить автозагрузку сервиса, - — остановит сервис, а +/= — запустит.
Пользуйтесь!

Управление менеджером терминалов tmux

// 27 мая, 2014 | 2852 просмотров | комментариев (0)

tmux — свободная консольная утилита-мультиплексор, предоставляющая пользователю доступ к нескольким терминалам в рамках одного экрана. tmux может быть отключен от экрана: в этом случае он продолжит исполняться в фоновом режиме; имеется возможность вновь подключиться к tmux, находящемуся в фоне.

При старте tmux создаёт новую сессию с единственным окном и отображает её на экране. В статусной строке в самом низу экрана отображается информация о текущей сессии; эта же строка используется для ввода команд tmux.

Это как screen, только намного лучше 🙂

  • Очень хороший способ запустить tmux. Делая так, вы сперва пытаетесь подключиться к уже существующему серверу tmux, если он существует; если такого ещё нет — создаёте новый

    tmux attach || tmux
  • Вывести список существующих сессий

    tmux ls

Попав в tmux вы можете давать команды управления им только после нажатия сочетания CTRL + b.

Важно сказать что вы может не просто создавать новые окна, а ещё и добавлять панели в каждое окно. Например вы можете разделить одно окно на 2 части (панели) — верхнюю и нижнюю или левую и правую.

Небольшая шпаргалка управления tmux:

CTRL+b cСоздать новое окно
CTRL+b 0..9Переход между окнами 0..9
CTRL+b pПерейти в предыдущее окно
CTRL+b nПерейти в следующее окно
CTRL+b lПерейти в предыдущее активное окошко (из которого вы переключились в текущее)
CTRL+b wСписок всех окон
CTRL+b &Закрыть окно (или можно набрать просто exit)
CTRL+b %Разделить текущую панель на две, по вертикали
CTRL+b "Разделить текущую панель на две, по горизонтали
CTRL+b →←↑↓Переход между панелями одного окна
CTRL+b xЗакрыть панель
CTRL+b dОтключится (прервать соединение)
CTRL+b ?Справка обо всех комбинациях клавиш
CTRL+b &Отобразить часы (закрыть их можно нажатием любой кнопки)

Читать далее…

Linux. Настройка двухэтапной аутентификации для пользователя root

// 15 апреля, 2014 | 2302 просмотров | комментариев (0)

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

Начнём с установки OATH Toolkit что уже есть в репозитории Debian.

apt-get install oathtool libpam-oath

Далее нам потребуется сгенерировать случайную строку (секретную фразу) на основе которой и будут генерироваться случайные временные одноразовые ключи. Поэтому стоит держать эту строку в секрете.

head -c 4096 /dev/urandom | md5sum | awk '{print $1}'
6819c89679c56508fec770362e312c4e

В данном примере секретная фраза это 6819c89679c56508fec770362e312c4e.

Теперь нам необходимо создать файл (/etc/users.oath) с описанием алгоритмов работы, пользователя и его секретной фразы.

echo "HOTP/T30 root - 6819c89679c56508fec770362e312c4e" > /etc/users.oath
chown root:root /etc/users.oath
chmod 600 /etc/users.oath

Далее — редактирование файла /etc/pam.d/su.
Вам необходимо дописать после

auth       sufficient pam_rootok.so

строку

auth requisite  pam_oath.so usersfile=/etc/users.oath window=10 digits=6

Где
usersfile — путь к файлу с описанием пользователей и их секретных фраз,
window — размер «окна». Поскольку временный одноразовый ключ создаётся относительно времени, то окно — это расхождение серверного времени от времени клиента/приложения. Одно «окно» — 30 секунд. Т.е. мы задали максимальное расхождение ключей в 5 минут.
digits — необходимое количество цифр во временном одноразовом ключе.

Теперь пробуем получить одноразовый временный пароль с нашей секретной фразой:

oathtool --verbose --totp 6819c89679c56508fec770362e312c4e

На что получим что-то следующее:

Hex secret: 6819c89679c56508fec770362e312c4e
Base32 secret: NAM4RFTZYVSQR7WHOA3C4MJMJY======
Digits: 6
Window size: 0
Step size (seconds): 30
Start time: 1970-01-01 00:00:00 UTC (0)
Current time: 2014-04-15 05:36:28 UTC (1397540188)
Counter: 0x2C6D360 (46584672)

385762

385762 — это и есть наш одноразовый временный пароль, а вот строку Base32 secret мы будем использовать когда будем настраивать приложение для телефона (только вводить мы будем этот код без знаков «=», т.е. как NAM4RFTZYVSQR7WHOA3C4MJMJY).

У Google есть отличная программа для генерирования временных (одноразовых) ключей — Google Authenticator
На официальной странице детально расписано как установить это приложение для телефонов на базе Android, iOS, Blackberry и т.п. поэтому на этом шаге я останавливаться не буду.

И наконец тестируем!

Подключаемся к серверу другим соединением (на всякий случай не закрывайте сессию root!) и пробуем сделать su
Система должна нас вначале спросить одноразовый временный пароль.

$ su
One-time password (OATH) for `root':

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

Это всё. Удачи!

ТОП 15 продвинутых команд для работы с tcpdump

// 14 февраля, 2014 | 10860 просмотров | комментариев (0)

Решил составить ТОП 15 самых интерестных способов использования программы анализатора траффика (сниффера) tcpdump.

  • Получение всей полезной информации о пакете.

    tcpdump -nnvvXSs 1514 -i 
  • Перехват логина и пароля для протоколов pop3, imap, smtp и http

    tcpdump -i  port http or port smtp or port imap or port pop3 -l -A \
    | egrep -i 'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|userna me:|password:|login:|pass |user '
  • Сниффинг HTTP траффика

    tcpdump -i  port 80 -w -
  • Анализирует траффик удаленно через SSH с помощью Wireshark

    ssh [email protected] tcpdump -U -s0 -w - 'not port 22' | wireshark -k -i -
  • Отображает пропускную возможность сети.

    tcpdump -w - | pv -bert >/dev/null
  • Сниффинг удаленной сети для получения pcap файла в режиме командной строки.
    Прервать сбор можно нажатием CTRL+C, после чего открыть его с помощью wireshark для более детального анализа так: wireshark /tmp/sniff.pcap
    Запускается на удалённом хосте.

    tcpdump -v -i  -s 0 -w /tmp/sniff.pcap port 
  • Анализ SMTP. Вы можете запустить это на почтовом сервере, чтобы посмотреть отправителей электронной почты и получателей.

    tcpdump -l -s0 -w - tcp dst port 25 | strings | grep -i 'MAIL FROM\|RCPT TO'
  • Захват 1500 байт данных в ASCII-режиме на 80-ом порту.

    tcpdump -i  -n tcp port 80 -A -s1500
  • Захват траффика memcached

    tcpdump -i  -s 65535 -A -ttt port 11211
  • Сниффинг траффика и переадресация его в snort на машину 192.168.0.2
    Запускается на удалённом хосте.

    tcpdump -nn -i  -w - | nc 192.168.0.2 666
  • Получение информации о Cisco-сети (VLAN тэг, порт, switch, …)

    tcpdump -nn -v -i  -s 1500 -c 1 'ether[20:2] == 0x2000'
  • Отображение SYN-пакетов для всех сетевых интерфейсов

    tcpdump -i any -n tcp[13] == 2
  • Сниффинг всех DNS запросов и ответов

    tcpdump -i  'udp port 53'
  • Сниффинг TCP и UDP траффика, исключая SSH

    tcpdump -n -v tcp or udp or icmp and not port 22