Windows Tips & News

Виправити доступ до FTP з клієнтського комп’ютера Linux з увімкненим брандмауером

Сьогодні я хотів би поділитися своїм особистим досвідом використання FTP-доступу в Linux. Завдяки новим операційним системам від Microsoft, які я не вважаю придатними для щоденного використання, я перейшов на Linux кілька років тому. Я використовую FTP-сервер у своїй домашній мережі, і я не зміг отримати до нього доступ із запущеного клієнтського ПК Linux, який має правила брандмауера для блокування вхідних з’єднань, тобто політика INPUT має значення ВІДМІНИТИ в iptables. Ось як я вирішив проблему.

Я припускаю, що політика OUTPUT є ACCEPT як на клієнтських, так і на серверних машинах.

Програмне забезпечення FTP-сервера повинно мати відкриті порти на клієнтському комп’ютері для встановлення пасивного з’єднання. У моєму випадку всі порти були закриті, за винятком тих портів, які були явно відкриті для програмного забезпечення, яке потребує вхідних підключень, наприклад мого торрент-клієнта, медіа-сервера UPnP тощо. Проблема в тому, що ви не можете передбачити, який саме порт буде використовуватися для підключення до вашої клієнтської машини. Це випадковий порт кожного разу, коли ви виконуєте з’єднання. Я знайшов два рішення.

Рішення №1. Використовуйте модуль ядра nf_conntrack_ftp
Модуль ядра nf_conntrack_ftp дозволяє автоматично розблокувати доступ до необхідного порту для FTP-сервера щоразу, коли ви встановлюєте з'єднання. Єдиною вимогою до цього модуля є наступний рядок у ваших правилах iptables (зазвичай це /etc/iptables/iptables.rules) на клієнтському ПК:

$IPT -A INPUT -i eth0 -m стан --state ПОВ'ЯЗАНО, ВСТАНОВЛЕНО -j ПРИЙНЯТИ

Існує eth0 - це назва вашого мережевого пристрою.

Далі вам потрібно завантажити nf_conntrack_ftp, якщо він не завантажений. Виконайте наступну команду як root на клієнтському ПК

# modprobe nf_conntrack_ftp

Якщо ваш сервер використовує якийсь порт, відмінний від стандартного порту (окрім порту 21), скористайтеся такою командою:

# modprobe nf_conntrack_ftp ports=ваш_порт

Це забезпечить автоматичне з’єднання з усіма необхідними портами між FTP-сервером і клієнтським програмним забезпеченням. Це працює, поки ви не перезавантажите свій ПК.

Щоб зробити цю зміну постійною, вам потрібно створити новий текстовий файл /etc/modules-load.d/conntrack_ftp.conf і додати до цього файлу наступний рядок:

nf_conntrack_ftp

У разі порту сервера, який не за замовчуванням, вам потрібно створити додатковий файл /etc/modprobe.d/conntrack_ftp.conf з таким вмістом:

параметри nf_conntrack_ftp ports=

Цього має бути достатньо.

Рішення №2. Використовуйте фіксований діапазон пасивних портів
Якщо ви не можете використовувати модуль nf_conntrack_ftp, ви можете встановити фіксований діапазон портів для програмного забезпечення FTP-сервера та відкрити його на клієнтському ПК. Наприклад, ось як це можна зробити для програми vsftpd.

  1. У файлі конфігурації vsftpd, який зазвичай є /etc/vsftpd.conf, додайте такі рядки:
    pasv_min_port=5500. pasv_max_port=6500

    Це потрібно зробити на стороні сервера. Після цього вам слід перезапустити vsftpd.

  2. У свої правила iptables (зазвичай це /etc/iptables/iptables.rules) на клієнтському ПК додайте таке правило:
     $IPT -A INPUT -p tcp -s  --dport 5500:6500 -j ПРИЙНЯТИ
  3. Застосуйте правила iptables наступним чином:
    # iptables-restore < /etc/iptables/iptables.rules

Це воно.

Встановити Firefox як засіб перегляду PDF за замовчуванням у Windows 10

Встановити Firefox як засіб перегляду PDF за замовчуванням у Windows 10

РЕКОМЕНДУЄМО: Натисніть тут, щоб вирішити проблеми з Windows та оптимізувати продуктивність систе...

Читати далі

Вимкніть попередній перегляд мініатюр у Провіднику файлів у Windows 10

Вимкніть попередній перегляд мініатюр у Провіднику файлів у Windows 10

РЕКОМЕНДУЄМО: Натисніть тут, щоб вирішити проблеми з Windows та оптимізувати продуктивність систе...

Читати далі

Завантажте інсталятор Deskthemepack для Windows 7

Цей веб-сайт використовує файли cookie, щоб покращити ваш досвід під час навігації веб-сайтом. З ...

Читати далі