cifs

Ответить
ya
^-^
Сообщения: 3152
Зарегистрирован: 16 дек 2021, 19:56

cifs

Сообщение ya »

Монтирование сетевой папки CIFS (Samba) через файл `/etc/fstab` — отличный способ автоматизировать процесс, чтобы ресурсы были доступны сразу после загрузки системы.

Вот пошаговое руководство, как сделать это правильно и безопасно.

---

### 1. Подготовка

Для начала убедитесь, что у вас установлен пакет для работы с CIFS:

* **Ubuntu/Debian:** `sudo apt update && sudo apt install cifs-utils`
* **CentOS/RHEL:** `sudo yum install cifs-utils`

### 2. Создание файла учетных данных

Хранить логин и пароль в открытом виде в `fstab` — плохая идея (его может прочитать любой пользователь). Лучше создать скрытый файл:

1. Создайте файл: `sudo nano /etc/win-credentials`
2. Добавьте туда данные:
```text
username=ваш_логин
password=ваш_пароль
domain=WORKGROUP (если нужно)

```


3. Установите права доступа, чтобы файл видел только root:
`sudo chmod 600 /etc/win-credentials`

### 3. Настройка /etc/fstab

Откройте файл конфигурации: `sudo nano /etc/fstab`.

Добавьте строку в конец файла, используя следующую структуру:

`//SERVER_IP/share_name /mnt/mount_point cifs credentials=/etc/win-credentials,iocharset=utf8,uid=1000,gid=1000 0 0`

#### Разбор параметров:

| Параметр | Описание |
| --- | --- |
| `//SERVER_IP/share` | Путь к сетевой папке. |
| `/mnt/mount_point` | Локальная папка, куда монтируем (она должна существовать). |
| `cifs` | Тип файловой системы. |
| `credentials` | Путь к файлу с логином/паролем. |
| `iocharset=utf8` | Поддержка кириллицы. |
| `uid/gid` | ID вашего локального пользователя и группы (чтобы у вас были права на запись). Узнать свой ID можно командой `id`. |
| `_netdev` | (Рекомендуется) Ждет поднятия сети перед попыткой монтирования. |

---

### 4. Проверка

Чтобы не перезагружать компьютер для проверки, выполните:

```bash
sudo mount -a

```

Если ошибок нет и папка появилась в системе — всё настроено верно.

---

### Частые проблемы

* **Версия протокола:** Если сервер старый (или, наоборот, очень новый), может потребоваться указать версию протокола явно, добавив в опции `vers=3.0` или `vers=1.0` (не рекомендуется из-за безопасности).
* **Права доступа:** Убедитесь, что точка монтирования (`/mnt/mount_point`) создана заранее: `sudo mkdir -p /mnt/mount_point`.
ya
^-^
Сообщения: 3152
Зарегистрирован: 16 дек 2021, 19:56

Re: cifs

Сообщение ya »

/etc/fstab

Код: Выделить всё

//192.168.100.205/gt /home/gt/e12       cifs    credentials=/etc/win-credentials,rw,rsize=32768,wsize=32768,dir_mode=0555,file_mode=0444,uid=gt,gid=gt0       0
/etc/win-credentials

Код: Выделить всё

user=пользователь
password=пароль
ya
^-^
Сообщения: 3152
Зарегистрирован: 16 дек 2021, 19:56

Re: cifs

Сообщение ya »

Существует несколько способов узнать поддерживаемые и активные версии протокола SMB на сервере Debian. Важно различать **версию самого пакета Samba** и **версии протокола SMB** (диалекты), которые разрешены в конфигурации.

---

### 1. Проверка активных соединений (smbstatus)
Если к серверу прямо сейчас кто-то подключен, это самый быстрый способ увидеть, по какому протоколу работают клиенты.
```bash
sudo smbstatus
```
В столбце **Protocol** или **Version** вы увидите конкретные диалекты (например, `SMB3_11`, `SMB2_10`).

### 2. Проверка настроек в конфигурации
Samba позволяет ограничить минимальную и максимальную версию протокола. Проверьте файл `/etc/samba/smb.conf`:
```bash
grep -iE "server (min|max) protocol" /etc/samba/smb.conf
```
* **Если параметров нет:** используются значения по умолчанию (обычно от SMB2_10 до SMB3).
* **Если параметры есть:** они могут выглядеть так: `server min protocol = SMB2`.

Чтобы увидеть **все** текущие настройки (включая те, что по умолчанию), выполните:
```bash
testparm -v | grep -iE "protocol"
```

### 3. Использование Nmap (внешняя проверка)
Вы можете просканировать свой сервер (даже локально), чтобы узнать, какие версии протокола он готов обсуждать с клиентом. Для этого нужен пакет `nmap`.
```bash
nmap -p 445 --script smb-protocols localhost
```
Это выведет список всех диалектов, которые сервер подтверждает при установке соединения.

### 4. Версия самого пакета Samba
Иногда полезно знать версию ПО, так как старые версии Samba (например, 3.x) не поддерживают SMB3.
```bash
smbd -V
```

---

### Справочная таблица версий
| Название в конфиге | Версия протокола | Примечание |
| :--- | :--- | :--- |
| **NT1** | SMB 1.0 | Устаревший, небезопасный. |
| **SMB2** | SMB 2.0 | Появился в Windows Vista. |
| **SMB2_10** | SMB 2.1 | Появился в Windows 7. |
| **SMB3** | SMB 3.0 | Появился в Windows 8 / Server 2012. |
| **SMB3_11** | SMB 3.1.1 | Самый современный и безопасный (Windows 10/11). |

> **Совет:** Для обеспечения безопасности на современном сервере Debian рекомендуется отключать поддержку **SMB1 (NT1)**, установив `server min protocol = SMB2` в секции `[global]` файла `smb.conf`.
Ответить