Слава нації
#StandWithUkraine

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

Блог з програмування, оптимізації та адміністрування систем

Тег debian

Установка и оптимизация Raspbian на Raspberry Pi

// 11 Березня, 2018 | 16854 переглядів | коментарів (0)

Начнём с Википедии, если для вас эти слова в новинку 🙂

Raspberry Pi — одноплатный компьютер размером с банковскую карту, изначально разработанный как бюджетная система для обучения информатике, впоследствии получивший намного более широкое применение и популярность, чем ожидали его авторы. Разрабатывается Raspberry Pi Foundation. Всего за пять лет было продано более 12,5 миллионов устройств.

Raspberry Pi 3 Model B

  1. Скачиваем и устанавливаем Raspbian на SD-карту
  2. Первая загрузка
  3. Настраиваем сеть
  4. Закрываем всё ненужное с помощью iptables
  5. Оптимизируем дисковые операции
  6. Оптимизируем оперативную память

Читати далі…

Установка pgAdmin4 в Ubuntu 16.04

// 2 Грудня, 2016 | 41436 переглядів | 5 коментарів

Обновился графический интерфейс для управления СУБД PostgreSQL – pgAdmin 4. Будем надеяться что новая версия не будет так сильно “сыпаться” 🙂
Пока ещё нет ни deb-пакета, ни ссылок на репозиторий, но попробовать уже хочется 🙂

Так что сегодня я расскажу как поставить pgAdmin4 в режиме клиента (pgAdmin4 Desktop)

Читати далі…

Потоковая репликация в PostgreSQL 9.6

// 27 Листопада, 2016 | 30141 переглядів | коментарів (0)

Потоковая репликация (streaming replication) является передачей записей из WAL (Write-Ahead Log) от мастера к репликам. Писать при этом можно только в мастер, но читать можно как с мастера, так и с реплик. В итоге мы получаем не просто горизонтальное масштабирование, а ещё и отказоустойчивую архитектуру (failover).
Приступим к настройке реплики.

  1. Начальные условия
  2. Устанавливаем PostgreSQL 9.6 в Debian 8 (jessie) на оба сервера
  3. Настраиваем мастер (master)
  4. Настраиваем слейв (slave)
  5. Всё работает? Всё работает!
  6. А давайте что-то поломаем?!
  7. Догоняем прежний мастер до актуального состояния и возвращаем ему прежний статус

Начальные условия

Возьмём 2 сервера (в моём случаи – виртуальные машины) с чистым Debian 8.6 (jessie) amd64.

  1. master: 192.168.0.100
  2. slave: 192.168.0.200

Читати далі…

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

// 11 Серпня, 2016 | 1202 переглядів | коментарів (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

Удачи!

PostgreSQL 9.5 в Ubuntu 15.10+

// 15 Лютого, 2016 | 1267 переглядів | коментарів (0)

Добавляем в /etc/apt/sources.list адрес к репозиторию с последним PostgreSQL:

sudo -s
echo "deb https://apt.postgresql.org/pub/repos/apt/ `lsb_release -s -c`-pgdg main" >> /etc/apt/sources.list

Получаем “волшебный” ключик:

sudo wget --quiet -O - https://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc|sudo apt-key add -

И теперь всё просто:

sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

И можно поставить, если у вас ещё не было:

sudo apt-get install postgresql-9.5

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

// 30 Квітня, 2015 | 4540 переглядів | коментар (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
Читати далі…

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

// 6 Червня, 2014 | 8202 переглядів | коментар (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 | 12987 переглядів | коментар (1)

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

Ставим

sudo apt-get install sysv-rc-conf

Запускаем

sudo sysv-rc-conf

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

sysv-rc-conf

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

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

// 15 Квітня, 2014 | 2355 переглядів | коментарів (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, либо через приложение на вашем телефоне и вводим его.
Если вы всё сделали правильно, то после ввода временного пароля система вам предложит ввести пароль рута.

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

Настройка nginx + php5-fpm под Linux/Debian

// 15 Грудня, 2013 | 26159 переглядів | 29 коментарів

Сегодня я расскажу как настроить связку nginx + php5-fpm под Debian.

Начнём с инсталляции nginx.
И тут же мы сталкиваемся с тем, какой именно пакет ставить, т.к. их существует аж три:

  • nginx-light
  • nginx-full
  • nginx-extras

Отличаются они только поставкой дополнительных модулей.
Вызовем описание пакета nginx-light

aptitude show nginx-light

aptitude покажет какие именно дополнительные модули входят в “лёгкую” версию nginx

STANDARD HTTP MODULES : Core, Access, Auth Basic, Auto Index, Charset, Empty GIF, FastCGI, 
                        Gzip, Headers, Index, Log, Map, Proxy, Rewrite, Upstream. 
OPTIONAL HTTP MODULES : Gzip Precompression, IPv6, SSL, Stub Status.  
THIRD PARTY MODULES   : Echo.

А теперь для сравнения выведем список модулей “расширенной” версии nginx

aptitude show nginx-extras
STANDARD HTTP MODULES : Core, Access, Auth Basic, Auto Index, Browser, Charset, Empty GIF, 
                        FastCGI, Geo, Gzip, Headers, Index, Limit Requests, Limit Zone, Log, 
                        Map, Memcached, Proxy, Referer, Rewrite, SCGI, Split Clients, SSI, 
                        Upstream, User ID, UWSGI.  
OPTIONAL HTTP MODULES : Addition, Debug, Embedded Perl, FLV, GeoIP, Gzip Precompression, 
                        Image Filter, IPv6, MP4, Random Index, Real IP, Secure Link, SSL, 
                        Stub Status, Substitution, WebDAV, XSLT. 
MAIL MODULES          : Mail Core, IMAP, POP3, SMTP, SSL. 
THIRD PARTY MODULES   : Auth PAM, Chunkin, DAV Ext, Echo, Embedded Lua, HttpHeadersMore, 
                        http push, Nginx Development Kit, Upload module, Upload Progress, 
                        Upstream Fair Queue.

Как видите, список модулей и дополнений впечатляет.
С их подробной конфигурацией вы можете ознакомиться здесь и здесь.
Я рекомендую ставить nginx-light, т.к. чем меньше будет доставлено пакетов, тем меньше памяти будет “кушать” ядро nginx. Но также необходимо учитывать нужные модули для работы.
Читати далі…