User Tools

Site Tools


qnote:debian

Быстрые заметки по Debian

Доставить локаль

dpkg-reconfigure locales

Находим и ставим “en_US.UTF-8 UTF-8” и “ru_RU.UTF-8 UTF-8”, жмем OK.
В следующем окне ставим дефотную локаль “en_US.UTF-8 UTF-8”.

dpkg

Посмотреть список установленных пакетов.

# dpkg -l

Удалить пакет.

# dpkg -r mc22 

Установить пакет.

# dpkg -i tabby-1.0.229-linux-arm64.deb

Посмотреть логи на Debian 13

В debian 13 из коробки больше нет классических файлов с логами, смотреть надо через journalctl.

journalctl -u ssh | tail -n 100

vi, стрелки, ABCD на Debian12

В интерактивном режиме вместо стрелок печатаются символы A B C D.
Надо поправить файл /etc/vim/vimrc.tiny.

# sed -i 's/set compatible/set nocompatible/' /etc/vim/vimrc.tiny

Для подстраховки можно сначала дать команду без ключа “-i” и посмотреть как пройдет замена.

scp на Debian12

https://stackoverflow.com/questions/74311661/subsystem-request-failed-on-channel-0-scp-connection-closed

subsystem request failed on channel 0
scp: Connection closed
# scp -O -P 8990 -r

Инструменты snmp

На Debian12 snmpwalk входит в состав пакета snmp

apt install snmp

В минимальной установке Debian12 нет справочников MIB для убобной работы snmpwalk.
Справочники ставятся через установку пакета snmp-mibs-downloader.

Пакет находится в репозиториях non-free.
В файле /etc/apt/sources.list каждому адерсу с рерозиторием к main дописываем non-free.

apt update
apt install snmp-mibs-downloader

deluser

# deluser--remove-home test-user12

useradd

useradd -g netadm -d /home/rancid -m -s /bin/bash rancid 

Директория ".ssh"

Команда ssh-keygen не создаёт директорию .ssh, надо сделать руками.

mkdir ~/.ssh 
chmod 700 ~/.ssh

Работа с nftables

Базовая настройка nftables

Настроки nftables хранятся в /etc/nftables.conf.
Пишем первые правила, по аналогии с iptables.

#!/usr/sbin/nft -f

flush ruleset

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;
        #
        ct state established,related accept
        ip protocol icmp accept
        iif "lo" accept
        #SSH
        ip saddr { 192.168.1.1/32, 10.1.1.0/24 } tcp dport 22 ct state new counter accept
        #LAST-RULES
        counter reject with icmp type host-prohibited
    }

    chain forward {
        type filter hook forward priority 0; policy drop; 
        counter reject with icmp type host-prohibited;
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }
}

Применяем правила.

nft  -f /etc/nftables.conf

Проверяем активные правила.

nft list ruleset

Включаем автозагрузку.

systemctl start nftables.service
systemctl enable nftables.service

udp-правило nftables

    chain input {
        ...
        #NTP
        ip saddr 10.0.0.0/24 udp dport 123 accept
        ...
    }        

tcp-правило с несколькими портами

    chain input {
        ...
        #HTTP
        tcp dport { 80, 443 } ct state new counter accept comment "Allow HTTP/HTTPS from anywhere"
        ...
    }        

Использование set ip-адресов

