Настройка Samba на Ubuntu Server

Решение проблем

Проблемы подключения к Windows 7 – mount error(12): cannot allocate memory

Известная ошибка Windows 7 “mount error(12): cannot allocate memory” может быть исправлена установкой пары ключей в реестре системы Windows:

  • (установить значение )
  • (установить значение )

В качестве альтернативы можно запустить командную строку от имени Администратора и выполнить следующее:

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v "LargeSystemCache" /t REG_DWORD /d 1 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v "Size" /t REG_DWORD /d 3 /f

Выполните одно из следующих действий, чтобы изменения вступили в силу:

  • Перезагрузите Windows
  • Перезапустите службу на сервере через services.msc
  • Выполните в командной строке и ; после остановки служба может перезапуститься автоматически

Примечание: Поиск решения в интернете подскажет другое решение, рекомендующее пользователям добавить ключ, изменяющий размер “IRPStackSize”. Это неправильное решение для устранения проблемы в Windows 7. Не применяйте его

Проблемы получения доступа к ресурсам, защищенным паролем, из Windows

Обратите внимание, что это должно быть добавлено в локальный файл smb.conf, а не в файл сервера

# lanman fix
client lanman auth = yes
client ntlmv2 auth = no

Диалоговое окно появляется с большой задержкой

У меня была проблема, связанная с тем, что диалоговое окно для ввода пароля появлялось с задержкой около 30 секунд, когда я пытался установить соединение из Windows XP/Windows 7. Когда я посмотрел файл error.log на сервере, я увидел:

[2009/11/11 06:20:12,  0] printing/print_cups.c:cups_connect(103)
Unable to connect to CUPS server localhost:631 - Interrupted system call

Эта опция предотвращает поиск cups и файла /etc/printcap:

printing = bsd
printcap name = /dev/null

Ошибка: Failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL

Если вы являетесь домашним пользователем, используете samba исключительно для организации общего доступа к файлам с сервера или NAS и не заинтересованы в организации общего доступа к принтерам, вы можете исправить эту ошибку, добавив следующие строки в файл /etc/samba/smb.conf:

load printers = No
printing = bsd
printcap name = /dev/null
disable spoolss = Yes

Перезапустите samba:

systemctl restart smbd

…проверьте ваши логи:

cat /var/log/samba/smbd.log

и больше ошибка не должна появляться.

Не удается предоставить общий доступ к папке

Проблема проявляется в том, что, когда вы пытаетесь предоставить общий доступ к папке через Dolphin (файловый менеджер), и вначале, вроде бы, все работает нормально, после перезапуска Dolphin иконка ресурса исчезла из папки, а в терминале (Konsole) вы видите следующий вывод:

‘net usershare’ returned error 255: net usershare: usershares are currently disabled

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

И вы используете firewall (iptables), поскольку не доверяете вашей локальной (школа, университет, отель) сети. Это может происходить по следующей причине: когда smbclient просматривает локальную сеть, он посылает широковещательный запрос на udp-порт 137. Затем серверы сети отвечают вашему клиенту, но, поскольку исходный адрес ответа отличается от адреса назначения, который видел iptables при отправке запроса, iptables не признает ответ как “установленное соединение” или “относящийся к запросу”, и, следовательно, пакет отбрасывается. Возможное решение – добавление:

iptables -t raw -A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns

в вашу конфигурацию iptables.

Подключение к серверу завершилось неудачей: (Error NT_STATUS_UNSUCCESSFUL)

Вероятно, вы указываете неправильное имя сервера. Чтобы узнать его, запустите на сервере команду и найдите строку “Transient hostname”.

Защищенный сервер

Защищенный сервер с авторизацией пользователя

Цель данного типа сервера, создать универсальный тип файлового хранилища на сервере, с разными типами директорией, в том числе для доступа к некоторым папкам, понадобиться авторизация.

  • /home/user/public — файлы доступные только для чтения любому пользователю.
  • /home/user/secret — файлы доступные только определенным пользователям.
  • /home/user/trashfiles — файлы доступные любому пользователю, права на чтение и запись.

Настроить всё это добро необходимо всё в том же: /etc/samba/smb.conf

Создаем папки:

mkdir /home/user/{secret,public,trashfiles}

Открываем файл /etc/samba/smb.conf для редактирования:

sudo nano /etc/samba/smb.conf

Смело удаляем все его содержимое, это необходимо сделать в целях безопасности, так как многие опции по умолчанию открыты и могут представлять угрозу вашей системе. Пишем туда следующее:

