Добавление сертификатов в конфиг клиента openvpn

Что бы не передавать клиентам openvpn несколько файлов, есть возможность встроить сертификаты в конфиг openvpn. Пример ниже:

client
remote my-server 1355
proto udp
dev tun
persist-key
persist-tun
resolv-retry infinite
nobind
comp-lzo
verb 3

Читать далее Добавление сертификатов в конфиг клиента openvpn

Понимание CMD и ENTRYPOINT в docker

При создании docker контейнера, основной целью является, что в дальнейшем любой сможет не вникая в подробности просто выполнить docker run <container_name> и получить запущенное приложение в контейнере.

В сегодняшней статье мы рассмотрим две ключевые инструкции dockerfile, которые позволяют нам делать именно это. Давайте рассмотрим различия между инструкциями CMD и ENTRYPOINT.

На первый взгляд кажется, что инструкции CMD и ENTRYPOINT выполняют одну и ту же функцию. Однако, как только вы начнете копать глубже, сможете легко понять, что эти две инструкции выполняют совершенно разные задачи.

Для примера мы создадим docker контейнер, который просто выполняет утилиту ApacheBench.

Читать далее Понимание CMD и ENTRYPOINT в docker

Поиск скрытых процессов в linux

Открыл для себе простую утилиту для поиска скрытых процессов, оказалось актуально при поиске руткитов на сервере. Называется unhide. В centos ставится просто из epel репозитория. yum install unhide . Синтаксис простой unhide name_test , если необходимо записать вывод в файл ключ ‘-f’.

Ниже набор тестов:

Читать далее Поиск скрытых процессов в linux

Screen hotkeys

Весьма удобная штука для работы с несколькими консолями на одном сервере.
После подключения к серверу, screen -ls посмотреть существующие сеансы, либо screen -S name.seanse для создания нового.
Ctrl-A и ? отобразятся доступные команды
Для закрытия повисшего окна использует Ctrl+a k

Ниже наиболее полезные
Key Action Notes
Ctrl+a c new window
Ctrl+a n next window I bind F12 to this
Ctrl+a p previous window I bind F11 to this
Ctrl+a » select window from list I have window list in the status line
Ctrl+a Ctrl+a previous window viewed

Ctrl+a S split terminal horizontally into regions Ctrl+a c to create new window there
Ctrl+a | split terminal vertically into regions Requires screen >= 4.1
Ctrl+a :resize resize region
Ctrl+a :fit fit screen size to new terminal size Ctrl+a F is the same. Do after resizing xterm
Ctrl+a :remove remove region Ctrl+a X is the same
Ctrl+a tab Move to next region

Ctrl+a d detach screen from terminal Start screen with -r option to reattach
Ctrl+a A set window title
Ctrl+a x lock session Enter user password to unlock
Ctrl+a [ enter scrollback/copy mode Enter to start and end copy region. Ctrl+a ] to leave this mode
Ctrl+a ] paste buffer Supports pasting between windows
Ctrl+a > write paste buffer to file useful for copying between screens
Ctrl+a < read paste buffer from file useful for pasting between screens Ctrl+a ? show key bindings/command names Note unbound commands only in man page Ctrl+a : goto screen command prompt up shows last command entered Читать далее Screen hotkeys

Проверка диска FSCK на LVM разделе

В одно доброе утро в городе Нске отключили электричество. Храбрые упсы сражались до последнего, но через некоторое время пали.
После восстановления аварии на сети. Один из серверов не захотел запускаться, до ходил до initframs и там оставался. Причиной стала поломанная файловая система, с обычными разделами обычно все понятно, запускаем fsck -y /dev/sdX1. В данном же случае были LVM разделы.
В данной ситуации необходимо подключить сам LVM раздел, а потом уже начать его проверку.

Подключаем любой линуксовый лайв образ:
rescue:~# lvm pvscan
rescue:~# lvm vgscan
rescue:~# lvm lvchange -ay /dev/VolGroup0/LogVo0
rescue:~# lvm lvscan
ACTIVE ‘/dev/VolGroup0/LogVol0’ [100.0 GB]
inactive ‘/dev/VolGroup0/LogVol0’ [10.0 GB]
rescue:~# fsck -yfv /dev/VolGroup0/LogVol0
После завершения проверки перезагружаем сервер.

Docker остановить/удалить все контейнеры

Остановить все контейнеры
# docker stop $(docker ps -a -q)

Удалить все контейнеры
# docker rm $(docker ps -a -q)

Удалить все образы
# docker rmi $(docker images -q)

С опцией -f можно удалять принудительно
# docker rmi -f $ (docker images -q)
# docker rm -f $ (ps docker -q -a)

Применение ограничений в Postfix