table inet filter {
    set SET-NTP-CLIENTS-IPV4 {
        type ipv4_addr
        flags interval
        elements = {
            172.17.80.123,
            90.90.90.0/24,
            10.15.0.0/16,
            192.168.12.34
        }
    }
...
    chain input {
        ...
        #NTP
        ip saddr @SET-NTP-CLIENTS-IPV4 udp dport 123 counter accept
        ...
    } 
...

Флаг “flags interval” используется для того, чтобы можно было добавлять сети, без него можно добавлять только хосты.
В одно правило можно добавить только один сет. Если надо два сета, то пишем два одинаковх правила, но с разными сетами.

Сеты можно менять на ходу, без перезапуска nftables. Добавить адрес.

nft add element inet filter SET-NTP-CLIENTS-IPV4 { 192.0.2.100 }

Удалить адрес.

nft delete element inet filter SET-NTP-CLIENTS-IPV4 { 192.0.2.100 }

Посмотреть содержимое сета.

nft list set inet filter SET-NTP-CLIENTS-IPV4

Использование set портов

table inet filter {
    set SET-SRV1-PORTS {
        type inet_service 
        elements = { 22, 80, 443, 1717 }
    }

    chain input {
        ...
        tcp dport @SET-SRV1-PORTS ct state new accept
        ...
    }
...
}

Так же можно менять сет на хожу.

Добавить порт 8080.

nft add element inet filter SET-SRV1-PORTS { 8080 }

Удалить порт 80.

nft delete element inet filter allowed_tcp_ports { 80 }

Диапазоны в nftables

Диапазоны адресов (10.0.0.100-10.0.0.200) можно указывать в сетах, но нельзя в правиле.

table inet filter {
	set SET-NTP-CLIENTS-IPV4 {
		type ipv4_addr
		flags interval
		elements = { 10.10.10.10-10.10.10.20, 10.42.42.0/24,
			     10.45.45.0/24, 10.47.47.0/24 }
	}

Диапазоны портов (100-200) наоборот, можно указывать в правиле, но нельзя в сетах.

ip saddr @SET-NTP-CLIENTS-IPV4 udp dport 123-200 counter packets 0 bytes 0 accept

Возвращаемся к iptables в Debian 11

https://arstech.net/install-iptables-in-debian-11-bullseye/

Останавливаем nftables.

apt remove --auto-remove nftables
apt purge nftables

Ставим iptables

apt install iptables
apt install iptables-persistent

Пишем первые правила в “/etc/iptables/rules.v4”

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
#SSH
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -s x.x.x.x/32 -j ACCEPT
#LAST_RULES
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Пишем первые правила в “/etc/iptables/rules.v6”

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p ipv6-icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
#-A INPUT -d fe80::/64 -p udp -m udp --dport 546 -m state --state NEW -j ACCEPT
#LAST-RULES
-A INPUT -j REJECT --reject-with icmp6-adm-prohibited
-A FORWARD -j REJECT --reject-with icmp6-adm-prohibited
COMMIT

Запускаем iptables.

systemctl start iptables ip6tables 
systemctl status iptables ip6tables 
systemctl enable iptables ip6tables 
iptables -S

Первые пакеты

apt update 
apt install mc joe bind9-utils man traceroute htop iftop net-tools telnet tcpdump resolvconf 

Ставим ssh-сервер

apt update 
apt install openssh-server
systemctl status ssh
systemctl enable ssh

Список репозиториев

Если на этапе установки не дать ОС выход в интернет, то в списке репо будет только “cdrom:”.
После настройки ip-адреса не получится сделать “apt update”.

В “/etc/apt/sources.list” комментируем “deb cdrom:[De..” и раскомментируем и дописываем “deb http://deb.debian.org/debian/ bullseye main contrib non-free”
Приводим файл к виду:

root@swan1:~# cat /etc/apt/sources.list
# deb cdrom:[Debian GNU/Linux 11.7.0 _Bullseye_ - Official amd64 NETINST 20230429-11:49]/ bullseye main

#deb cdrom:[Debian GNU/Linux 11.7.0 _Bullseye_ - Official amd64 NETINST 20230429-11:49]/ bullseye main

# Line commented out by installer because it failed to verify:
deb http://security.debian.org/debian-security bullseye-security main
# Line commented out by installer because it failed to verify:
deb-src http://security.debian.org/debian-security bullseye-security main

# bullseye-updates, to get updates before a point release is made;
# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports
# A network mirror was not selected during install.  The following entries
# are provided as examples, but you should amend them as appropriate
# for your mirror of choice.
#
deb http://deb.debian.org/debian/ bullseye main contrib non-free
#deb-src http://deb.debian.org/debian/ bullseye-updates main

Настройка ip

Настройка руками

Поднимаем интерфейс.

# ip -c link show 
# ip link set dev ens18 up

Задаем ip-адрес и маршрут по умолчанию.

# ip addr add x.x.x.x/24  dev ens18
# ip route add 0.0.0.0/0 via x.x.x.1

DNS.

# echo 'nameserver 8.8.8.8' > /etc/resolv.conf

Настройка в interfaces

Правим /etc/network/interfaces.

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

auto ens18
iface ens18 inet static
        address x.x.x.99
        netmask 255.255.255.0
        gateway x.x.x.1
        dns-nameservers 8.8.8.8

Перезапускаем networking.

systemctl start networking
systemctl enable networking

После первичной ручной настройки, networking через systemctl не запускаллся, ошибка на ifup ens18.
Доделать.

Proxmox

Быстрые команды

qm list
qm start vm_id
qm stop vm_id
qm destroy vm_id

Добавить консоль к ВМ

qm set vm_id --serial0 socket
qm terminal vm_id

Остановить ВМ упавшую в kernel panic

qm stop 109 --skiplock

grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet pcie_aspm=off nvme_core.default_ps_max_latency_us=0 nvme_core.noacpi=1"

Временные файлы писать в оперативку, поберечь ssd

В /etc/fstab дописываем

tmpfs /tmp tmpfs defaults,size=2G,mode=1777 0 0

Перемонтируем (mount -a) или перезагружаемся.

На одиночном севере останавливаем ha сервисы, тоже часто пишут на ssd.

systemctl status pve-ha-crm pve-ha-lrm
systemctl stop pve-ha-crm pve-ha-lrm
systemctl disable pve-ha-crm pve-ha-lrm

Установка Mikrotik CHR на Proxmox

Скачиваем образ, распаковываем и меняем размер.

wget https://download.mikrotik.com/routeros/7.23.7/chr-7.23.7.img.zip
unzip chr-7.23.7.img.zip
qemu-img resize -f raw chr-7.23.7.img +5G
rm chr-7.23.7.img.zip

Создаём ВМ

qm create 110 --name chr1 --memory 2048 --cores 4 --sockets 1 --cpu x86-64-v2-AES --bios seabios --serial0 socket --scsihw virtio-scsi-single --net0 virtio,bridge=vmbr0,firewall=0 --net1 virtio,bridge=vmbr0,firewall=0 --net2 virtio,bridge=vmbr0,firewall=0 --net3 virtio,bridge=vmbr0,firewall=0 --net4 virtio,bridge=vmbr0,firewall=0

Импортируем диск,

qm importdisk 110 chr-7.23.7.img local-lvm --format raw
qm set 110 --scsi0 local-lvm:vm-110-disk-0,iothread=1
qm set 110 --boot order=scsi0
qnote/debian.txt · Last modified: by k

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki