ftp на linux PVE
Отличный выбор! Развертывание FTP-сервера в **LXC-контейнере** на Proxmox VE (PVE) — это легковесное и безопасное решение.
### **1. Создание LXC-контейнера**
1. **В веб-интерфейсе PVE**
- Перейдите в `Create CT` (контейнер).
- Выберите **шаблон** (например, `Debian 12` или `Ubuntu 22.04`).
- Укажите **ID контейнера**, **пароль root** и **хранилище**.
- В `Network` задайте статический IP (например, `192.168.1.100`) или DHCP.
2. **Через CLI (альтернатива)**
```bash
pct create 100 local:vztmpl/debian-12-standard_12.0-1_amd64.tar.zst \
--storage local-lvm --rootfs 8 \
--net0 name=eth0,bridge=vmbr0,ip=192.168.1.100/24,gw=192.168.1.1
pct start 100
```
### **2. Установка FTP-сервера (vsftpd)**
1. **Подключитесь к контейнеру**
```bash
pct enter 100 # или ssh root@192.168.1.100
```
2. **Обновите систему и установите vsftpd**
```bash
apt update && apt upgrade -y
apt install vsftpd -y
```
### **3. Настройка vsftpd**
1. **Отредактируйте конфиг:**
```bash
nano /etc/vsftpd.conf
```
2. **Минимальная рабочая конфигурация:**
```ini
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100
local_umask=022
```
3. **Перезапустите vsftpd:**
```bash
systemctl restart vsftpd
systemctl enable vsftpd
```
### **4. Создание FTP-пользователя**
1. **Добавьте пользователя (например, `ftpuser`):**
```bash
useradd -m -d /home/ftpuser -s /bin/bash ftpuser
passwd ftpuser
```
2. **Если нужен доступ к конкретной папке:**
```bash
mkdir /mnt/storage
chown ftpuser:ftpuser /mnt/storage
usermod -d /mnt/storage ftpuser
```
### **5. Открытие портов в PVE (если контейнер за NAT)**
Если у контейнера **NAT** (через `vmbr0`), пробейте порты на хосте PVE:
```bash
iptables -t nat -A PREROUTING -p tcp --dport 21 -j DNAT --to 192.168.1.100:21
iptables -t nat -A PREROUTING -p tcp --dport 40000:40100 -j DNAT --to 192.168.1.100:40000-40100
```
Для сохранения правил:
```bash
apt install iptables-persistent -y
netfilter-persistent save
```
### **6. Проверка подключения**
- Используйте **FileZilla** или `ftp` в терминале:
```
ftp 192.168.1.100
```
Логин: `ftpuser` и ваш пароль.
---
### **Дополнительные настройки**
- **SFTP (повышенная безопасность):** Используйте OpenSSH (`sftp`).
- **Резервное копирование:** Настройте `rsync` через FTP.
- **Логирование:** Включите `xferlog_enable=YES` в `/etc/vsftpd.conf`.
---
### **Итог**
Вы настроили **FTP-сервер в LXC-контейнере** на PVE. Это изолирует сервис от хоста и упрощает управление.
Если нужен **безопасный доступ**, рассмотрите **SFTP/SSH** или **WebDAV** (например, через Nextcloud).