Подскажите что это значит

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
ikarus
рядовой
Сообщения: 36
Зарегистрирован: 2010-11-19 6:56:39
Контактная информация:

Подскажите что это значит

Непрочитанное сообщение ikarus » 2010-12-08 13:27:22

freebsd7.3+pf
задача: расшарить доступ к ssh из инета
sshd_config:

Код: Выделить всё

Port 5522
Protocol 2
PermitRootLogin no
PermitEmptyPasswords no
AllowUsers den
pf.conf:

Код: Выделить всё

#блок всего по-умолчанию
block all
#пропускаем все исходящие пакеты на внутреннем инт.
pass out log on $int_if from any to $localnet
#пропускаем все!!! пакеты для шлюза из лана
pass in quick log on $int_if from $localnet to $int_if
#доступ к ssh из лан
pass in quick log on $int_if proto tcp from $den_host to $int_if port 5522
#доступ к ssh из инета
pass in quick log on $ext_if1 proto tcp from any to $ext_if1 port 5522
#балансировка
pass in route-to { ($ext_if2 $ext_gw2), ($ext_if1 $ext_gw1) } round-robin from $localnet to any
#основные выпускающие правила
pass out log on $ext_if1 proto tcp from any to any flags S/SA modulate state
pass out log on $ext_if1 proto {udp, icmp} from any to any
pass out log on $ext_if2 proto tcp from any to any flags S/SA modulate state
pass out log on $ext_if2 proto {udp, icmp} from any to any
#маршрутизация пакетов по принадлежности
pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from $ext_if2 to any
pass out on $ext_if2 route-to ($ext_if1 $ext_gw1) from $ext_if1 to any
из локалки подключаюсь без проблем, из инета путя долго думает и сообщает что коннект рефуз

подампил pflog, все что нашел по этому делу:
2010-12-07 20:55:17.202914 IP 178.49.252.102.41744 > 111.111.111.111.5522: S 2078334052:2078334052(0) win 65535 <mss 1460,nop,nop,sackOK>

теперь пытаюсь догнать что это значит :)

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Gloft
лейтенант
Сообщения: 645
Зарегистрирован: 2008-03-09 11:32:12
Откуда: Москва

Re: Подскажите что это значит

Непрочитанное сообщение Gloft » 2010-12-08 15:26:28

покажи полный конфиг sshd
у тебя интерфейса внешних два а прописан доступ только из инета только на один

ikarus
рядовой
Сообщения: 36
Зарегистрирован: 2010-11-19 6:56:39
Контактная информация:

Re: Подскажите что это значит

Непрочитанное сообщение ikarus » 2010-12-09 6:02:38

ну вообщем так и задумывалось чтобы доступ только на одном внешнем был, или хочешь сказать что загвоздка происходит в момент ответа сервера?

Код: Выделить всё

#	$OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $
#	$FreeBSD: src/crypto/openssh/sshd_config,v 1.47.2.2.6.1 2010/02/10 00:26:20 kensmith Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options change a
# default value.

# Note that some of FreeBSD's defaults differ from OpenBSD's, and
# FreeBSD has a few additional options.

#VersionAddendum FreeBSD-20080901

Port 5522
#Protocol 2
#AddressFamily any
#ListenAddress ::

# Disable legacy (protocol version 1) support in the server for new
# installations. In future the default will change to require explicit
# activation of protocol 1
Protocol 2

# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_dsa_key

# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 1024

# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile	.ssh/authorized_keys

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# Change to yes to enable built-in password authentication.
#PasswordAuthentication no
PermitEmptyPasswords no

# Change to no to disable PAM authentication
#ChallengeResponseAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

# Set this to 'no' to disable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will 
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
#UsePAM yes

#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10
#PermitTunnel no
#ChrootDirectory none

# no default banner path
#Banner none

# override default of no subsystems
Subsystem	sftp	/usr/libexec/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs
#	X11Forwarding no
#	AllowTcpForwarding no
#	ForceCommand cvs server
AllowUsers den

Gloft
лейтенант
Сообщения: 645
Зарегистрирован: 2008-03-09 11:32:12
Откуда: Москва

Re: Подскажите что это значит

Непрочитанное сообщение Gloft » 2010-12-09 9:41:43

ikarus писал(а):ну вообщем так и задумывалось чтобы доступ только на одном внешнем был, или хочешь сказать что загвоздка происходит в момент ответа сервера?
Это можно проверить добавив еще одно правило в FP о доступе по ssh на второй внешний интерфейс.
Как еще один вариант посмотреть tcpdump-ом, что происходит на интерфейсах в момент подключения из инета.