#
# Sample configuration file for the Samba suite for Debian GNU/Linux.
#
#======================= Global Settings =======================
 

 
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
netbios name = miniCompLinux
security = share
browseable = yes
 

path = /home/user/public
comment = PublicFiles
read only = Yes
guest ok = yes
browseable = yes
security = share
 

path = /home/user/trashfiles
comment = readAndwrite
read only = No
guest ok = yes
browseable = yes
security = share
writeable = yes
 
path = /home/user/secret
comment = secretFiles
read only = yes
browseable = yes
writeable = no
security = USER
valid users = booch
 
#force user = booch
#force group = users

Заметьте, что в блоке указан параметр security = share, т.е. доступ к ресурсам свободный для каждого пользователя. Но в блоке параметр security = USER, т.е. именно для доступа к этой папке система запросит у вас логин и пароль пользователя который был указан в параметре valid users = booch.

Вы можете указать там сколько захотите пользователей, просто перечисляйте их имена без запятой, valid users = booch mark john

Теперь когда файл сконфигурирован, необходимо добавить пользователя которому будет предоставлен доступ к папке /home/user/secret

Создаем пользователя

sudo useradd -c "Test User" -m -g users -p 12345 booch

Возможно Вы не собираетесь использовать данного пользователя локально, т.е. он не будет локально работать на сервере, тем не менее лучше всего будет назначить ему пароль в системе:

sudo passwd booch

Инициализируем Microsoft Windows пароль, для авторизации по сети:

sudo smbpasswd -a booch

Отдаем папки secret, trashfiles, public в пользование пользователю booch:

sudo chown booch.users /home/user/public
sudo chmod u=rwx,g=rwx,o-rwx /home/user/public
 
sudo chown booch.users home/user/trashfiles
sudo chmod u=rwx,g=rwx,o-rwx home/user/trashfiles
 
sudo chown booch.users /home/user/secret
sudo chmod u=rwx,g=rwx,o-rwx home/user/secret

Рестартуем демон:

sudo service smbd restart

Тестируем

Убедитесь, что товарищ добавился в систему:

cat /etc/passwd
booch:x:501:501::/home/booch:/bin/bash

Также убедитесь, что создан домашний каталог пользователя booch:

s -l /home | grep booch
drwx------ 11 booch booch  4096 2010-08-09 20:02 booch

Просмотреть дамп файла smb.conf и убедиться, что в нем нет ошибок, можно так:

testparm

Убедиться, что шары были успешно созданы и существуют можно так:

sudo smbclient -L localhost -U%

Конфигурирование samba4

Внимание, в процессе надо будет ввести желаемый пароль администратора. Пароль должен быть сложным, иметь цифры и заглавные буквы!

sudo samba-tool domain provision --use-rfc2307 --interactive

Отвечаем на вопросы, подставляя свое название домена:

  • Realm : ADSAMBA.LOC ←- название домена
  • Domain : ADSAMBA ←- короткое имя домена
  • Server Role (dc, member, standalone) : dc ←- роль сервера(в данном случаем dc – контроллер домена)
  • DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) : BIND9_DLZ ←- используемый днс-сервер
  • Administrator password:
  • Retype password:

Если в процессе конфигурирования возникли ошибки связанные с названием домена или паролем администратора, для того что заново запустить конфигурирование, проделайте следующее:

sudo apt-get purge samba
sudo apt-get install samba
sudo rm etcsambasmb.conf

Prerequisites

Before you begin this guide you’ll need the following:

  • An Ubuntu 16.04 server with a non-root sudo user. Please refer to the Ubuntu 16.04 initial server setup guide for more information. Samba has modest RAM and CPU requirements and will function well on a 1GB server. You are more likely to run out of storage space, so this should be your primary consideration when choosing your server size.

  • Incoming TCP connections allowed on port . If you are using the UFW firewall, please refer to How To Set Up a Firewall with UFW on an Ubuntu and Debian Cloud Server for guidance. If you are using a different or external firewall, please refer to the relevant documentation.

Ubuntu Server

This section enables Ubuntu as a samba file server.

Sharing a directory

To share a directory you must have permission to access the directory. Go to your home directory ( Places → Home directory). Right click on the “Documents” directory and in the pop up menu select “Share Folder”.

If samba is not installed, you will get a pop-up menu “Sharing services are not installed”. Select “Install Windows networks support (SMB)” and deselect “Install Unix networks support (NFS)” → then click “Install services”.

