Ftp за NAT проброс портов и настройка диапазона.
Стандартная задача - пробросить ftp за Nat. Небольшая сложность в том, что нужно кроме 21 порта пробросить диапазон дополнительных портов и настроить сам ftp на указаение данного диапозона и ip внешнего интерфейса.
К примеру, выделим для ftp порт 2100 и 10000-10100
Локальный ftp сервер работает на 192.168.122.100 порт 21.
Тогда настройки iptables для "шлюза":
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 2100 -j DNAT --to-destination 192.168.122.100:21
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 10000:10100 -j DNAT --to-destination 192.168.122.100
И в самом ftp надо указать эти нюансы. В случае vsftpd это делается добавлением строк:
pasv_min_port=10000 ;Указываем используемые сервером порты, первый
pasv_max_port=10100 ;и последний
pasv_address=_внешний_ip_шлюза_
В первом приблежении можно считать настроенным.
Правила firewall на gate:
$IPT -t nat -A PREROUTING -i $REAL_IF -p tcp -m tcp --dport 60021 -j DNAT --to-destination 192.168.0.57:21
$IPT -t nat -A PREROUTING -i $LOCAL_IF -p tcp -m tcp --dport 60021 -j DNAT --to-destination 192.168.0.57:21
$IPT -t nat -A PREROUTING -i $LOCAL_IF -p tcp -m tcp --dport 10000:10100 -j DNAT --to-destination 192.168.0.57
$IPT -t nat -A PREROUTING -i $REAL_IF -p tcp -m tcp --dport 10000:10100 -j DNAT --to-destination 192.168.0.57
добавить в функцию на firewallе :
function default_policy()
{
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
....
}
конфиг proftpd:
Include /etc/proftpd/modules.conf
UseIPv6 off
ServerType standalone
MaxInstances 30
SystemLog /var/log/proftpd/proftpd.log
TimesGMT off
SetEnv TZ :/etc/localtime
CharsetLocal KOI8-R
CharsetRemote CP1251
#UseReverseDNS off
MasqueradeAddress 100.100.100.100
PassivePorts 10000 10100
<IfModule mod_facts.c>
FactsAdvertise off
</IfModule>
ServerName "oen_PR_ftp"
DeferWelcome off
Port 21
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
ListOptions "-l"
DenyFilter \*.*/
# Пользователь, под которым будет запускаться FTP-сервер
User proftpd
# Группа, с которой будет запускаться FTP-сервер
Group nogroup
# Маска (права доступа) для файлов (первое значение 022) и каталогов (второе значение 022), создаваемых в каталогах
Umask 022 022
# Разрешить перезаписывать существующие файлы
AllowOverwrite on
# Для каждого пользователя в качестве корневого каталога устанавливаем его домашнюю папку. В этом случае пользователь не сможет выйти выше, т.е. попасть в /var/ftp или /var/ftp/check
DefaultRoot ~
# Настраиваем права доступа к пользовательским каталогам
# для каталога /ftp/check:
<Directory /var/ftp/check>
# Пусть check имеет полный доступ к своей папке (закачивать файлы, скачивать файлы, создавать папки, удалять )
Umask 022 022
<Limit WRITE>
AllowUser check
</Limit>
</Directory>
# Настраиваем логи
TransferLog /var/log/proftpd/xferlog
# Отключаем проверку командного интерпретатора пользователя
RequireValidShell off
# указываем файл с учетными записями для авторизации пользователей
AuthUserFile /etc/proftpd/ftpd.passwd
# Include other custom configuration files
Include /etc/proftpd/conf.d/
AllowForeignAddress on
права на папку
user@srv-ftp:~$ ls -la /var/ftp/check
итого 108
drwxr-xr-x 2 proftpd nogroup 4096 мая 31 15:39 .
drwxr-xr-x 3 proftpd nogroup 4096 апр. 26 17:17 ..
-rw-r--r-- 1 proftpd nogroup 25007 мая 31 15:41 7845C4A87C78
-rw-r--r-- 1 proftpd nogroup 46047 мая 27 12:43 8C89A5FB6DF7
-rw-r--r-- 1 proftpd nogroup 7629 апр. 26 17:27 adduserftp.tar.gz
-rw-r--r-- 1 root root 2491 мая 31 15:39 proftpd.conf
-rw-r--r-- 1 proftpd nogroup 6 мая 4 11:59 test11.txt
-rw-r--r-- 1 proftpd nogroup 2 мая 4 11:57 test1.txt
-rw-r--r-- 1 proftpd nogroup 39 апр. 27 22:02 test.txt
Комментариев нет:
Отправить комментарий