ikarus
рядовой
Сообщения: 36
Зарегистрирован: 2010-11-19 6:56:39
Контактная информация:

Re: Подскажите что это значит

Непрочитанное сообщение ikarus » 2010-12-09 10:45:18

Доступ по обоим не помог.
и вот все что происходит на внешнем ифейсе при попытке подключения к ssh:
# tcpdump -n -tttt -i rl2 host xxx.xxx.xxx.xxx
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on rl2, link-type EN10MB (Ethernet), capture size 96 bytes

Код: Выделить всё

2010-12-09 13:34:52.700185 IP xxx.xxx.xxx.xxx.60974 > yyy.yyy.yyy.yyy.5522: S 2315574011:2315574011(0) win 64512 <mss 1460,nop,nop,sackOK>
может я в pf.conf чего напортачил

Код: Выделить всё

ext_if1="rl0" #Телеконнект
ext_if2="rl2"   #Хоумнет
ext_gw2="222.222.222.222"   #шлюз Хоумнет
ext_gw1="111.111.111.111"   #шлюз Телеконнект
int_if="rl1"  #локальный интерфейс
localnet="192.168.1.0/24"   #локальная сеть
den_host="192.168.1.39" #моё

#пропустить проверку на петле
set skip on lo0
#включить логи на интерфейсах
set loginterface rl0
set loginterface rl1
set loginterface rl2

#нормализация трафа
scrub in all
scrub out all

#используем ftp-proxy для доступа к фтп серверам в инете
nat-anchor "ftp-proxy/*"

#используем ftp-proxy для доступа к фтп серверам в инете
rdr-anchor "ftp-proxy/*"

#редирект web запросов на squid
rdr on $int_if proto tcp from $localnet to any port http -> $int_if port 3232

#натим внешние интерфейсы
nat on $ext_if1 from $int_if:network to any -> ($ext_if1)
nat on $ext_if2 from $int_if:network to any -> ($ext_if2)

#редирект на ftp-proxy
rdr pass on $int_if proto tcp from $localnet to any port {ftp,ftp-data} -> 127.0.0.1 port 8021

block all #блок всего по-умолчанию

antispoof quick for { lo0 $int_if }

#используем frp-proxy для доступа к фтп серверам в инет
anchor "ftp-proxy/*"

#пропускаем все исходящие пакеты на внутреннем инт.
pass out log on $int_if from any to $localnet

#разрешаем доступ к ssh для меня
pass in quick log on $int_if proto tcp from $den_host to $int_if port 5522

#запрещаем доступ к ssh для лок.сети
block in quick log on $int_if proto tcp from $localnet to $int_if port 5522

#доступ к ssh из инета
pass in quick log on $ext_if2 proto tcp from any to $ext_if2 port 5522
pass in quick log on $ext_if1 proto tcp from any to $ext_if1 port 5522

#пропускаем все!!! пакеты для шлюза из лок.сети
pass in quick log on $int_if from $localnet to $int_if

#доступ к почтальону из инета
pass in quick log on $ext_if2 proto tcp from any to $ext_if2 port smtp

#доступ к ftp из инета
pass in quick log on $ext_if2 proto tcp from any to $ext_if2 port {ftp,ftp-data}

#доступ к зеркалу нода из инета
pass in log on $ext_if2 proto tcp from any to $ext_if2 port 2221

#балансировка
pass in route-to { ($ext_if2 $ext_gw2), ($ext_if1 $ext_gw1) } round-robin from $localnet to any

#основные выпускающие правила
pass out log on $ext_if1 proto tcp from any to any flags S/SA modulate state
pass out log on $ext_if1 proto {udp, icmp} from any to any
pass out log on $ext_if2 proto tcp from any to any flags S/SA modulate state
pass out log on $ext_if2 proto {udp, icmp} from any to any

#маршрутизация пакетов по принадлежности
pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from $ext_if2 to any
pass out on $ext_if2 route-to ($ext_if1 $ext_gw1) from $ext_if1 to any

Gloft
лейтенант
Сообщения: 645
Зарегистрирован: 2008-03-09 11:32:12
Откуда: Москва

Re: Подскажите что это значит

Непрочитанное сообщение Gloft » 2010-12-09 11:04:41

Попробуй выставить в sshd_conf принудително значение ListenAddress.
То что ты смотрел tcpdump-ом на rl2 это говорит только то, что происходило только на нем ,а что было на втором интерфейсе неизвесно (у тебя же round-robin).
Попробуй выключит на время round-robin, если такое возможно.

