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

Заметки веб-разработчика/админа

Тег unix

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

// Май 27, 2014 | 1799 просмотров | комментариев (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 & Отобразить часы (закрыть их можно нажатием любой кнопки)

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

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

// Февраль 14, 2014 | 7120 просмотров | комментариев (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 root@HOST 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

Команды управления пакетным фильтром pf

// Июнь 4, 2013 | 6211 просмотров | комментариев (0)

Наткнулся на список команд для управлением пакетным фильтром (фаерволом) pf.

pfctl -d выключить пакетный фильтр
pfctl -e включить пакетный фильтр
 
pfctl -f /etc/pf.conf загрузить конфиг из /etc/pf.conf
pfctl -n -f /etc/pf.conf проверить на ошибки /etc/pf.conf, но не загружать его
pfctl -R -f /etc/pf.conf загрузить только правила фитрации из /etc/pf.conf
pfctl -N -f /etc/pf.conf загрузить только правила NAT из /etc/pf.conf
pfctl -O -f /etc/pf.conf загрузить только опции из /etc/pf.conf
 
pfctl -F all сбросить всё
pfctl -F rules сбросить только правила фильтрации
pfctl -F queue сбросить только очереди
pfctl -F nat сбросить правила NAT
pfctl -F info сбросить всю статистику
pfctl -z clear очистить все счётчики
 
pfctl -s rules показать текущие правила фильтрации
pfctl -v -s rules show показать информацию по каждому правилу фильтрации
pfctl -vvsr показать текущие правила фильтрации с добавлением номера правила
pfctl -v -s nat показать текущие правила NAT отдельно по каждому правилу
pfctl -s nat -i xl1 показать правила NAT для интерфейса xl1
pfctl -s queue показать очереди
pfctl -s state показать текущее состояние таблиц
pfctl -s info показать статистику правил и состояние счётчиков
pfctl -s all показать все что можно
 
pfctl -t testtable -T show просмотр содержимого таблицы testtable
pfctl -t testtable -T show -v просмотр более подробной статистики по каждому адресу таблицы testtable
pfctl -t testtable -T add 192.168.1.1 добавление адреса 192.168.1.1 в таблицу testtable
pfctl -t testtable -T delete 192.168.1.1 удаление адреса 192.168.1.1 из таблицы testtable
pfctl -t testtable -T flush очистить таблицу testtable

Делаем запросы в PostgreSQL из nginx кэшируя с помощью Redis

// Май 23, 2013 | 5189 просмотров | комментариев (0)

Сегодня я расскажу как можно работать с базой данных PostgreSQL с помощью nginx’a без application’a (например, PHP или любого другого). Т.е. эта технология абсолютно не зависит от языка, на котором сделан сайт/проект/система.
Мы будем использовать мощь PostgreSQL в хранимых процедурах (stored procedures/functions), а кэшировать с помощью быстрого Redis.
Читать далее…

Соответствия команд SVN и Git

// Март 14, 2013 | 375 просмотров | комментариев (0)

Я создал небольшую шпаргалку соответствий команд систем управления версиями SVN/Subversion и Git. Пользуйтесь! 😉

svnadmin create repo
 
git init
git add .

svn import file://repo
git commit

svn diff | less
git diff

svn diff -rrev path
git diff rev path

patch -p0
git apply

svn status
git status

svn revert path
git checkout path

svn add file
git add file

svn rm file
git rm file

svn mv file
git mv file

svn commit
 
git commit -a
git push remote

svn log | less
git log

svn blame file
git blame file

svn cat url
git show rev:path/to/file

svn list url
git show rev:path/to/directory

svn log -rrev url
svn diff -crev url
git show rev

svn copy https://example.com/svn/trunk
https://example.com/svn/tags/name
git tag -a name

svn list https://example.com/svn/tags/
git tag -l

svn log —limit 1 https://example.com/svn/tags/tag
git show tag

svn copy https://example.com/svn/trunk https://example.com/svn/branches/branch
git branch branch

svn switch https://example.com/svn/branches/branch
git checkout branch

svn list https://example.com/svn/branches/
git branch

svn update -r rev
git checkout rev

svn update
git checkout prevbranch

svn merge -r rev:HEAD https://example.com/svn/branches/branch
git merge branch

svn merge -c rev url
git cherry-pick rev

svn checkout url
git clone url

svn switch url
 
git checkout —track
 -b branch origin/branch

svn update
git pull

Получить User-Agent из access.log

// Апрель 9, 2012 | 288 просмотров | комментариев (0)

Это делается довольно легко (выведет все уникальные User-Agent из лога):

cat access.log | awk -F'"' '{print $6}' | sort | uniq

Если лог имеет другой формат — заменить $6 на другой порядковый номер столбца.

RAR→JPEG или прячем архив внутри картинки

// Март 12, 2012 | 1113 просмотров | комментариев (0)

Спрятать файлы внутри JPEG-изображения довольно просто.
Берём архив rar/zip (к примеру something.rar) и картинку в которую мы хотим вложить какие-то данные (например someimage.jpg).

Теперь просто выпоняем комманду:

cat someimage.jpg something.rar > result.jpg

Вуаля! Наш архив something.rar теперь спрятан в картинке result.jpg.

Для извлечения необходимо просто переименовать result.jpg в result.rar и открыть любимым архиватором.

Перепост: FreeBSD + PostgreSQL: тюнинг сервера БД

// Июнь 8, 2011 | 734 просмотров | комментариев (0)

Наверное, моя статья будет не интересна матерым сисадминам и покажется копипастом. Но я адресую ее тем, кто, как и я, будучи только разработчиком, впервые столкнулся с необходимостью еще и администрировать сервер, при этом решая задачи высоконагруженной БД. И чтобы гугл вас не проклял, постараюсь собрать в одном месте основные приемы для разгона сервера БД, которые мне успешно удалось реализовать.
Читать далее…

Перепост: Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое

// Сентябрь 20, 2009 | 646 просмотров | комментариев (0)

Введение

С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.

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