блого-заметки об администрировании и программировании (python, ruby, php). Траблшутинг в «примерах» и HOWTO.

😎 О себе | 📚 Литература и ресурсы | ⚡ Все посты | 📮 E-mail
16 заметок с тегом

linux

Запретить выполнение скриптов и приложений из /tmp

Для чего понадобилась данная штука? Чтобы при взломе сайта не смогли запустить вредоносный код из /tmp, в часности майнеры. Также я ранее писал, о запрете выполнения cron-задач от определенного пользователя, это тоже лучше сделать

Данные шаги описаны для того, случая, если /tmp не вынесен на отдельный раздел системы.

Создадим раздел на 1 Гб


dd if=/dev/zero of=/var/tmp.partition bs=1024 count=1000000


Форматируем партицию


/sbin/mke2fs /var/tmp.partition


Создаем бекап vi /etc/fstab


sudo cp /etc/fstab{,_bak}


Вносим правку в /etc/fstab


/var/tmp.partition /tmp ext2 loop,noexec,nosuid,rw 0 0


Перемонтируем


mount -o remount


 Нет комментариев    10   6 дн   linux   security   tmp
 Нет комментариев    11   7 дн   cron   crontab   linux   security

Настройка ноды с KVM-виртуализацией Ubuntu 16.04 LTS: часть 2

Настройка ноды с KVM-виртуализацией Ubuntu 16.04 LTS: часть 2

В качестве «дисков», буду использовать логические тома (LV) в LVM. От qcow2 решили отказаться, поэтому будем использовать блочные устройства. Ничего сложного в этом нет.

Краткий экскурс в LVM можно почитать по ссылке Краткая заметка по работе с LVM в Linux

Кратко как сделать:


sudo pvcreate /dev/sda2
sudo vgcreate sas-storage /dev/sda2


Создаем устройство на 12G, для DNS-сервера, который будет рулить dns-именами во внутренней сети — за глаза.
Создаем командой:


sudo lvcreate -L 12G -n lv_dns sas-storage


или


sudo lvcreate -n lv_dns --size 12G sas-storage


где 12G размер логические тома (LV), sas-storage — имя группы томов (VG) и dns-disk имя логического тома (LV)

итог создания логические тома Logical Volumes (LV)

Далее запускаем установку системы на Ubuntu 16.04 LTS следующей командой


sudo virt-install --autostart --virt-type=kvm --name dns-server --description "DNS-server" --ram 1024 --vcpus=1 --os-type=linux --os-variant=ubuntu16.04 --hvm --cdrom=/var/lib/libvirt/boot/ubuntu-16.04.6-server-amd64.iso --network=bridge=br0,model=virtio --graphics vnc --disk path=/dev/sas-storage/lv_dns,bus=virtio


в моем сллучае dns-server это название виртуальной машины (оно будет мелькать ниже)
описание параметров virt-install:

--autostart
  • задает параметр автозагрузки виртуального сервера, при перезапуске ноды с виртуальными серверами
--virt-type=kvm
--cdrom
  • подключаем виртуальный CD-привод с образом ОС, которую будем устанавливать
--name
  • имя виртуальной машины, которое будет отображаться при выводе
virsh list all
--description
  • описание сервера
--ram
  • количество оперативной памяти для сервера
--vcpus

указываем количество «ядер» для виртуального сервера

--disk path
  • указываем диск для установки, в моем случае используется LVM, поэтому я не указываю размер диска, иначе через запятую указываем его размер, пример

--disk path=/var/lib/libvirt/images/ubuntu1604.img,size=100G,bus=virtio


--os-variant
  • указывает гипервизору под какую ОС нужно адаптировать настройки. Смотрим список доступных оптимизаций для гостевых ОС:

sudo virt-install --os-variant list


запуск установки виртуальной машины (VPS/VDS) KVM виртуализацией

Параллельно, в новом окне подключаемся к нашей ноде и вводим команду


sudo virsh dumpxml dns-server | grep vnc


получение доступа к vnc на ноде с KVM виртуализацией

Это даст нам информацию, к какому порту с помощью VNC мы можем подключиться для установке системы

Далее с помощью команды, указанной ниже, пробрасываем полученный порт из предыдущего шага и подключаемся к VNC.


ssh user@server.com -L 5900:127.0.0.1:5900


Я использую Remmina. Для примера приведу скриншот

подключение по vnc на ноде с виртуализацией KVM (VDS/VPS)

Далее, просто производим установку Ubuntu 16.04 LTS.

роизводим установку Ubuntu 16.04 LTS на VDS/VPS с виртуализацией KVM

На всякий случай указываю как добавить дополнительный диск виртуальному серверу


virsh attach-disk dns-server --source /dev/sas-storage/lv_dns-2 --target vdb --persistent


