Table of Contents
Быстрые заметки по 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
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
