LINUX.ORG.RU

Избранные сообщения KLfer

FTP за NAT на нестандартном порту

Форум — Admin

Шлюз на Debian 7.11 (3.2.0-4-686-pae), iptables v1.4.14.

ip внешнего интерфейса: 1.1.1.1

ip внутреннго интерфейса: 192.168.1.1

Внутри локальной сети работает ftp-сервер, для которого нужно организовать доступ снаружи.

ip ftp-сервера во внутренней сети: 192.168.1.55

Порт ftp-сервера во внутренней сети: 51

Вывод lsmod | grep ftp

nf_nat_ftp             12420  0
nf_conntrack_ftp       12533  2 nf_nat_ftp
nf_nat                 17913  2 iptable_nat,nf_nat_ftp
nf_conntrack           43121  9 nf_conntrack_ipv4,nf_nat,iptable_nat,xt_conntrack,xt_state,nf_conntrack_ftp,nf_nat_ftp,xt_CT,nf_conntrack_netlink

Вот так не работает:

iptables -t raw -A PREROUTING --dst 1.1.1.1   -p tcp --dport 55555 -j CT --helper ftp
iptables -t nat -A PREROUTING -i ext --dst 1.1.1.1 -p tcp --dport 55555 -j DNAT --to-destination 192.168.1.55:51

Управляющее соединение открывается, но соденение для потока данных нет. conntrack -E expect ничего не показывает.

Если переделать, чтобы порт ftp-сервер был стандартным (настройки ftp-сервера и настройки iptables), то все работает:

iptables -t nat -A PREROUTING -i ext --dst 1.1.1.1 -p tcp --dport 55555 -j DNAT --to-destination 192.168.1.55:21

Подскажите пожалуйста какие нужны настройки, чтобы сделать доступным ftp-сервер, работающий на нестандартном порту?

 , ,

KLfer
()

Разъясните работу knockd

Форум — Admin

Конфиг knockd:

[CFG01]
        sequence        = 27000:udp,27001:udp,27002:udp
        seq_timeout     = 7
        command         = /sbin/..........

Настройки iptables:

/sbin/iptables -A INPUT -p udp -m multiport --dports 27000,27001,27002,27003,27004 -j LOG  --log-prefix "KNOCK packets"
/sbin/iptables -A INPUT -p udp -m multiport --dports 27000,27001,27002,27003,27004 -j DROP

Через nping посылаю одиночные пакеты на порты 27000-27005.

В логе получаю сообщения:

... KNOCK packets ... PROTO=UDP ... DPT=27000 ...
... KNOCK packets ... PROTO=UDP ... DPT=27001 ...
... KNOCK packets ... PROTO=UDP ... DPT=27002 ...
... KNOCK packets ... PROTO=UDP ... DPT=27003 ...
... KNOCK packets ... PROTO=UDP ... DPT=27004 ...

Здесь при поступлении комбинации пакетов запуск команды из конфига knockd выполняется, также появляются записи в логе от iptables.

Т.е. насколько я вижу, knockd работает как-то прозрачно для iptables (да и вообще для сети)?

Я сначала полагал, что knockd тупо открывает на прослушку заданные в конфиге порты и поэтому эти порты нужно пропускать в iptables...

Но реально получается, что knockd как-то получает сетевые пакеты раньше чем iptables?

Проясните пожалуйста эту тему!

 ,

KLfer
()

Не стартует автоматически при загрузке операционки демон knockd

Форум — Admin

Не стартует автоматически при загрузке операционки демон knockd

Debian GNU/Linux 9.8 (stretch)

Linux gw 4.9.0-8-686-pae #1 SMP Debian 4.9.144-3.1 (2019-02-19) i686 GNU/Linux

Содержимое конфигов:

/etc/default/knockd

# control if we start knockd at init or not
# 1 = start
# anything else = don't start
# PLEASE EDIT /etc/knockd.conf BEFORE ENABLING
START_KNOCKD=1

# command line options
#KNOCKD_OPTS="-i eth1"
KNOCKD_OPTS="-v -i ext"

/etc/knockd.conf

[options]
        UseSyslog

[RDP01]
    Sequence    = 27000:udp,27001:udp,27002:udp
    Seq_Timeout = 7
    Command     = /sbin/ipset add knock_hosts_set %IP%

/lib/systemd/system/knockd.service

[Unit]
Description=Port-Knock Daemon
After=network.target
Documentation=man:knockd(1)

[Service]
EnvironmentFile=-/etc/default/knockd
ExecStart=/usr/sbin/knockd $KNOCKD_OPTS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
SuccessExitStatus=0 2 15
ProtectSystem=full
CapabilityBoundingSet=CAP_NET_RAW CAP_NET_ADMIN

Restart=always
OOMScoreAdjust=-100

Состояние сервиса сразу после загрузки операционки:

systemctl status knockd

● knockd.service - Port-Knock Daemon
   Loaded: loaded (/lib/systemd/system/knockd.service; static; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:knockd(1)

systemctl is-enabled knockd

static

systemctl is-active knockd

inactive

Состояние сервиса после его запуска вручную:

systemctl status knockd

● knockd.service - Port-Knock Daemon
   Loaded: loaded (/lib/systemd/system/knockd.service; static; vendor preset: enabled)
   Active: active (running) since Sun 2019-03-31 09:25:20 MSK; 5s ago
     Docs: man:knockd(1)
 Main PID: 681 (knockd)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/knockd.service
           └─681 /usr/sbin/knockd -v -i ext

Mar 31 09:25:20 gw systemd[1]: Started Port-Knock Daemon.
Mar 31 09:25:20 gw knockd[681]: listening on ext...
Mar 31 09:25:20 gw knockd[681]: starting up, listening on ext

Попробовал выполнить knocking - knocking работает:

systemctl status knockd

● knockd.service - Port-Knock Daemon
   Loaded: loaded (/lib/systemd/system/knockd.service; static; vendor preset: enabled)
   Active: active (running) since Sun 2019-03-31 09:25:20 MSK; 53s ago
     Docs: man:knockd(1)
 Main PID: 681 (knockd)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/knockd.service
           └─681 /usr/sbin/knockd -v -i ext

Mar 31 09:26:00 gw knockd[681]: 192.168.111.12: RDP01: Stage 2
Mar 31 09:26:00 gw knockd[681]: 192.168.111.12: RDP01: Stage 2
Mar 31 09:26:01 gw knockd[681]: 192.168.111.12: RDP01: Stage 3
Mar 31 09:26:01 gw knockd[681]: 192.168.111.12: RDP01: OPEN SESAME
Mar 31 09:26:01 gw knockd[681]: RDP01: running command: /sbin/ipset add knock_hosts_set 192.168.111.12
Mar 31 09:26:01 gw knockd[681]: 192.168.111.12: RDP01: Stage 3
Mar 31 09:26:01 gw knockd[681]: 192.168.111.12: RDP01: OPEN SESAME

Подскажите пожалуйста почему knockd не стартует автоматически???

 , ,

KLfer
()