If you get an error message that the samba .deb could not be found, open a terminal and update apt-get.

sudo apt-get update

Try again and Ubuntu will download and install samba. Right click on the “Documents” directory and in the pop-up menu select “Share Folder”. You will get a pop up menu “Share Folder”. Select “Windows networks (SMB)” in the pull down menu and give your share a name in the “Name” box. Unselect the “Read only” check box if you want read/write access to the share. Click the “Share” button.

Настройка Samba с интеграцией в AD через sssd

Устанавливаем сам файловый сервер самба.

# yum install samba

Рисуем ему примерно такой конфиг.

# cat /etc/samba/smb.conf
workgroup = XS
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
log level =3
max log size = 500
security = ads
encrypt passwords = yes
passdb backend = tdbsam
realm = XS.LOCAL
load printers = no
cups options = raw
printcap name = /dev/null


comment = My shared folder
path = /mnt/shara
public = no
writable = yes
guest ok = no
valid users = @"gr_it@xs.local"

Запускаем службу smb.service и добавляем в автозагрузку.

# systemctl start smb.service
# systemctl enable smb.service

Теперь идем проверять подключение к сетевому диску с какой-нибудь виндовой машины. Здесь меня ждало полное разочарование. Ничего не работало. Я бился над решение проблемы примерно 2 дня, но не смог победить. Перелопатил весь гугл по запросу “sssd samba”, но не смог заставить работать эту связку.

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

Мне стало жаль тратить время на поиски готового решения с sssd, хотя мне очень хотелось получить рабочий вариант, так как с winbind достаточно часто возникают проблемы. Я надеялся от них избавиться переходом на sssd, но не получилось. Статью не стал переделывать, сохранив то, что уже настроил. Может быть у вас заработает.

Попутно узнал, что sssd не поддерживает NTLM авторизацию, только kerberos. Я не знаю, по какой причине, но у меня самба, судя по логам, упорно пыталась авторизовать пользователя по ntlm. В итоге, я прекратил попытки и вернулся к старому проверенному варианту с winbind. Далее расскажу, как настроить файловый сервер samba для работы в домене windows с помощью winbind.

Настало время тестов:

Меняем nameserver в resolv.conf чтоб все обращения проходили через наш настроенный bind9

sudo nano etcresolv.conf
 
nameserver 192.168.1.1

Проверяем

smbclient -L localhost -U%
 
Domain=ADSAMBA OS=Unix Server=Samba 4.1.6-Ubuntu
 
        Sharename       Type      Comment
        ---------       ----      -------
        netlogon        Disk
        sysvol          Disk
        IPC$            IPC       IPC Service (Samba 4.1.6-Ubuntu)
Domain=ADSAMBA OS=Unix Server=Samba 4.1.6-Ubuntu
 
        Server               Comment
        ---------            -------
 
        Workgroup            Master
        ---------            -------
smbclient //localhostnetlogon -UAdministrator -c 'ls'
 
Enter Administrator's password:
Domain= OS= Server=
  .                                   D        0  Tue Apr  8 11:21:49 2014
  ..                                  D        0  Tue Apr  8 11:22:03 2014
 
                46445 blocks of size 4194304. 45581 blocks available
host -t SRV _ldap._tcp.adsamba.loc.
 
_ldap._tcp.adsamba.loc has SRV record  100 389 ad.adsamba.loc.
host -t SRV _kerberos._udp.adsamba.loc.
 
_kerberos._udp.adsamba.loc has SRV record  100 88 ad.adsamba.loc.
host -t A ad.adsamba.loc.
 
ad.adsamba.loc has address 192.168.1.1

Connecting using CIFS

CIFS is included in the smbfs package and is a replacement for smbfs (I know, the terminology here is a little confusing).

Reference : http://linux-cifs.samba.org/

As above, install by any method, smbfs, on Ubuntu 12.10, smbfs has been replaced by cifs-utils.

Allow non-root users to mount SMB shares

By default only root may mount SMB shares on the command line. To allow non-root users to mount SMB shares you could set the SUID, but I advise you configure sudo. You should configure sudo with visudo

You may either allow the group “users” to mount SMB shares, or add a group, samba, and add users you wish to allow to mount SMB shares to the samba group.

sudo groupadd samba
sudo adduser user samba

Change “user” to the username you wish to add to the samba group.

sudo visudo

In the “group” section add your group you wish to allow to mount SMB shares

