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 сървър

    До тук създадохме сървър който върши много неща, но все още не е универсален. Представете си, че клиенти на Windows хостове искат да ползват споделени файлове. SAMBA е услуга ползваща протокола SMB. Основно се използва за споделяне на файлове и принтери. За да работи тази услуга трябва да я инсталираме.

    # apt-get install samba


    Освен това ще инсталираме и клиента, който ни е нужен при настройките на услугата.

    # apt-get install smbclient


    Да видим дали е стартирала услугата:

    root@home:/# service smbd status smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2018-03-04 19:13:19 EET; 3min 7s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 26240 (smbd) Status: "smbd: ready to serve connections..." CGroup: /system.slice/smbd.service ├─26240 /usr/sbin/smbd ├─26241 /usr/sbin/smbd ├─26242 /usr/sbin/smbd └─26245 /usr/sbin/smbd Mar 04 19:13:19 home systemd[1]: Starting Samba SMB Daemon... Mar 04 19:13:19 home systemd[1]: smbd.service: Supervising process 26240 which is not our child. We'll most likely not notice when it exits. Mar 04 19:13:19 home systemd[1]: Started Samba SMB Daemon.

    Все още сървиса не функционален защото не сме го конфигурирали. Все пак да проверим какво предлага услугата:

    # smbclient -L localhost WARNING: The "syslog" option is deprecated Enter root's password: Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.5.12-Debian] Sharename Type Comment --------- ---- ------- print$ Disk Printer Drivers IPC$ IPC IPC Service (Samba 4.5.12-Debian) Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.5.12-Debian] Server Comment --------- ------- HOME Samba 4.5.12-Debian OSMINI OpenATV osmini network services Workgroup Master --------- ------- WORKGROUP OSMINI

    Забележете, не въведохме никаква парола а отговор все пак има. Видяхме как се казва работната ни група, името на SAMBA сървъра, услугите които поддръжа като print$ и IPC$ и т.н. За да работи праилно обаче трябва да се редактира конфигурационния файл. Едно много важно уточнение: - при всяка промяна в конфигурационния файл не е необходимо да се презапуска услугата, промените веднага влизат в действие. За да видим какви са активните настройки на SAMBA се ползва:

    # testparm Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) WARNING: The "syslog" option is deprecated Processing section "[homes]" Processing section "[printers]" Processing section "[print$]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parameters [global] log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d usershare allow guests = Yes map to guest = Bad User obey pam restrictions = Yes pam password change = Yes passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . passwd program = /usr/bin/passwd %u server role = standalone server unix password sync = Yes dns proxy = No idmap config * : backend = tdb [homes] comment = Home Directories browseable = No create mask = 0700 directory mask = 0700 valid users = %S [printers] comment = All Printers path = /var/spool/samba browseable = No printable = Yes create mask = 0700 [print$] comment = Printer Drivers path = /var/lib/samba/printers


    Конфигурационния файл го преименоваме

    # mv /etc/samba/smb.conf /etc/samba/smb.conf.original


    И да създадем наш файл.

    # vi /etc/samba/smb.conf [global] security = user map to guest = Bad User [share] path = /usr/share/man guest ok = yes force user = nobody

    security = user - сървъра комуникира с клиента чрез име ипарола map to guest = Bad User- ако клиента не си знае паролата сървъра ще смята потребителя като "гост" path = /usr/share/man - потребителя има права само да чете указаната папка guest ok = yes - позволяваме на гостите да виждат споделената папка за четене force user = nobody - как ще се изобразяват неиндентифицираните потребители/гости на сървъра За да бъде по-разбрано, до тука имеме: - споделена папка - папката може само да се чете - неупоменати потребители/"гости" могат да четат папката - сървъра възприема гостите с пава като за nobody и ако влезем примерно през Windows клиент то ще видим папката share. Следващата задача е да създадем папка в която определени потребители ще могат да записват. Първо създаваме папката която ще споделяме

    # mkdir -p /home/samba/testFolder


    Забележете папката е създадена от root и той има права въху нея.

    # ls -ld /home/samba/testFolder/ drwxr-xr-x 2 root root 4096 Mar 4 20:40 /home/samba/testFolder/

    Само root има права за запис другите потребители само могат да четат тази папка И другите потребители за да записват сменяме правата върху папката:

    # chmod 777 /home/samba/testFolder/ # ls -ld /home/samba/testFolder/ drwxrwxrwx 2 root root 4096 Mar 4 20:40 /home/samba/testFolder/

    Доста грубо но за в момента върши работа. Сега да споделим тази папка

    # vi /etc/samba/smb.conf [global] security = user map to guest = Bad User [share] path = /usr/share/man guest ok = yes force user = nobody [папка за запис] path = /home/samba/testFolder/ guest ok = yes read only = no

    Така всеки има пълни права в папката, но не това е целта. Сега искаме определена група от хора да имат права за запис въху папката Правим нова папка и я дефинираме:

    # mkdir -p /home/samba/test1Folder/ # vi /etc/samba/smb.conf [папка за запис1] path = /home/samba/test1Folder/ valid users = divak, lud read only = no

    И сега ако се помъчим да влезем нищо няма да стане. Ще иска име и прола за влизане. Никой няма, защото тез които има Debian не са същите потребители за SAMBA. За да създадем потребител примерно divak с парола 123 ще изпълним следната команда:

    # smbpasswd -a divak New SMB password: 123 Retype new SMB password: 123 Failed to add entry for user test1.

    Това е така защото сега пък потребителя divak го няма дефиниран в Debian. Да го създадем:

    r# adduser --shell /bin/false divak Adding user `divak' ... Adding new group `divak' (1001) ... Adding new user `divak' (1001) with group `divak' ... Creating home directory `/home/divak' ... Copying files from `/etc/skel' ... Enter new UNIX password: 321 Retype new UNIX password: 321 passwd: password updated successfully Changing the user information for divak Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y


    И сега вече да дадем парола в SAMBA на потребителя divak

    # smbpasswd -a divak New SMB password: 123 Retype new SMB password: 123 Added user divak.

    До тук всичко е наред, обаче ако има съръвра сложна структура от споделяне и много потребители то управлението става много сложно. За целта се ползват групи. Примерно в дадена група има няколко потребителя и вместо да се дават права върху дадена папка за всеки потребител то правата се начисляват върху групата, а потребителите просто наследяват правата. И така задачата е: - да се създаде директория smbShared, която да се сподели - да създадем група smbUsers, която само ще може да чете в папката - да създадем група smbAdmins, която ще може и да пише в папката - да създадем потребител r_user, който да е член на групата smbUsers - да създадем потребител w_user, който да е член на групата smbAdmins


    Създаваме директорията:

    # mkdir -p /home/samba/smbShared/


    Нека само потребителите от групата собственик на директорията да могат да четат, записват и изпълняват файлове от директорията.

    # chmod 770 /home/samba/smbShared/


    Нека създадем потребител r_user

    # useradd -c "Потребител за четене" -d /home/r_user -s /sbin/nologin r_user


    Нека създадем потребител w_user

    # useradd -c "Потребител за писане" -d /home/w_user -s /sbin/nologin w_user


    Нека създадем група smbUsers

    # groupadd smbUsers


    Нека създадем група smbAdmins

    # groupadd smbAdmins


    Нека присъединим r_user към групата smbUsers

    # usermod -a -G smbUsers r_user


    Нека присъединим w_user към групата smbAdmins

    # usermod -a -G smbAdmins w_user


    Да видим кои са членовете на групата smbUsers

    # cat /etc/group |grep smbUsers smbUsers:x:5004:r_user


    Да видим кои са членовете на групата smbAdmins

    # cat /etc/group |grep smbAdmins smbAdmins:x:5005:w_user


    Да дадем парола на потребителя r_user в SAMBA

    # smbpasswd -a r_user New SMB password: 123 Retype new SMB password: 123 Added user r_user.


    Да дадем парола на потребителя w_user в SAMBA

    # smbpasswd -a w_user New SMB password: 123 Retype new SMB password: 123 Added user w_user.


    Да укажем в SAMBA r_user, може само да чете в директория smbShared, а потребител w_user може и да записва

    # vi /etc/samba/smb.conf [SAMBA Shared] comment = Тестова папка path = /home/samba/smbShared guest ok = no browseable = yes create mask = 0750 #всички създадени документи имат маска 750 rwx-wx--- directory mask = 0750 #новосъздадените поддиректории ще имат маска 750 rwx-wx--- force group = smbUsers write list = @smbAdmins #само тази група може да пише по папката valid users = @smbUsers, @smbAdmins


    С това завършваме сървъра основан на базата Debian 9. В по-следващи статии ще развием и темата за пощенски сървър.