Linux
  • << DEBIAN >>

  •   Сървър на отделни хостове
  •     DNS Сървър
  •     SQL Сървър
  •     WEB Сървър
  •     Пощенски Сървър
  •   PXE Server
  •   PXE UEFI Server - TFTP
  •   Debian 9
  •     Инсталиране на Debian 9
  •     Първоначални настройки (мрежа, VIM, Кирилизация)
  •     Инсталиране и настройка на SSH
  •     Инсталиране и настройка на DNS
  •     Инсталиране и настройка на NTP
  •     Инсталиране и настройка на Apache
  •     Инсталиране и настройка на MySQL (MariaDB)
  •     Инсталиране и настройка на PHPMyAdmin
  •     Инсталиране и настройка на собствен облак
  •     Инсталиране и настройка на SAMBA
  •     Инсталиране и настройка на FTP сървър
  •     Инсталиране и настройка на OSCAM
  •     Инсталиране и настройка на Mail server
  •       Първоначално конфигуриране на базата данни
  •       Инсталиране и конфигуриране на PostFix
  •       Инсталиране и конфигуриране на Dovecot
  •       PostFix дефинира Dovecot да удостоверява
  •       RoundCube
  •       Тестване доставката на поща
  •       Създаване на TLS криптиран ключ и сертификат
  •       WEB администриране
  •       Антиспам със SpamAssassin
  •       Антиспам с RSpmad
  •   Debian 11
  •     Как зарежда Linux
  •     Разпределение на диска при BIOS и UEFI
  •     Debian 11 на BIOS върху LVM и RAID
  •     Инсталиране на Debian 11 на BIOS и ZFS
  •     Инсталиране на Debian 11 на BIOS и ZFS-1
  •     Инсталиране на Debian 11 на UEFI и ZFS
  •     ZFS Замяна на развален огледален диск
  •     Ремонт на GRUB и INITRAMFS
  •   Debian 12
  •     Първоначални настройки
  •     DNS Сървър
  •     Добавяне на втори диск
  •     Файлов сървър + WEBMIN
  •     SAMBA
  •     Инсталиране и настройка на Apache
  •     Инсталиране и настройка на Nginx
  •     MySQL и PHPMyAdmin
  •     Елементарен MAIL сървър
  •       Подобрение SSL/TLS, Maildir, LMTP
  •       Подобрение ВИРТУАЛИЗАЦИЯ без MySQL
  •       Подобрение ВИРТУАЛИЗАЦИЯ и MySQL
  •       Подобрение Антиспам - SpamAssasin
  •       Подобрение Антиспам - RSpamd
  •       Защита - SPF, DKIM и DMARK
  •       Подобрение Антивирус
  •     Пълноценен MAIL сървър
  •     Пощенски сървър с iRedMail и PHPMyAdmin
  •       DKIM, SPF и DMARK
  •     MAIL сървър за вътрешна мрежа
  •     NextCloud
  •     Сървър за отдалечен достъп - RustDESK
  • << UBUNTU >>
  •   Ubuntu SERVER 22.04
  •     Инсталиране на Ubuntu 22.04 Server
  •     Първоначални настройки на Ubuntu 22.04 Server
  •     DNS в Ubuntu 22.04 Server
  •     MySQL Apache PHPMyAdmin
  •     Пощенски сървър
  •       Пощенски сървър в опростен вариант
  •       PostFix, Dovecot по-подробно
  •   Ubuntu mini
  • << RAID >>
  •     BIOS RAID1+MSDOS
  •     BIOS RAID1+MSDOS+LVM
  •     UEFI RAID1
  • << BTRFS >>
  •     BTRFS - създаване монтиране fstab размер
  •     BTRFS - RAID
  •     BTRFS - subvolume и snapshot
  • << КОНТЕЙНЕРИ >>
  •     Инсталиране на LXC/LXD
  •     Образи (image) в LXC/LXD
  •     Контейнери в LXC/LXD
  •     Команди в LXC/LXD
  • << ОТСТРАНЯВАНЕ НА ГРЕШКИ >>
  •     SWAP
  •     InitRAMFs
  • Инсталиране и настройка на SAMBA сървър в Debian 12

    За тези които не обичат шаренията в сгъстен вид изграждане на SAMBA сървър. Приемаме, че имаме чист инсталиран Debian. Първото нещо е да имаме достъп до Интернет през статично IP.

    Мрежови настройки на сървъра и достъп до него

    nano /etc/network/interfaces # The primary network interface # allow-hotplug eno1 # iface eno1 inet dhcp auto eno1 iface eno1 inet static address 192.168.11.2 netmask 255.255.255.0 gateway 192.168.11.1 /etc/init.d/networking restart ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host noprefixroute valid_lft forever preferred_lft forever 2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:23:24:c1:5d:51 brd ff:ff:ff:ff:ff:ff altname enp0s31f6 inet 192.168.11.2/24 brd 192.168.11.255 scope global eno1 valid_lft forever preferred_lft forever inet6 fe80::223:24ff:fec1:5d51/64 scope link valid_lft forever preferred_lft forever ip route default via 192.168.11.1 dev eno1 onlink 192.168.11.0/24 dev eno1 proto kernel scope link src 192.168.11.2

    Следва да накараме потребителя CCCP да е член на групата sudo. Но за начало първо трябва да го инсталираме.

    apt install sudo -y nano /etc/sudoers root ALL=(ALL:ALL) ALL cccp ALL=(ALL:ALL) ALL

    Имаме достъп до Интернет. Ще се постараем да създадем чист файлов сървър използвайки SAMBA и WEBMIN за управление. Да вкараме малко шарения в шела на root:

    cp /root/.bashrc /root/.bashrc.original cp /home/cccp/.bashrc /root/.bashrc

    Инсталация на SAMBA

    sudo su apt update -y apt upgrade -y apt install samba -y ### Долната команда не е задължителна. Тя е за клиентската част. apt install smbclient -y

    Настройка на файловия сървър

    За да нстроим сървъра трябва да определим няколко неща: ● Кои папки ще споделяме ● Кои потребители ще имат право върху споделените папки ● Кои групи с принадлежащите потребители ще имат право върху споделените папки Изхождайки от горните условия трябва да споделим някои папки. Ако нямаме такива, то трябва да ги създадем.

    Папки за споделяне

    mkdir -p /home/samba/corporate mkdir -p /home/samba/public mkdir -p /home/samba/anonimus_share

    Създадохме три папки. corporate за корпоративни клиенти и publick за всички дефинирани в SAMBA. Корпоративните потребители също ще могат да ползват папката public. anonimus_share за абсолютно всеки който иска да достъпи SAMBA.

    Групи за SAMBA потребители

    Отново изхождайки от горното условие ще създадем две групи. corporate за достъп до папката corporate и втора група free за достъп до папката public. За anonimus_share група не е нужна.

    groupadd corporate groupadd free

    Сега да укажем коя група е собственик на съответната папка.

    chgrp -R corporate /home/samba/corporate/ chgrp -R free /home/samba/public/

    А сега да дефинираме правата върху папката.

    chmod 2770 /home/samba/corporate/ chmod 2775 /home/samba/public/

    ВАЖНО !!! Забелязахте ли, че правата са 2770 и 2775? Всички започват с 2 най-отпред. Това позволява на новосъздадените файлове да наследяват родителската група. Ако се чудите как се получава числото 2775 примерно: ● 2 - идентификатор на групата. Правата на групата собственик на /home/samba/public/ се наследяват от всички дъщерни файлове и папки. setuid (SUID) - разрешението за задаване на потребителски идентификатор (потребителя с който се работи получава пълни права на собственика на файла) setgid (SGID) - разрешението за задаване на идентификатор на групата (ако е приложен към файл потребителя получава правата на групата за файла, ако е върху папка то папката наследява правата на родителя) sticky bit - Това разрешение е полезно за защита на файлове от случайно изтриване в среда, в която множество потребители имат достъп за запис в една и съща директория. Само потребителя собственик на файла или директорията където е файла със sticky bit може да изтрие файла. SUID = 4, SGID = 2, sticky bit = 1 (SUID = u+s, SGID = g+s, sticky bit = +t) 0: setuid, setgid, sticky bits are unset 1: sticky bit is in place 2: setgid bit is in place 3: setgid and sticky bits are in place 4: setuid bit is in place 5: setuid and sticky bits are in place 6: setuid and setgid bits are on 7: setuid, setgid, sticky bits are activated ● 775 - три числа. Първото 7 отговаря за собственика, втората 7-ца отговаря за групата, а 5 отговаря за всички останали. ● 7 се получава от сумата на параметрите за обекта 0 = no permission 3 = (-wx) 1 = execute (x) 5 = (r-x) 2 = write (w) 6 = (rw-) 4 = read (r) 7 = (rwx) Ако файла може да се чете (r), обработва (w) и изпълнява (x) то се получава 4+2+1=7 ● От горе казаното числото 775 означава, че собственика има пълни права върху файла, групата има пълни права върху файла, а всички останали могат да четат и изпълняват файла, без да го редактират.

    Потребители в SAMBA

    Потребителите в SAMBA ще са част от потребителите на Debian, но няма да могат да се логват в системата.

    useradd -M -s /sbin/nologin corporate useradd -M -s /sbin/nologin kasier

    -M не създава домашна папка на потребителя, -s /sbin/nologin указва, че няма да има логин шел. Да укажем потребителите в коя група да принадлежат.

    usermod -aG free kasier usermod -a -G corporate,free corporate

    -a винаги слагайте тази опция когато добавяте потребител към нова група. Ако липсва -a потребителя ще бъде премахнат от групата. -G указва към коя група да е. Ако даден потребител е член на няколко групи то групите се разделят със ','. Да проверим.

    nano /etc/group corporate:x:1001:corporate free:x:1003:kasier,corporate

    Пароли в SAMBA

    Потребителите в SAMBA се различават от потребителите на системата, затова тяхната парола ще е различна. За начало да гнерираме пароли за потребителите на SAMBA, не на системата.

    smbpasswd -a kasier smbpasswd -a kasier

    Паролата която се генерира е криптирана и няма как да видите каква е. Веднага пример:

    pdbedit -wL corporate:1001:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:1245613313FC990D9C22CA51C4441400:[U]:LCT-66697120: kasier:1003:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:F8A35FBA0CA81A68C71CF63061B6801D:[U]:LCT-6669712B:

    Ако забравите паролата решението е да се създаде нова парола.

    smbpasswd -a kasier

    Така на практика създаваме нова парола за kasier.

    Споделяне на ресурси в SAMBA

    Първо правим копие на конфигурационния файл на SAMBA.

    cp /etc/samba/smb.conf /etc/samba/smb.conf.original

    Да зачистим файла от излишните редове.

    grep -v '^ *#\|^ *$' /etc/samba/smb.conf | sudo tee /etc/samba/smb.conf

    Достъп на анонимни потребители до ресурсите на SAMBA

    nano /etc/samba/smb.conf ### Най-отдолу на файла [anonimus_share] comment = Directory anonimus path = /home/samba/anonimus_share public = yes writable = yes read only = no guest ok = yes create mask = 0775 directory mask = 0775 force create mode = 0775 force directory mode = 0775

    [anonimus_share] - име на споделената папка. Така ще се вижда във Windows comment - коментар за споделения ресурс path - път до споделената папка в SAMBA public = yes - достъп за четене на удостоверените потребители и гости writable = yes - възможност за запис в мрежовия ресурс read only = no - право на четене - не = всички могат да създават файлове и папки guest ok = yes - достъп на гости без верификация create mask = 0775 - всички създадени или копирани файлове ще бъдат с маска 0775 directory mask = 0775 - всички създадени или копирани папки ще бъдат с маска 0775 force create mode = 0775 - принуждава SAMBA да създава файлове с маска 0775 force directory mode = 0775 - принуждава SAMBA да създава папки с маска 0775

    Достъп на всеки удостоверен потребител

    Ако искате всеки потребител удостоверил се чрез име и парола да има достъп до даден ресурс то тогава:

    nano /etc/samba/smb.conf ### Най-отдолу на файла [public] comment = acc_with_pass path = /home/samba/public public = no writable = yes read only = no guest ok = no create mask = 0775 directory mask = 0775 force create mode = 0775 force directory mode = 0775

    Едно уточнение. Достъп до ресурса имат всички потребители влезли с име и парола. Независимо членове на коя група са. [public] - име на споделената папка. Така ще се вижда във Windows comment - коментар за споделения ресурс (потребители влезли с име и парола) path - път до споделената папка в SAMBA public = no - забрана за достъп на гости до папката writable = yes - възможност за запис в мрежовия ресурс read only = no - право на четене - не = всички могат да създават файлове и папки guest ok = no - забрана на гости да се закачат към ресурса create mask = 0775 - всички създадени или копирани файлове ще бъдат с маска 0775 directory mask = 0775 - всички създадени или копирани папки ще бъдат с маска 0775 force create mode = 0775 - принуждава SAMBA да създава файлове с маска 0775 force directory mode = 0775 - принуждава SAMBA да създава папки с маска 0775

    Достъп на удостоверен потребител и група

    nano /etc/samba/smb.conf ### Най-отдолу на файла [corporate] comment = corporate_user path = /home/samba/corporate public = no writable = no read only = yes guest ok = no valid users = vlan48, selectel, @corporate write list = selectel create mask = 0770 directory mask = 0770 force create mode = 0770 force directory mode = 0770 inherit owner = yes

    Едно уточнение. Достъп до ресурса имат всички потребители влезли с име и парола. Независимо членове на коя група са. [corporate] - име на споделената папка. Така ще се вижда във Windows comment - коментар за споделения ресурс path - път до споделената папка в SAMBA public = no - забрана за достъп на гости до папката writable = no - забрана за запис в мрежовия ресурс read only = yes - право на четене - да = забрана за създаване на файлове и папки, само за четене guest ok = no - забрана на гости да се закачат към ресурса valid users = vlan48, selectel, @corporate - потребители и групи имащи достъп до директорията. vlan48 и selectel са потребители, а @corporate е група write list = selectel - само потребителя selectel има право да пише в папката create mask = 0775 - всички създадени или копирани файлове ще бъдат с маска 0775 directory mask = 0775 - всички създадени или копирани папки ще бъдат с маска 0775 force create mode = 0775 - принуждава SAMBA да създава файлове с маска 0775 force directory mode = 0775 - принуждава SAMBA да създава папки с маска 0775 inherit owner = yes - директива включваща наследяване на собственика по време на създаване на директории и файлове.

    Кошче в SAMBA

    Не е добра практика изтритите файлове да се губят, защото се правят грешки при триене. По добрата практика е да се прехвърлят в папка наречена "Кошче". За начало да създадем папката "Кошче"

    mkdir /var/recycle chmod 777 /var/recycle

    Да конфигурираме и SAMBA.

    nano /etc/samba/smb.conf ### Най-отдолу слагаме: [Recycle] comment = rec_dir path = /var/recycle public = yes browseable = yes writable = yes vfs objects = recycle recycle:repository = .recycle/%U recycle:keeptree = Yes recycle:touch = Yes recycle:versions = Yes recycle:maxsize = 0 recycle:exclude = *.tmp, ~$* recycle:exclude_dir = /tmp

    [Recycle] - име на ресурса показващ се при клиента comment = rec_dir - коментар за споделения ресурс path = /var/recycle - папка в която се помества кошчето public = yes - достъп за четене на удостоверени потребители и гости browseable = yes - позволява споделения ресурс да се вижда в мрежата writable = yes - позволява да се пише по мрежата vfs objects = recycle - използване на подсистема recycle recycle:repository = .recycle/%U - място за съхраняване на изтрития обект recycle:keeptree = Yes - изтриване със съхранение на дървото на папки recycle:touch = Yes - recycle:versions = Yes - recycle:maxsize = 0 - recycle:exclude = *.tmp, ~$* - recycle:exclude_dir = /tmp -

    Включване на Linux потребители към SAMBA

    Съединяването на Linux потребители към SAMBA ресурси става чрез sifs. За начало трябва да се инсталира.

    apt install cifs-utils -y

    Монтиране на ресурс

    mount.cifs {ресурс} {път към папката, която ще се монтира} {-o опции}

    Пример:

    mount.cifs //10.8.0.1/anonimus_share /mnt

    Автоматично монтиране

    Автоматичното монтиране се прави във файла /etc/fstab. За начало обаче да създадем файл съдържащ потребителите които ще се оторизират при свързването със SAMBA. Сега да монтираме ресурса на удостоверен потребител и група.

    nano /root/.smbselus username=selectel password=uspass

    И сега да редактираме /etc/fstab

    nano /etc/fstab ### Най-отдолу //10.8.0.1/corporate /mnt cifs user,rw,credentials=/root/.smbselus 0 0

    //10.8.0.1/corporate - ресурс който е споделен в SAMBA /mnt - папка в която трябва да се монтира споделения ресурс cifs user - разрешава да монтира всеки потребител rw - предоставя права за четене и запис credentials=/root/.smbselus - файл с данни за потребители и пароли 0 - използва dump (0=изключен) 0 - използва fsck (0=изключен) В някои случаи се налага добавяне на директива domain във файла .smbselus.

    SMB версия 1

    За да поддържа по-стари версии на SAMBA конфигурационния файл трябва да се промени.

    nano /etc/samba/smb.conf [Global] workgroup = WORKGROUP server min protocol = NT1 client min protocol = NT1 client lanman auth = yes ntlm auth = yes