Установка lynis в Unix/Linux
Lynis — это инструмент для аудита безопасности в Unix и Linux ОС. Он выполняет глубокие проверки безопасности, практически без настройки. Обычно используется системными администраторами, специалистами по безопасности и аудиторами для оценки защиты Unix/Linux систем. Он работает на самом хосте, поэтому он выполняет более обширные проверки безопасности, чем сканеры уязвимостей.
Поддерживаемые ОС
Lynis работает практически во всех Unix системах, включая:
- AIX;
- FreeBSD;
- HP-UX;
- Linux;
- Mac OS X;
- NetBSD;
- OpenBSD;
- Solaris;
- Raspberry PI;
- QNAP
- И другие.
Установка lynis на CentOS/RedHat/Fedora
-=== СПОСОБ 1 — Использовать установщик yum===-
Установка очень простая и примитивная:
# yum install lynis -y
-=== СПОСОБ 2 — Использовать git===-
Выполняем:
# git clone https://github.com/CISOfy/lynis-sdk && ./lynis-devkit build rpm
-=== СПОСОБ 3 — Использовать репозиторий===-
Установим вспомогательные пакеты:
# yum update ca-certificates curl nss openssl -y
Создаем репо-файл:
# vim /etc/yum.repos.d/cisofy-lynis.repo
И, вставляем в него:
name=CISOfy Software - Lynis package baseurl=https://packages.cisofy.com/community/lynis/rpm/ enabled=1 gpgkey=https://packages.cisofy.com/keys/cisofy-software-rpms-public.key gpgcheck=1
Следующий шаг — установка Lynis:
# yum makecache fast lynis -y
Как-то так.
Установка lynis на Debian/Ubuntu
-=== СПОСОБ 1 — Использовать установщик apt-get===-
Установка очень простая и примитивная:
# apt-get install lynis -y
-=== СПОСОБ 2 — Использовать git===-
Выполняем:
# git clone https://github.com/CISOfy/lynis-sdk && ./lynis-devkit build rpm
-=== СПОСОБ 3 — Использовать репозиторий===-
Скачиваем ключ:
# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C80E383C3DE9F082E01391A0366C67DE91CA5D5F
Или:
# wget -O - https://packages.cisofy.com/keys/cisofy-software-public.key | apt-key add -
Установим вспомогательные пакеты:
# apt install apt-transport-https -y
Использование программного обеспечения на английском языке? Затем настройте APT, чтобы пропустить загрузку переводов. Это экономит полосу пропускания и предотвращает дополнительную нагрузку на серверы репозитория:
$ echo 'Acquire::Languages "none";' > /etc/apt/apt.conf.d/99disable-translations
Далее, добавляем репозиторий:
Версия | Команда |
Debian 7 | echo «deb https://packages.cisofy.com/community/lynis/deb/ wheezy main» > /etc/apt/sources.list.d/cisofy-lynis.list |
Debian 8 | echo «deb https://packages.cisofy.com/community/lynis/deb/ jessie main» > /etc/apt/sources.list.d/cisofy-lynis.list |
Debian 9 | echo «deb https://packages.cisofy.com/community/lynis/deb/ stretch main» > /etc/apt/sources.list.d/cisofy-lynis.list |
Др. Debian | echo «deb https://packages.cisofy.com/community/lynis/deb/ stable main» > /etc/apt/sources.list.d/cisofy-lynis.list |
Ubuntu 16.04 | echo «deb https://packages.cisofy.com/community/lynis/deb/ xenial main» > /etc/apt/sources.list.d/cisofy-lynis.list |
Др Ubuntu | echo «deb https://packages.cisofy.com/community/lynis/deb/ stable main» > /etc/apt/sources.list.d/cisofy-lynis.list |
Обновите локальную базу данных пакетов новыми данными репозитория:
# apt update -y
Выполняем установку:
# apt install lynis -y
Как-то так.
Установка lynis на MacOS X
-=== СПОСОБ 1 — Использовать установщик brew===-
Устанавливаем homebrew, если не знаете как, можно ознакомиться тут:
После чего выполняем поиск (для подтверждения наличия пакета в ОС):
$ brew search lynis
И если есть, выполняем установку:
$ brew install lynis
-=== СПОСОБ 2 — Использовать git===-
Я опишу процесс установки ниже.
Установка lynis в других Unix/Linux ОС
Исходный код можно скачать следующим образом:
# mkdir /usr/local/lynis && cd /usr/local/lynis && wget https://cisofy.com/files/lynis-2.5.7.tar.gz && tar -xvf lynis-*.tar.gz
Используйте следующую команду для запуска сканирования:
# ./lynis --check-all
Можно скачать с github:
# git clone https://github.com/CISOfy/Lynis
И выполняем:
$ cd lynis; ./lynis audit system
Утилита pv — прогресс bar для консольных утилит в Unix/Linux
pv — это утилита которая имеет сокращение от pipeviewer и позволяет пользователю видеть прогресс выполнение той или иной команды по конвейеру и предоставляя информацию (прошедшее время, процент завершения (с индикатором выполнения), текущую пропускную способность, общий объем данных и ETA) — это просмоторщик пайпов.
Установка pv утилиты, очень простая, выполняем:
# aptitude install pv
или
# apt-get install pv
Для начала, подключаем репозиторий EPEL:
Установка pv утилиты, очень простая, выполняем:
# yum install pv
Установка pv в FreeBSD
Установка pv утилиты, очень простая, выполняем:
# cd /usr/ports/sysutils/pv/ # make install clean
Или:
# pkg_add -r pv
Устанавливаем homebrew: Установка homebrew на Mac OS X после чего, выполняем:
$ brew install pv
Если Вы пользователь OpenSolaris:
$ pfexec pkg install pv
Установка pv для других Unix/Linux
Если не имеется пакета для установки, то переходим на официальную страницу pv, загружаем архив и выполняем ряд действий:
$ tar -zxf pv-version.tar.gz $ cd pv-version $ ./configure && sudo make install
Возможные ошибки
В процессе настройки и эксплуатации системы, мы можем столкнуться с различными проблемами. Опишем решение некоторых из них.
1. Consider increasing /proc/sys/fs/inotify/max_user_watches
Данную ошибку мы можем увидеть в логе или статусе сервиса lsyncd. При этом, сама служба останавливается с ошибкой.
Причина: для оптимизации нагрузки, ядро Linux не позволяет сильно нагружать подсистему inotify. Но если мы указываем каталог синхронизации с большим количеством файлов, это приведет к тому, что мы упремся в установленный лимит.
Решение: необходимо увеличить предел наблюдения за ядром inotify. Для этого создаем файл настройки ядра:
vi /etc/sysctl.d/10-max_user_watches.conf
fs.inotify.max_user_watches = 524288
Применяем настройки:
sysctl -p /etc/sysctl.d/10-max_user_watches.conf
Перезапускаем сервис:
systemctl restart lsyncd
И проверяем его состояние:
systemctl status lsyncd
2. bash: rsync: command not found
Данную ошибку можно увидеть в статусе сервиса. При этом, сам сервис завершает свою работу. Полный лог имеет, примерно, такой вид:
… lsyncd: bash: rsync: command not found
… lsyncd: rsync: connection unexpectedly closed (0 bytes received so far)
… lsyncd: rsync error: error in rsync protocol data stream (code 12) at io.c(226)
Причина: на компьютере, с которым мы устанавливаем соединение по rsync не установлена одноименная утилита.
Решение: для установки необходимого пакета выполняем подходящую команду.
а) на CentOS:
yum install rsync
б) на Ubuntu:
apt-get install rsync
На компьютере с lsync перезапускаем сервис:
systemctl restart lsyncd
Установка Secure-Delete на Unix/Linux
Secure-Delete — это комплект консольных утилит для «параноика», которые предназначены для безвозвратного удаления данных. Программа юзает алгоритм стирания по методу Гутмана (Secure Deletion of Data from Magnetic and Solid-State Memory by Peter Gutmann, 1996). Это его был доклад на тему криптографии.
Установка Secure-Delete на Debian/Ubuntu/Mint
И так, чтобы установить, выполните команду:
# apt-get install secure-delete
Ничего сложного, просто установка пакета.
И так, чтобы установить, выполните команду:
# yum install secure-delete
PS: может и не быть такого пакета в ОС.
Установку для других Unix/Linux систем
Если не получилось установить утилиты с пакетов, то можно их собрать с исходного кода.
Скачиваем srm пакет и распаковываем его:
# cd /usr/local/src && wget https://freefr.dl.sourceforge.net/project/srm/1.2.15/srm-1.2.15.tar.gz && tar xfvz srm-*.tar.gz
Выполняем сборку:
# cd srm-* && ./configure && make && make install
Для работы я нашел несколько пакетов, если кто-то знает больше просьба дополнить.
Полезные опции
Рассмотрим примеры использования некоторых настроек, которые могут показаться полезными.
Исключения
Мы можем настроить исключение файлов по маске, которые не нужно передавать в другую директорию. Это делается с помощью опций exclude или excludeFrom в разделе sync, например:
sync {
…
exclude = { ‘*.bak’ , ‘*.tmp’ },
}
sync {
…
excludeFrom=»/etc/lsyncd.exclude»,
}
* в первом блоке мы исключим все файлы, которые заканчиваются на .bak или .tmp. Для второго мы будем использовать файл /etc/lsyncd.exclude, в котором перечислим исключения.
Для второго блока создаем файл с исключениями:
vi /etc/lsyncd.exclude
*.tmp
*.bak
testfile.txt
test/
* в данном примере мы игнорируем файлы, заканчиваются на .bak или .tmp,а также файл testfile.txt и содержимое каталога test.
Комментарии
Стоит обратить внимание, что комментарии в конфигурационном файле ставятся с помощью двух дефисов, например:
sync {
— протокол синхронизации
default.rsyncssh,
— источник данных
source = «/tmp/source»,
— сервер назначения
host = «dmosk@192.168.1.15»,
— каталог назначения
targetdir = «/tmp/target»,
}
Порт SSH
Отдельный порт для подключения по ssh мы можем указать в блоке sync, разделе ssh:
sync {
default.rsyncssh,
source = «/tmp/source»,
…
ssh = {
port = 2222
}
}
* в этом примере мы указываем использовать порт 2222 для подключения по SSH.
Ограничения
При необходимости, мы можем установить некоторые значения для ограничения или обхода ограничений. Настройки задаются в блоке settings:
settings {
…
statusInterval = 5
maxDelays = 900,
maxProcesses = 6,
}
* где:
- statusInterval — как говорилось выше, задает интервал обновления статус-файла в секундах. Чем ниже значение, тем быстрее файлы попадают в очередь для синхронизации.
- maxDelays — задает количество файлов в очереди, при достижении которого задачи синхронизации будут запускаться ниже таймера задержки.
- maxProcesses — максимальное количество процессов, которое сможет запустить lsync.
Установка прав
Мы можем задать права после синхронизации. Это настраивается в блоке sync, разделе rsync:
sync {
…
rsync = {
…
owner=true,
chown=»nginx:nginx»
chmod=»775″
perms=true
}
}
* где:
- owner — говорит, сохранять ли владельца файла.
- chown — задает конкретного владельца и группу.
- chmod — задает права на синхронизированные файлы.
- perms — говорит, сохранять ли права.
Установка xhost в Unix/Linux
Иногда, данная утилита не присутствует в ОС и по этому, нужно ее установить.
Установка xhost в DEB ОС
Выполняем установку:
# apt-get install x11-xserver-utils x11-utils
Для поиска можно использовать:
# apt-cache search xhost x11-xserver-utils - X server utilities
Как-то так.
Установка xhost в RPM ОС
Выполняем установку:
# yum install xorg-x11-server-utils -y
Дополнительные пакеты:
# yum install -y xorg-x11-app* # yum groupinstall -y 'X Window System' # yum install -y xorg-x11-xauth xorg-x11-fonts-* xorg-x11-utils xterm # yum -y groupinstall fonts
Для поиска можно использовать:
# yum whatprovides "*/xhost"
Как-то так.
Установка xhost в MacOS X
Выполняем установку homebrew — Установка homebrew на Mac OS X и после чего, выполняем:
$ brew install Caskroom/cask/xquartz
Как-то так.