где /dev/sas-storage/lv_dns-2 путь к диску или блочномуц устройству, vdb имя диска внутри системы (для виртуальных систем обычно указывается c с приставкой vd вместо sd как у реальных машин)

проверяем в виртуальной машине


fdisk -l | grep vd


Или убираем дополнительный диск командой


virsh detach-disk dns-server vdb


И еще дополнительные команды, которые могут пригодиться в работе:
Просмотр всех серверов


sudo virsh list --all


Просмотр инфо о сервере


sudo virsh dominfo SERVER


Ребут-старт-стоп-выключение сервера


sudo virsh reboot SERVER 
sudo virsh start SERVER 
sudo virsh stop SERVER 
sudo virsh shutdown SERVER 


 Нет комментариев    27   18 дн   kvm   linux   lvm   Ubuntu   Ubuntu 16.04

Краткая заметка по работе с LVM в Linux

 Краткая заметка по работе с LVM в Linux

Основная абстракция LVM

  1. PV (Physical Volume) — физические тома (это могут быть разделы или целые «неразбитые» диски)
  2. VG (Volume Group) — группа томов (объединяем физические тома (PV) в группу, создаём единый диск, который будем дальше разбивать так, как нам хочется)
  3. LV (Logical Volume) — логические разделы, собственно раздел нашего нового «единого диска» ака Группы Томов, который мы потом форматируем и используем как обычный раздел, обычного жёсткого диска.
    (c) habr

Создание Physical Volume (PV)


sudo pvcreate /dev/nvme0n1p1


Для просмотра физических томов используем команду


sudo pvdisplay


Создать Volume Group (VG)


sudo vgcreate storage-nvme /dev/nvme0n1p1


где storage-nvme имя группы

Для просмотра списка групп используем команду


sudo vgdisplay


Создать Logical Volumes (LV)


sudo lvcreate -L 12G -n storage-nvme dns-disk


где мы создаем логический том на 12G с именем dns-disk в Volume Group с именем storage-nvme.

Расширить текущий Logical Volumes (LV) раздел на 2 Gb


sudo lvextend -L +2G /dev/storage-nvme/dns-disk


http://xgu.ru/wiki/LVM
https://habr.com/ru/post/67283/
https://www.opennet.ru/docs/RUS/linux_lvm/

 Нет комментариев    17   19 дн   linux   lvm

Резервное копирование сервера с помощью tar Ubuntu 16.04/18.04/18.10

Для создания архива сервера, можно воспользоваться следующей командой


cd / 
tar -cvpzf archive.tar.gz --exclude=/archive.tar.gz --one-file-system /


Это позволит создать архив системы исключая виртуальные файловые системы /proc, /sys и т.д
Расшифровка:
tar — утилита для создания архива

c — создание нового архива

v — подробный режим, вывод текущего дейсвия
p — сохранять права
z — сжать файлы с помощью gzip
f — указать имя архива

—exclude=/archive.tar.gz исключить данный файл из бекапа
—one-file-system исключить виртуальные ФС

Или полный вариант команды


cd / 
tar -cvpzf archive.tar.gz \
--exclude=/archive.tar.gz \
--exclude=/proc \
--exclude=/tmp \
--exclude=/mnt \
--exclude=/dev \
--exclude=/sys \
--exclude=/run \ 
--exclude=/media \ 
--exclude=/var/log \
--exclude=/var/cache/apt/archives \
--exclude=/usr/src/linux-headers* \ 
--exclude=/home/*/.gvfs \
--exclude=/home/*/.cache \ 
--exclude=/home/*/.local/share/Trash /


Zabbix: мониторинг разницы на клиентах для Linux и Windows Server

Для Windows добавляем в zabbix_agent.conf или отдельный конфиг-файл:


UserParameter=ntp.client.offset,powershell.exe -command "$timeoffset = &w32tm /stripchart /dataonly /computer:master-time-server.fqdn /samples:1; [float]$timeoffset[3].split(' ')[1].TrimEnd('s').TrimStart('+') * 1000"


Для Linux:


UserParameter=ntp.client.offset,/usr/sbin/ntpq -pn | /usr/bin/awk 'BEGIN { offset=1000 } $1 ~ /\*/ { offset=$9 } END { print offset }'


В параметрах хоста создаем Item с параметрами:
Name: System local time
key: system.localtime[utc]
type: Numeric (float)
units: ms

Тригер

Clock skew too high on {HOST.HOST}

{SERVER:system.localtime[utc].fuzzytime(350)}=0

где 350 — разница в мс

Источник zabbix

 Нет комментариев    44   7 мес   linux   time   Windows   Windows Server   Zabbix
Ранее Ctrl + ↓