Показаны сообщения с ярлыком iptables. Показать все сообщения
Показаны сообщения с ярлыком iptables. Показать все сообщения

понедельник, 30 мая 2016 г.

Ftp за NAT

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








вторник, 8 сентября 2015 г.

iptables наброски




Как в iptables пробросить порт?

Есть Linux шлюз надо чтоб с инета был доступен нейкий сервис на внутренней машине
   iptables -t nat -A PREROUTING -p tcp -d 91.195.101.20 –dport 7888 -j DNAT –to-destination 192.168.100.251:7888
   iptables -t nat -A POSTROUTING -p tcp –dst 192.168.100.251 –dport 7888 -j SNAT –to-source 91.195.101.20

Первое правило подменяет ip приёмника на внутренний ип, а второе обратно подменяет ип отправителя на внешний.