Add a line  in the "group" section :
## Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
%samba   ALL=(ALL) /bin/mount,/bin/umount,/sbin/mount.cifs,/sbin/umount.cifs

Change “%samba” to “%users” if you wish to allow members of the users group to mount SMB shares.

The following will mount the myshare folder on myserver to ~/mnt (it will be in your home directory):

mkdir ~/mnt
sudo mount -t cifs //myserver_ip_address/myshare ~/mnt -o username=samb_user,noexec

Note: “samba_user” = the user name on the samba server (may be different from your log-in name on the client).

The “noexec” option prevents executable scripts running from the SMB share.

You will be asked for BOTH your sudo and then your samba_user password.

To umount,

sudo umount ~/mnt

Automagically mount SMB shares

In order to have a share mounted automatically every time you reboot, you need to do the following:

With any editor, create a file containing your Windows/Samba user account details:

gksu gedit /etc/samba/user

KDE users must use kdesu rather than gksu and instead of Gedit they can use Kwrite as editor.

… it should contain two lines as follows:

username=samba_user
password=samba_user_password

Note: “samba_user” = the user name on the samba server (may be different from your log-in name on the client). “samba_user_password” is the password you assigned to the samba_user on the samba server.

Save the file and exit gedit.

Change the permissions on the file for security:

sudo chmod 0400 /etc/samba/user # permissions of 0400 = read only

Now create a directory where you want to mount your share (e.g. /media/samba_share):

sudo mkdir /media/samba_share

Now, using any editor, and add a line to /etc/fstab for your SMB share as follows:

sudo cp /etc/fstab /etc/fstab.bak
gksu gedit /etc/fstab

Add a line for your SMB share:

//myserver_ip_address/myshare  /media/samba_share  cifs  credentials=/etc/samba/user,noexec  0 0

The share will mount automatically when you boot. The “noexec” option prevents executable scripts running from the SMB share.

To mount the share now, without rebooting,

sudo mount /media/samba_share

You can unmount the share with :

sudo umount /media/samba_share

If you wish to increase security at the expense of convenience, use this line in /etc/fstab

//myserver_ip_address/myshare  /media/samba_share  cifs  noauto,credentials=/etc/samba/user,noexec  0 0

The noexec” option prevents executable scripts running from the SMB share.

Edit /etc/samba/user, remove the password (leave just the samba user).

Now the share will NOT automatically mount when you boot and you will be asked for your samba password.

Mount the share with :

sudo mount /media/samba_share

CIFS may cause a shutdown error.

CIFS VFS: Server not responding.

There is a fix in the troubleshooting section of this forum post.

How to Create a Samba Public Share Without Authentication

To create a public share without requiring username and password, the following conditions must be met.

  • Set   in the global section of Samba configuration file. Although you can create a public share with the mode, but this security mode is deprecated. It is strongly suggested that you avoid mode.
  • Set in the global section of Samba configuration file. This will cause to use a guest account to authenticate clients who don’t have registered account on the Samba server. Since it’s a guest account, Samba clients don’t need to enter password.
  • Set in the share definition to allow guest access.
  • Grant read, write and execute permission of the public folder to the account, which is the default guest account.

As a matter of fact, the first two conditions are already met as Samba by default uses these two settings.

Here’s a step-by-step guide to create a public share. First, open and edit the Samba configuration file.

sudo nano /etc/samba/smb.conf

In the section, make sure the value of is the same with the workgroup settings of Windows computers.

workgroup = WORKGROUP

You can find the setting on your Windows computer by going to > > .

Then scroll down to the bottom of the file and paste the following lines.


comment = public share, no need to enter username and password
path = /srv/samba/public/
browseable = yes
writable = yes
guest ok = yes

Save and close the file. Next, create the folder.

sudo mkdir -p /srv/samba/public

Then make sure the account has read, write and execute permission on the public folder by executing the following command. (If your system doesn’t have the command, you need to install the package with .)

sudo setfacl -R -m "u:nobody:rwx" /srv/samba/public/

Restart smbd and nmbd.

sudo systemctl restart smbd nmbd

ШАГ 6: Утилиты и диагностика Samba

