LINUX.ORG.RU

Сообщения Ku

 

vsftpd + iptables + NAT + Ubuntu 18.04.1 Server

Форум — Admin

Поставлена задача настроить FTP Server. Сервер куплен, ось установлена.

Сервер находится в локальной сети за роутером TP-Link, который раздает адреса в сети 16.16.16.х. Все адреса важных ПК и серверов зарезервированы, их IP в локалке не меняются.

Роутер получает внешний белый динамический IP от провайдера (режим получения IP в TP-Link установлен «динамический», статику не дает провайдер). Пусть это будет 100.100.100.100. Есть внешний IP шлюза 100.100.100.200.

Нужно, чтобы извне могли подключаться к этому FTP серверу. Локальные пользователи созданы.

IP FTP сервера 16.16.16.10 Интерфейс enp0s3
Параметры vsftpd.conf

listen=YES
#listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=120
ftpd_banner=Welcome to BIG FTP Server
chroot_local_user=YES
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd.chroot_list
hide_ids=YES
ls_recurse_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
pasv_enable=YES
pasv_min_port=50000
pasv_max_port=50500
pasv_address=16.16.16.10 

Насчет pasv_address=16.16.16.10 не уверен. Нужен ли этот параметр в конфиге?

Скажу сразу, что в настройках iptables не силен. Перечитал кучу всего, разных примеров настроек, но не работает ничего.

В общем, внес некие изменения (начитался всего):

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
Включил модули:
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
Создал скрипт для сохранеия правил и их запуска: /etc/network/if-up.d/iptables-rules

Вот с самими правилами беда(((:

iptables -A INPUT -p tcp --dport 20 -m conntrack --ctstate NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -m conntrack --ctstate NEW -j ACCEPT
iptables -A INPUT -p tcp --dport 50000:50500 -m conntrack --ctstate NEW -j ACCEPT

Нашел в сети еще такие правила:

iptables -t nat -A PREROUTING -i enp0s3 -p tcp -m tcp --dport 2100 -j DNAT --to-destination 16.16.16.10:21
iptables -t nat -A PREROUTING -i enp0s3 -p tcp -m tcp --dport 10000:10100 -j DNAT --to-destination 16.16.16.10
iptables -A INPUT -i enp0s3 -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -i enp0s3 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

И еще пара вопросов:

  • Как в Ubuntu 18.04.1 автоматом подключать модули nf_conntrack_ftp и nf_nat_ftp?
  • Нужно ли включать echo 1 > /proc/sys/net/netfilter/nf_conntrack_helper?

Понимаю, что косяков много. Копаю, учусь.

 , , ,

Ku
()

RSS подписка на новые темы