Сохраняю себе выдержки из документации, ибо эта часть значительно улучшила понимание работы ограничений (smtpd_*_restrictions) работающих на уровне smtpd. В этой заметке не будет правил которые входят в каждый блок ограничений, их достаточно много да и в оригинальной документации, можно быстро найти.

Вот все ограничения в порядке их отработки postfix’ом со значениями по умолчанию и входными данными для проверки:

1. smtpd_client_restrictions (empty) – IP-адрес и (если возможно) доменное имя клиентского компьютера (или другого почт.сервера), который соединяется с сервером postfix для отправки письма.
2. smtpd_helo_restrictions (empty) – имя компьютера и (если возможно) его IP-адрес по имени, переданному в команде HELO/EHLO hostname.
3. smtpd_etrn_restrictions (empty) – то же, что и для 1), 2).
4. smtpd_sender_restrictions (empty) – адрес отправителя, указанный в команде MAIL FROM:.
5. smtpd_recipient_restrictions (permit_mynetworks, reject_unauth_destination) – адрес получателя, указанный в команде RCPT TO:.
6. smtpd_data_restrictions (empty) – то же, что и для 1)…5) +специальные правила (см.далее).
7. smtpd_end_of_data_restrictions (empty) – то же, что и для 1)…6).
Читать далее Применение ограничений в Postfix

Устранение конфликтов зависимостей mysql

При обновлении mysql наткнулся на проблему с зависимостями.
file /usr/share/mysql/fill_help_tables.sql from install of mysql-community-server-5.7.18-1.el6.x86_64 conflicts with file from package MySQL-server-community-5.1.71-1.rhel5.x86_64
file /usr/share/mysql/mysql-log-rotate from install of mysql-community-server-5.7.18-1.el6.x86_64 conflicts with file from package MySQL-server-community-5.1.71-1.rhel5.x86_64
file /usr/share/mysql/mysql_system_tables.sql from install of mysql-community-server-5.7.18-1.el6.x86_64 conflicts with file from package MySQL-server-community-5.1.71-1.rhel5.x86_64
file /usr/share/mysql/mysql_system_tables_data.sql from install of mysql-community-server-5.7.18-1.el6.x86_64 conflicts with file from package MySQL-server-community-5.1.71-1.rhel5.x86_64
file /usr/share/mysql/mysql_test_data_timezone.sql from install of mysql-community-server-5.7.18-1.el6.x86_64 conflicts with file from package MySQL-server-community-5.1.71-1.rhel5.x86_64

Помогло следующее решение.
$ yum shell
> remove MySQL-server-community
> install mysql-community-server
> run

Памятка по командам linux

Пока активно что-то настраиваю помню необходимые мне команды и ключи к ним. Через какое-то время, могу запамятовать не которые из них. Поэтому ниже выдержка основы основ, что бы была возможность сразу в одном месте посмотреть.

Системная информация
arch отобразить архитектуру компьютера
uname -m
uname -r отобразить используемую версию ядра
dmidecode -q показать аппаратные системные компоненты — (SMBIOS / DMI)
hdparm -i /dev/hda вывести характеристики жесткого диска
hdparm -tT /dev/sda протестировать производительность чтения данных с жесткого диска
cat /proc/cpuinfo отобразить информацию о процессоре
cat /proc/interrupts показать прерывания
cat /proc/meminfo проверить использование памяти
cat /proc/swaps показать файл(ы) подкачки
cat /proc/version вывести версию ядра
cat /proc/net/dev показать сетевые интерфейсы и статистику по ним
cat /proc/mounts отобразить смонтированные файловые системы
lspci -tv показать в виде дерева PCI устройства
lsusb -tv показать в виде дерева USB устройства
date вывести системную дату
cal 2016 вывести таблицу-календарь 2016-го года
date 041217002007.00 установить системные дату и время ММДДЧЧммГГГГ.СС (МесяцДеньЧасМинутыГод.Секунды)
clock -w сохранить системное время в BIOS
Читать далее Памятка по командам linux

Часто используемые, ключи команды tar

tar — это архиватор от GNU. Он берёт несколько файлов или каталогов и объединяет их в один большой файл. Позволяет сжать все дерево каталогов.

Мини заметка по наиболее часто используемым командам.
-c – создать (create) новый архив
-x – извлечь (extract) файлы из архива
–delete – удалить (delete) файлы из архива
-r – добавить (append) файлы в существующий архив
-A – добавить (append) tar-файлы в существующий архив
-t – список файлов в архиве (содержимое архива)
-u – обновить (update) архив
-d – операция сравнения архива с заданной файловой системой
-z – обработка архива с помощью gzip. Сжатие или разжатие, в зависимости от комбинации сопутствующих ключей -c или -x.
-j – обработка архива с помощью bzip2. Сжатие или разжатие, в зависимости от комбинации сопутствующих ключей -c или -x.