В идеале на время теста фаервол лутьше выключить, после проверить, что ssh работает с обоих сторон, а дальше разбираться с фаерволом.

ikarus
рядовой
Сообщения: 36
Зарегистрирован: 2010-11-19 6:56:39
Контактная информация:

Re: Подскажите что это значит

Непрочитанное сообщение ikarus » 2010-12-09 13:25:48

нашел гвоздь!
не поверешь!
во-первых мешает set skip on lo0
а во-вторых если в antispoof quick for { lo0 $int_if } добавить внешние ифейсы то тоже не пускает, про антиспуф я еще могу понять, но чем мешает отключение проверки на петле ??? или это как то связано с round-robin...

ikarus
рядовой
Сообщения: 36
Зарегистрирован: 2010-11-19 6:56:39
Контактная информация:

Re: Подскажите что это значит

Непрочитанное сообщение ikarus » 2010-12-09 14:15:27

че то крыша едет уже

Код: Выделить всё

# tcpdump -n -t -i lo0 host yyy.yyy.yyy.yyy
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo0, link-type NULL (BSD loopback), capture size 96 bytes
IP xxx.xxx.xxx.xxx.5522 > yyy.yyy.yyy.yyy.59223: S 2753495783:2753495783(0) ack 2686722610 win 65535 <mss 1460,sackOK,eol>
IP yyy.yyy.yyy.yyy.59223 > xxx.xxx.xxx.xxx.5522: R 2686722610:2686722610(0) win 0
откуда на петле адреса отличные от 127.0.0.1 ?

Gloft
лейтенант
Сообщения: 645
Зарегистрирован: 2008-03-09 11:32:12
Откуда: Москва

Re: Подскажите что это значит

Непрочитанное сообщение Gloft » 2010-12-09 14:20:39

Оттудаже откуда на интерфейсе например 10.7.50.1 может взяться адрес 192.168.45.5.

ikarus
рядовой
Сообщения: 36
Зарегистрирован: 2010-11-19 6:56:39
Контактная информация:

Re: Подскажите что это значит

Непрочитанное сообщение ikarus » 2010-12-09 14:40:10

все, ступор...
если есть опция set skip on lo0 , т.е. указание не обращать внимание на процессы на этом интерфейсе, так? то какого, я извиняюсь, хр3на это указание может мешать?? :cz2:

Gloft
лейтенант
Сообщения: 645
Зарегистрирован: 2008-03-09 11:32:12
Откуда: Москва

Re: Подскажите что это значит

Непрочитанное сообщение Gloft » 2010-12-09 15:03:07

Я с pf-ом не знаком. Надо читать маны.
Вот тема, там обсуждают pf и set skip - http://www.bsdportal.ru/viewtopic.php?p=142930.
В целом там есть одна здравая мысль, цитирую: "ты не "не ограничиваешь", ты пропускаешь мимо фильтрации. Вообще. Что непонятно для меня. "Разрешить доступ на сервер" и "пусть мимо фильтра" это две разные вещи."

Попробуй заменить правило на lo0, так чтобы разрешить все для сех, но не средствами set skip, возможно будет выглядить как то так:
pass in quick log on $if_lo0 proto tcp from any to any
Т.к. синтаксисом pf-а не знаком, так что отредактируй как надо.

ikarus
рядовой
Сообщения: 36
Зарегистрирован: 2010-11-19 6:56:39
Контактная информация:

Re: Подскажите что это значит

Непрочитанное сообщение ikarus » 2010-12-09 16:57:47

ВСЕ, нашел косяк! и set skip тут не причем, хотя может он как то и участвует, но под вечер котел не варит уже, короче ифейса то у меня внешних два но шлюз по-умолчанию то один, дэк вот короче если этот шлюз не шлюз того прова через которого я пытаюсь получить доступ по ssh то я и получаю атлуп, и что это значит? что pf не роутит обратные ответы на те каналы с которых пришел запрос? а кидает их тупо в дефаултроутер? кстати доступ к фтпешнику тоже открылся..... ох уж мне эти извечные грабли с дефаултроутером...

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: Подскажите что это значит

Непрочитанное сообщение FreeBSP » 2010-12-09 17:53:12

ROUTETABLES=2
?
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

ikarus
рядовой
Сообщения: 36
Зарегистрирован: 2010-11-19 6:56:39
Контактная информация:

Re: Подскажите что это значит

Непрочитанное сообщение ikarus » 2010-12-09 18:18:31

FreeBSP писал(а):ROUTETABLES=2
?
обязательно попробую