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

Це воно.

Excel Online покращує навігацію, ярлики тощо

Excel Online покращує навігацію, ярлики тощо

Ті, хто використовує Excel для Інтернету, будуть раді дізнатися про майбутні покращення. Microsof...

Читати далі

Word для Web тепер може перетворювати документи на презентації

Word для Web тепер може перетворювати документи на презентації

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

Читати далі

Як перевести комп'ютер Windows в режим сну з командного рядка

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

Читати далі