Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  немного о безопасности
  VPN (PoPToP)
  PortSentry
  sysctl
  vtund
  ipfwcount
  FreeBSD & DSA
  mpd – легко и просто!
  mpd + freeradius + mysql
  Бронированный FreeBSD
  sshit
  DSL-G804V и FreeBSD 6.2
  portaudit
  OpenVPN
  Bluetooth proximity monitor
  ESET NOD32
  GEOM-ELI
  stunnel для pop3,smtp
  NOD32 mirror
  mpd5 + ipfw-nat
  Openvpn 2 офиса
  Hotspot
  OpenVPN+авторизация
  termlog
  mpd5 + сжатие и шифрование
  ipsec_vpnc
  TOR Сервер
  Snort на FreeBSD
  Arpwatch
  Установка и настройка OpenVPN
  NOD32_mirror_v2
  Fail2ban
  IPSec
  Перенос OpenVPN сервера
  Wpa/WPA2-Radius+EAP-TLS/EAP-PEAP
  nod32 mirror script
  MAC + apache
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> Security —> termlog

Логгирование происходящего на терминалах

Автор: lissyara.


    Подкинули на форуме интересную утилиту - termlog. Она предназначена для наблюдения и логгирования того что юзер делает в ssh сессии. Думаю, будет полезна на хотинге где разрешён ssh-доступ пользовалям.
   Обновляем порты, ставим:
srv2$ cd /usr/ports/security/termlog
srv2$ make install clean

   Чтение мана и разглядывание Makefile привели к пониманию принципа работы и того, что стартового скрипта нет. На мой взгляд, досадное упущение... Рисуем свой:
srv2$ cat /usr/local/etc/rc.d/termlog.sh
#!/bin/sh

# PROVIDE: termlog
# REQUIRE: cron devfs syslogd

. /etc/rc.subr

load_rc_config termlog

name=termlog
rcvar=`set_rcvar`

command="/usr/local/bin/termlog"

# default to disable
termlog_enable=${termlog_enable:-"NO"}
# logging path
termlog_log_dir=${termlog_log_dir:-"/var/log/termlog/`date +%Y-%m-%d`"}
# maximum monitored consoles
termlog_max_cons=${termlog_max_cons:-"30"}
termlog_flags=${termlog_flags:-" -C $termlog_log_dir -f -n $termlog_max_cons &"}

start_precmd=start_precmd

start_precmd()
{
        mkdir -p $termlog_log_dir
        chmod 751 $termlog_log_dir
}

run_rc_command "$1"

   Можно прописывать переменные в rc.conf (я прописал одну - "termlog_enable") и запускать:
srv2$ /usr/local/etc/rc.d/termlog.sh start
Starting termlog.
srv2$ 2008-12-11 11:18:59.828679 session lissyara_ttyp0_1228994339.log created

srv2$    

   Ага. Моя сессия уже пишется =))
   Добавялем в крон строку перезапуска ночью, чтоб директория менялась:
srv2$ crontab -l -u root | tail -1
# termlog
59 23 * * * sleep 62 && /root/scripts/termlog.rotate.log.sh >/dev/null 2>&1
srv2$  

Скрипт:
srv# more /root/scripts/termlog.rotate.log.sh
#!/bin/sh

/usr/local/etc/rc.d/termlog restart

. /etc/rc.conf

work_dir=`dirname $termlog_log_dir`

cd $work_dir

num_dirs=`ls -t | wc -l`
num_old_dirs=`expr $num_dirs - 1`

ls -t | tail -$num_old_dirs |
{
while read dir_name
do
        cd $work_dir/$dir_name && gzip * &
done
}

srv#   

Всё. Настоятельно рекомендую настроить ротацию файлов логов, ибо растут они очень быстро.

Стартовый скрипт в немного допилил, отправил баг-репортом. Глядишь, закоммитят. Статью тогда правда убрать придётся - писать уже будет неочем =))
http://www.freebsd.org/cgi/query-pr.cgi?pr=129571

2009-03-03: Закоммитили.
Поправил чутка статью.



Ссылка на обсуждение: Incorrect URL.

размещено: 2008-12-11,
последнее обновление: 2008-12-11,
автор: lissyara

оценить статью:

Raven2000, 2008-12-11 в 14:54:25

Приятная тулза, но плохо, что она недоделана автором до конца.

zingel, 2008-12-11 в 15:08:21

доделай сам

Morty, 2008-12-11 в 15:24:32

очень вовремя
спасибо !

arksu, 2008-12-11 в 16:18:03

мм..... тема! давно искал что-то подобное. тока все время не мог уделить.
спасибо! надо будет залить на все сервера

abigor, 2008-12-11 в 16:45:11

хм, я больше смотрел в сторону http://xgu.ru/wiki/LiLaLo но увы этого дела нету в портах, но тут дали наводку на поиск

Ара, 2008-12-12 в 3:06:29

Вместо "/usr/local/bin" надо писать "%%PREFIX%%/bin"

lissyara, 2008-12-12 в 8:58:43

Если вы про PR - то да, тупанул.
Если про скрипт в статье - то нет.

Ара, 2008-12-12 в 10:09:16

Про PR, да. :)

HEDG_SS, 2009-10-29 в 11:03:11

Чуток дописал скрипт ротации логов "под себя", может кому-то пригодится...
Добавлено ограничение : за сколько последних дней сохранять логи, чтоб не плодить сотни папок
#!/bin/sh

/usr/local/etc/rc.d/termlog.sh restart
# Где лежат логи (папки с логами по дате)
work_dir="/var/log/termlog"
# За сколько последних дней оставлять логи
num_day="30"
cd $work_dir

### Раздел архивирования новых логов
num_dirs=`ls -t | wc -l`
num_old_dirs=`expr $num_dirs - 1`
ls -t | tail -$num_old_dirs |
{
while read dir_name
do
       chmod  400 $work_dir/$dir_name/* && cd $work_dir/$dir_name && gzip * &
done
}

### Удаление старых логов
cd $work_dir
num_dirs=`ls -t | wc -l`

if [ $num_dirs -gt $num_day ]
then
num_old_dirs=`expr $num_dirs - $num_day`
ls -t | tail -$num_old_dirs |
{
while read dir_name
do
       rm -R "$work_dir/$dir_name"
done
}
fi

agat, 2012-08-12 в 14:44:20

заметил фичу


agat@alfa:/var/log/termlog#/usr/local/etc/rc.d/termlog start
Starting termlog.
agat@alfa:/var/log/termlog#2012-08-12 10:19:32.238465 session agat_ttyp0_1344766772.log created
agat@alfa:/var/log/termlog#tail -f /var/log/termlog/agat_ttyp0_1344766772.log


и вот тут начинается лол.
Если запустить mc то в логе получается бред, но
если после этого посмотреть cat /файл/лога то можно заметить, что мс на долю секунды запускается, а так же подозреваю, что обрабатываются нажатия клавиш в этом самом мс и все это исполняется в виде макроса наживую систему.

З.Ы. или это только у меня паранойя?


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 5 чел.
За последние 30 мин было: 42 человек
За сегодня было
4359 показов,
567 уникальных IP
 

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

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.1094 секунд
Из них PHP: 48%; SQL: 52%; Число SQL-запросов: 77 шт.
Исходный размер: 87881; Сжатая: 16487