# testparm
Load smb config files from etcsambasmb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE
  • smbget позволяет скачивать с windows, linux (д.уст. samba) файлы через Что такое протокол SMB протокол. Скачать рекурсивно все директории и файлы:

    smbget -Rr smb://ip_addr/share
  • smbclient – утилита для подключения к общедоступным папкам.

    • Отобразить общедоступные ресурсы на удаленном хосте:

      smbclient -L ip_addrhostname
    • Посмотреть «шары» локально на стороне сервер

      smbclient -L 127.0.0.1
    • Просмотреть папку vip под пользователем tatyana

      $ smbclient \\\\10.26.95.220\\vip -U tatyana
  • nbtscan

    nbtscan ip_addr разрешить netbios-имя nbtscan не во всех системах ставится по-умолчанию,
    возможно, придётся доустанавливать вручную. nmblookup включен в пакет samba.
    nmblookup -A ip_addr

Авторизация с Active Directory

Разберем пример конфигурирования файлового сервера samba в домене Windows и настроим авторизацию пользователей на базе LDAP Active Directory.

Подключение к Active Directory

Введем наш сервер в домен. Сначала необходимо убедиться, что сервер доступен по своему доменному имени. Если серверу так и не было задано вменяемого имени, вводим команду:

hostnamectl set-hostname samba.dmosk.local

* где samba — имя сервера; dmosk.local — домен.

После добавляем в DNS наш сервер samba. Ждем минут 15, если у нас используется доменная инфраструктура с несколькими сайтами.

Устанавливаем необходимые компоненты:

dnf install samba-client samba-winbind samba-winbind-clients krb5-workstation

Открываем конфигурационный файл samba:

vi /etc/samba/smb.conf

В разделе редактируем следующие опции:

workgroup = DMOSK
security = ads

* где DMOSK — NETBIOS имя домена; ads — указывает, что для samba будет использоваться модель безопасности LDAP Active Directory.

Также в добавим следующие строки:

kerberos method = secrets and keytab
realm = DMOSK.LOCAL
winbind enum groups = Yes
winbind enum users = Yes
idmap config * : rangesize = 1000000
idmap config * : range = 1000000-19999999
idmap config * : backend = autorid

* где:

  • kerberos method — метод проверки kerberos. В данном примере сначала используется secretts.tdb, а затем системная таблица ключей.
  • realm — сервер Active Directory. В нашем примере прописан домен, так как по нему можно обратиться к любому из серверов AD.
  • winbind enum groups — задает пределы перечисления групп через setgrent(), getgrent() и endgrent().
  • winbind enum users — задает пределы перечисления пользователей через setpwent(), getpwent()и endpwent().
  • idmap config * : rangesize — определяет количество доступных uids и gids в каждом доменном диапазоне.
  • idmap config * : range — определяет доступные совпадающие диапазоны uid и gid, для которых серверная часть является авторитетной.
  • idmap config * : backend — задает idmap плагин для использования в качестве SID/uid/gid подсистемы

Вводим сервер в домен: 

net ads join -U Administrator@dmosk.local

* где Administrator — учетная запись пользователя AD с правами на ввод компьютеров в домен; dmosk.local — наш домен.

Мы должны увидеть, примерно, следующее:

Using short domain name — DMOSK
Joined ‘SAMBA’ to dns domain ‘dmosk.local’

Разрешаем автозапуск winbind и стартуем его:

systemctl enable winbind –now

Выбираем профиль для аутентификации:

authselect select winbind –force

Проверяем, что наш сервер может получить список пользователей Active Directory:

wbinfo -u

… и групп:

wbinfo -g

Если мы увидели список пользователей и групп, то присоединение сервера к домену завершено.

Настройка шары

Открываем конфигурационный файл samba:

vi /etc/samba/smb.conf

Создаем шару:

    comment = Folder for AD users
    path = /data/ad
    public = no
    writable = yes
    read only = no
    guest ok = no
    valid users = “@DMOSK\Domain Users” “@DMOSK\Domain Admins”
    create mask = 0777
    directory mask = 0777
    force create mode = 0777
    force directory mode = 0777
    inherit owner = yes

* в данном примере мы будем шарить папку на сервере /data/ad; мы предоставим доступ всем пользователям групп Domain Users и Domain Admins домена DMOSK.

Создаем каталог и задаем права:

mkdir /data/ad

chmod 777 /data/ad

Теперь можно перезапустить самбу:

systemctl restart smb

Пробуем подключиться к серверу. У нас должна появиться еще одна папка ad. 

Права ACL

И в продолжение разговора о интеграции с AD, попробуем настроить ACL для более тонкого предоставления прав доступа.

Для этого снова открываем конфигурационный файл samba:

vi /etc/samba/smb.conf

В раздел добавим:

acl compatibility = auto

