Последние новости

Простенький и незатейливый скрипт позволяет быстро создать и уничтожить chroot окружение.




#!/bin/sh

# VERSION 0.0.1
# Script creted by Ryabinin Sergey Vladimirovich
# dev@brigar.ru
#


set -e

help(){
printf "Usage:

Create chroot
$0 -c your_name_chroot

Mount chroot
$0 -m your_name_chroot

Umount chroot
$0 -u your_name_chroot

Destroy chroot
$0 -r your_name_chroot
"
}

chroot_create(){

CHROOT_DIR="/chroot/$1"

mkdir -p ${CHROOT_DIR}
mkdir -p ${CHROOT_DIR}/dev
mkdir -p ${CHROOT_DIR}/bin
mkdir -p ${CHROOT_DIR}/libexec
mkdir -p ${CHROOT_DIR}/lib
mkdir -p ${CHROOT_DIR}/usr/lib
mkdir -p ${CHROOT_DIR}/usr/ports
mkdir -p ${CHROOT_DIR}/usr/bin
mkdir -p ${CHROOT_DIR}/usr/sbin
mkdir -p ${CHROOT_DIR}/usr/share

mount -t nullfs -o ro,nosuid,noexec /usr/ports/ ${CHROOT_DIR}/usr/ports
mount -t nullfs -o ro,nosuid /usr/lib/ ${CHROOT_DIR}/usr/lib
mount -t nullfs -o ro,nosuid /libexec/ ${CHROOT_DIR}/libexec
mount -t nullfs -o ro,nosuid /lib/ ${CHROOT_DIR}/lib
mount -t nullfs -o ro,nosuid /usr/sbin/ ${CHROOT_DIR}/usr/sbin
mount -t nullfs -o ro,nosuid /usr/bin/ ${CHROOT_DIR}/usr/bin
mount -t nullfs -o ro,nosuid /bin/ ${CHROOT_DIR}/bin
mount -t nullfs -o ro,nosuid /usr/share/ ${CHROOT_DIR}/usr/share
mount -t devfs devfs ${CHROOT_DIR}/dev

printf "Chroot created: ${CHROOT_DIR} and entered
"

chroot ${CHROOT_DIR}
}


chroot_destroy(){
CHROOT_DIR="/chroot/$1"
umount -f ${CHROOT_DIR}/usr/lib
umount -f ${CHROOT_DIR}/libexec
umount -f ${CHROOT_DIR}/lib
umount -f ${CHROOT_DIR}/usr/ports
umount -f ${CHROOT_DIR}/usr/sbin
umount -f ${CHROOT_DIR}/bin
umount -f ${CHROOT_DIR}/usr/bin
umount -f ${CHROOT_DIR}/dev
umount -f ${CHROOT_DIR}/usr/share

rm -rf ${CHROOT_DIR}
echo "Chroot destroy: ${CHROOT_DIR}"
}

chroot_umount(){
CHROOT_DIR="/chroot/$1"
umount -f ${CHROOT_DIR}/usr/lib
umount -f ${CHROOT_DIR}/libexec
umount -f ${CHROOT_DIR}/lib
umount -f ${CHROOT_DIR}/usr/ports
umount -f ${CHROOT_DIR}/usr/sbin
umount -f ${CHROOT_DIR}/usr/bin
umount -f ${CHROOT_DIR}/bin
umount -f ${CHROOT_DIR}/dev
umount -f ${CHROOT_DIR}/usr/share

echo "Chroot umount: ${CHROOT_DIR}"
}

chroot_mount(){
CHROOT_DIR="/chroot/$1"
mount -t nullfs -o ro,nosuid,noexec /usr/lib/ ${CHROOT_DIR}/usr/lib
mount -t nullfs -o ro,nosuid,noexec /libexec/ ${CHROOT_DIR}/libexec
mount -t nullfs -o ro,nosuid,noexec /lib/ ${CHROOT_DIR}/lib
mount -t nullfs -o ro,nosuid,noexec /usr/ports/ ${CHROOT_DIR}/usr/ports
mount -t nullfs -o ro,nosuid /usr/sbin/ ${CHROOT_DIR}/usr/sbin
mount -t nullfs -o ro,nosuid /usr/bin/ ${CHROOT_DIR}/usr/bin
mount -t nullfs -o ro,nosuid /bin/ ${CHROOT_DIR}/bin
mount -t nullfs -o ro,nosuid /usr/share/ ${CHROOT_DIR}/usr/share
mount -t devfs devfs ${CHROOT_DIR}/dev

echo "Chroot mount: ${CHROOT_DIR}"
}