… и создадим новую шару:

    comment = Folder for AD ACL
    path = /data/adacl
    public = no
    writable = yes
    read only = no
    guest ok = no
    admin users = “@DMOSK\Domain Admins”
    inherit acls = yes
    inherit owner = yes
    inherit permissions = yes
    map acl inherit = yes

* где admin users — пользователи, которые могут менять права папки; inherit acls — наследование acl прав; inherit permissions — наследование прав от папки родителя; map acl inherit — использовать ли схему контроля доступа, хранимую в Windows ACL.

Создаем каталог и задаем права:

mkdir /data/adacl

chmod 777 /data/adacl

Перезапускаем самбу:

systemctl restart smb

Подключаемся к нашей созданной общей папке. Кликаем по ней правой кнопкой мыши – выбираем свойства. На вкладке «Безопасность» мы можем менять права:

Accessing Samba Shared Folder From Windows

On a Windows computer that is in the same network, open File Explorer and click on the left pane.  If you see the following message, then you need to click on the message and turn on network discovery and file sharing.

File sharing is turned off. Some network computers and devices might not be visible.

Next, enter followed by the IP address of Samba server in the address bar of File Explorer, like this: . You will see a list of shared resources on the Samba server.

Then double-click the shared folder. To access the private share, you need to enter the samba username and password. You don’t need to do so to access public share.

Once connected, you can read, write and delete files in the Samba shared folder.

Файлы конфигурации UFW

Для большинства сценариев, вы можете использовать терминальные команды, но в некоторых случаях, может вы захотите отредактировать конфигурационные файлы напрямую. В UFW есть несколько конфигурационных файлов, а именно:

/etc/ufw/before.rules/etc/ufw/before6.rules

Эти два файла содержат правила, которые вычисляются перед всеми правилами, которые вы добавили в UFW. Так что если вы хотите, чтобы некоторые правила выполнялись первыми. Первый файл для ipv4 и второй один для v6

etc/ufw/after.rules/etc/ufw/after6.rules

Они оцениваются после правил команды ufw. Они хороши для использования, если вы хотите переопределить какое-то правило и применить его независимо. Опять же, два файла, для двух версий протокола IP, которые в настоящее время используются.

/etc/default/ufw

Здесь у нас есть модули ядра, использующиеся в ufw, а также другие параметры. Вы можете изменить конфигурационные файлы только как root, и вы можете использовать любой текстовый редактор. который Вам нравится.

Избегайте добавления повторяющихся правил

Далее рассмотрим механизм против повторяющихся правил. Сначала мы откроем порт 101

sudo ufw allow 100

Обратите внимание, что команда без протокола, как и выше открывает оба UDP и TCP-порт. Так давайте выполним ту же команду еще раз, чтобы увидеть, что происходит

ufw allow 100

ufw allow 100

Вывод

Skipping adding existing rule Skipping adding existing rule (v6)

Это не позволяет нам добавить дубликат правила. Это хорошо, но есть еще шанс, что мы можем добавить дубликат правила этой серии команд:

ufw allow 101/udp ufw allow 101/tcp

Указав TCP и UDP порт 101, мы все еще можем добавить открытый порт 101 для всех протоколов и это дубликат правила, как порт 101 открыт дважды, один раз для каждого протокола и один раз для всех из них.

ufw allow 101

Это оставляет место для ошибок, и это, как правило, не является хорошей практикой. Нам нужно отменить все три команды с помощью команды ufw delete, если мы хотим вернуться к значению по умолчанию для порта 101.

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

В этой статье мы рассмотрели использование UFW, который является несложным брандмауэром, используемым для разрешения или ограничения трафика. Это очень мощный брандмауэр для регулирования трафика в вашей системе. Не стесняйтесь опробовать команды в вашей системе.

  • https://community.vscale.io/hc/ru/community/posts/208348529-%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D1%84%D0%B0%D0%B5%D1%80%D0%B2%D0%BE%D0%BB%D0%B0-%D0%B2-Ubuntu-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E-%D1%83%D1%82%D0%B8%D0%BB%D0%B8%D1%82%D1%8B-UFW
  • https://serverspace.by/support/help/ispolzovanie-utility-ufw-na-linux/
  • https://lumpics.ru/configuring-ufw-in-ubuntu/
  • https://system-admins.ru/kak-nastroit-brandmauer-ufw-na-ubuntu-16-04-lts/
  • https://andreyex.ru/ubuntu/kak-nastroit-brandmauer-ufw-na-ubuntu-18-04/
Поделитесь в социальных сетях:FacebookXВКонтакте
Напишите комментарий