if [ "${#1}" -eq 0 ] || [ "${#2}" -eq 0 ]; then
help
fi

if [ "${1}" = "-c" ] && [ "${#2}" -gt 0 ]; then
chroot_create $2
fi

if [ "${1}" = "-u" ] && [ "${#2}" -gt 0 ]; then
chroot_umount $2
fi

if [ "${1}" = "-r" ] && [ "${#2}" -gt 0 ]; then
chroot_destroy $2
fi

if [ "${1}" = "-m" ] && [ "${#2}" -gt 0 ]; then
chroot_mount $2
fi





Последнею версию всегда можно будет найти по ссылке chroot_cr

В новой версии появилась поддержка FreeBSD, это версия dev которая потом будет перенесена в стабильную версию

  1. dev версия go.get.dev
  2. stable версия go.get

Случается что работая в консоли необходимо что-то запаковать / распаковать, а лишний раз вспоминать команды tar сильно лень, в силу этих причин появился небольшой скриптик который сильно облегчает работу.

pack

ключ пример описание
-f pack -f /bla/bla Упаковать файл либо каталог. Создается архив и его контрольная сумма.
-u pack -u bla.tar.gz Распаковать архив tar.gz
-i ./pack -i Установить скрипт, скрипт установится в /usr/local/bin/pack если папки нет, она создаться.
-e pack -e /bla/bla Упаковать и зашифровать файл либо каталог. Создается зашифрованный архив и его контрольная сумма.
-d pack -d bla.tar.gz.enc bla.tar.gz Распаковать и дешифровать зашифрованный архив.
-n pack -n Проверить и установить последнею версию pack  https://brigar.ru/upload/pack

Скачать последнею версию

Установка qbittorrent в качестве качалки на удаленке с доступом через web-морду

su
pkg update
pkg install -y qbittorrent-nox
sysrc qbittorrent_enable=YES



Сгенерируем сертификаты (вместо blabla можете подставить свой домен)

openssl req -new -rand /dev/random -x509 -nodes \
-days 365 -newkey rsa:4096 \
-keyout /var/db/qbittorrent/conf/qBittorrent/config/WebUIPrivateKey.pem \
-out /var/db/qbittorrent/conf/qBittorrent/config/WebUICertificate.crt \
-subj "/C=RU/ST=Moscow/O=blabla/CN=blabla/OU=blabla/emailAddress=info@blabla"

Важное
Предполагается что у вас ip wan то рекомендуется явно указать ip необходимые ваши ip и port (где 10.10.5.46 ip/wan и tcp/порт 8080 для доступа к web-морде )
В том числе где tcp/порт 5283 который должен быть доступен извне, можно указать иной

mkdir -p /var/db/qbittorrent/conf/qBittorrent/config
mkdir -p /var/db/qbittorrent/conf/qBittorrent/downloads
ee /var/db/qbittorrent/conf/qBittorrent/config/qBittorrent.conf

[AutoRun]
enabled=false
program=

[Core]
AutoDeleteAddedTorrentFile=IfAdded

[LegalNotice]
Accepted=true

[Preferences]
Queueing\QueueingEnabled=false
WebUI\HTTPS\CertificatePath=/var/db/qbittorrent/conf/qBittorrent/config/WebUICertificate.crt
WebUI\HTTPS\KeyPath=/var/db/qbittorrent/conf/qBittorrent/config/WebUIPrivateKey.pem
WebUI\HTTPS\Enabled=true
WebUI\Port=8080
WebUI\Address=10.10.5.46
General\Locale=ru_RU
WebUI\BanDuration=3600
WebUI\CSRFProtection=true
WebUI\ClickjackingProtection=true
WebUI\SecureCookie=true
Connection\PortRangeMin=5283
Connection\InterfaceAddress=10.10.5.46
WebUI\CSRFProtection=true
WebUI\ClickjackingProtection=true
Downloads\UseIncompleteExtension=true
Downloads\TempPathEnabled=true
Downloads\PreAllocation=true
Advanced\AnonymousMode=true

chown -R qbittorrent:qbittorrent /var/db/qbittorrent
service qbittorrent start



Доступ к web-морде
по умолчанию
login: admin
pwd: adminadmin

Безусловно рекомендуется ограничить доступ к web-морде путем firewall

Авария на сервере

Автор: Sergey Ryabinin

На одном из серверов где располагался сайт brigar.ru вышел из строя жесткий диск, база с новостями грохнулась, к сожалению зацепило еще пару сайтов.

На данный момент сервисы находившиеся на сервере частично восстановлены.