Помогите пожалуста !
Стоит FreeBSD 6.0 , ssh и pf.Не могу соедениться с ssh с внешнего ip- не выводится окно ввода пароля, если пробую по телнету - черный экран, хотя должен писать систему, из внутренней сети всё соединяется.
Причём на другом серваке такая же конфигурация - всё ок.Вот sshd_config
Port 777
Protocol 2
Protocol 2
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::# 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 768# Logging
# obsoletes QuietMode and FascistLogging
SyslogFacility AUTH
#LogLevel INFO
LogLevel DEBUG# Authentication:
LoginGraceTime 2m
PermitRootLogin no
StrictModes yes#MaxAuthTries 6
#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 yes
#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 mechanism.
# Depending on your PAM configuration, this may bypass the setting of
# PasswordAuthentication, PermitEmptyPasswords, and
# "PermitRootLogin without-password". If you just want the PAM account and
# session checks to run without PAM authentication, then enable this but set
# ChallengeResponseAuthentication=no
#UsePAM yes#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin yes
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS yes
PidFile /var/run/sshd.pid
MaxStartups 10# no default banner path
#Banner /some/path# override default of no subsystems
Subsystem sftp /usr/libexec/sftp-serverЧто может быть не так :?
текст pf.conf не высылаю - там всё рабочее- ставил pass all - не помогало Ж)
Гм, попробовал повесть apache - то же - не соединиться с внешнего адреса, с внутреннего всё ок, видимо проблема не в ssh, а в настройках сети, только пока непонятно что именно :(
а ещё при перезагрузке скриптов выдаёт
-q=-q : not found FreeBSD
и всё перезагружается нормальнов логах всё чисто, бред какойто :(
>а ещё при перезагрузке скриптов выдаёт
>-q=-q : not found FreeBSD
>и всё перезагружается нормально
>
>в логах всё чисто, бред какойто :(почему бред - все прозрачно, видимо проблема в NAT
>>а ещё при перезагрузке скриптов выдаёт
>>-q=-q : not found FreeBSD
>>и всё перезагружается нормально
>>
>>в логах всё чисто, бред какойто :(
>
>почему бред - все прозрачно, видимо проблема в NATЯ снаружи конекчусь внутрь по rdp на виндовую машину, всё пробрасывает , изнутри инет отлично работат, вот настройкa pf
ext_if="ed0" # replace with actual external interface name i.e., dc0
int_if="fxp0" # replace with actual internal interface name i.e., dc1internal_net="192.168.0.0/24"
external_addr="X.X.X.X"
priv_nets = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"tcp_services="{domain,ftp,smtp,rdp,777,http}"
#tcp_allow_outgoing="{5190,777,ftp,,443,563,80,smtp,20, 21,smtp,http}"
udp_services="{domain}"
icmp_types="echoreq"servin = "192.168.0.250"
#table <disable_inet> persist file "/usr/local/etc/disable_internet"
#set timeout { icmp.first 20, icmp.error 10 }
#set timeout { other.first 60, other.single 30, other.multiple 60 }
#set timeout { adaptive.start 0, adaptive.end 0 }
#set limit { states 10000, frags 5000 }#set loginterface $ext_if
#set optimization normal
#set block-policy drop#set require-order yes
#set fingerprints "/etc/pf.os"
###############################################################################
############# BEGIN RULES ###############
############# NORMALIZACIJA ###############
###############################################################################
#1.1Vhodjashjie fragmenti nakaplivajutsja i peredajutsja daljshe filjtru
#scrub in on $ext_if all fragment reassemble min-ttl 20 max-mss 1440#1.2Ubiraet opciju don't fragment iz ip-zagalovka
#scrub in on $ext_if all no-df
#1.3 Ni odnoj iz storon ne pozvoljaetsja umenjshitj IP TTL TTL dlja vseh paketov ustanavlivaetsja v maksimum
#scrub on ed0 all reassemble tcp
#2. NATrdr on $ext_if proto tcp from any to $external_addr port rdp -> $servin
rdr on $int_if proto tcp from $internal_net to any port http -> localhost port 3128
rdr on $ext_if proto tcp from any to $external_addr port smtp -> $servin
nat on $ext_if from $internal_net to any -> ($ext_if)
#pass in on $ext_if proto tcp from any to $external_addr port > 49151 keep state
#pass in quick on $ext_if proto tcp from any to $external_addr port 20 keep state
#pass in quick on $ext_if proto tcp from any to $external_addr port 21 keep state
#3.0 Block all traffik on external interfaceblock all
#pass all### ALLOW LOCALHOST
pass on lo all# activate spoofing protection for the internal interface.
antispoof quick for $int_if inet
#3.1 PORT SCANNERS FOR OS DETECTING
#block in quick proto tcp from any to $external_addr flags SF/SFRA
#block in quick proto tcp from any to $external_addr flags SFUP/SFRAU
#block in quick proto tcp from any to $external_addr flags FPU/SFRAUP
#block in quick proto tcp from any to $external_addr flags F/SFRA
#block in quick proto tcp from any to $external_addr flags U/SFRAU
#block in quick proto tcp from any to $external_addr flags P/P#3.1 don't allow anyone to spoof non-routeble adresses
block drop in quick on $ext_if from $priv_nets to any
block drop out quick on $ext_if from any to $priv_nets# Block from not alow internet users
#block in quick on $int_if from <disable_internet> to any
# Allow all with local netpass in on $int_if from $internal_net to any keep state
pass out on $int_if from any to $internal_net keep state
#Enable incoming keep state traficpass in on $ext_if inet proto tcp from any to $ext_if port $tcp_services flags S/SA synproxy state
pass in on $ext_if proto tcp from any to $servin port rdp \
flags S/SA synproxy statepass in on $ext_if proto tcp from any to $servin port smtp \
flags S/SA synproxy state
pass in on $ext_if proto udp from any to ($ext_if) \
port $udp_servicespass in inet proto icmp all icmp-type $icmp_types keep state
# Allow to outgoing traffic to inet#pass out on $ext_if proto tcp from $ext_if to any port $tcp_allow_outgoing #proto tcp all #port $tcp_allow_ou
#tgoing modulate state flags S/SApass out on $ext_if proto tcp all keep state
pass out on $ext_if proto { udp, icmp } all keep state
В другом месте всё толже самое - и всё ок
>>>а ещё при перезагрузке скриптов выдаёт
>>>-q=-q : not found FreeBSD
>>>и всё перезагружается нормально
>>>
>>>в логах всё чисто, бред какойто :(
>>
>>почему бред - все прозрачно, видимо проблема в NAT
>
>Я снаружи конекчусь внутрь по rdp на виндовую машину, всё пробрасывает ,
>изнутри инет отлично работат, вот настройкa pf
>
>ext_if="ed0" # replace with actual external interface name i.e., dc0
>int_if="fxp0" # replace with actual internal interface name i.e., dc1
>
>internal_net="192.168.0.0/24"
>external_addr="X.X.X.X"<skipped нафик>
sorry, близко не интересно разбирать чужие firewall.
1. смотрим привязку sshd (bind to address/port)
# sockstat | grep sshd или порт
смотрите привязкудалее изнутри и извне(попросите к примеру кого):
2. пробиваем порты снаружи (можно изнутри)
# nmap -pВАШ_ПОРТ_SSH ваш_внешний_ip
Прим: если хочется изменить стандартный порт SSH, особенно для Protocol-2, лучше
выносить его выше ports-address=1024, ssh-port > 1024 для обхода FIREWALL и
отвязки от авторизации по нижним портам (rsh) < 1024типа (sshd_config):
Port 22
Port 2022
Protocol 2,1или только Protocol-2
Port 22
Port 8022
Protocol 2понятно что убрать все RSH/RHOST авторизации (это совет попутный)
3. если nmap в п.2 покажет что ssh xy/tcp open, извне пробуем
# telnet наш_внешний_ip порт
должны получить промпт-openssh (приглашение)# ssh -v наш_внешний_ip порт
Где-то такая вот простая технология, дальше можно думайть...
1) вот что sockstat выдаёт
gsitov sshd 647 3 tcp4 192.168.0.251:777 192.168.0.250:46465
gsitov sshd 647 4 stream -> ??
gsitov sshd 647 9 stream /tmp/ssh-HC85sznmBm/agent.647
root sshd 645 3 tcp4 192.168.0.251:777 192.168.0.250:46465
root sshd 645 5 stream -> ??
root sshd 475 3 tcp6 *:777 *:*
root sshd 475 4 tcp4 *:777 *:*Это я локально соединяюсь
2) вот что nmap говорит
gtw$ nmap -p 777 x.x.x.x
Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-05-04 17:23 MSD
Interesting ports on (x.x.x.x):
PORT STATE SERVICE
777/tcp open unknownNmap finished: 1 IP address (1 host up) scanned in 0.295 seconds
3) а вот что ssh
gtw$ ssh -v x.x.x.x -p 777
OpenSSH_3.8.1p1 FreeBSD-20040419, OpenSSL 0.9.7e 25 Oct 2004
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to x.x.x.x [x.x.x.x] port 777.
debug1: Connection established.
debug1: identity file /home/gsitov/.ssh/identity type -1
debug1: identity file /home/gsitov/.ssh/id_rsa type -1
debug1: identity file /home/gsitov/.ssh/id_dsa type -1на это месте дальше тишина - никокой реакции.
Пока никаких мыслей , может быть ещё что-нибудь ещё подскажете ??? :(
Нашёл в чём проблема -pass in on $ext_if inet proto tcp from any to $ext_if port $tcp_services flags S/SA synproxy state
если так стоит - то не пускает - если убрать synproxy state
то всё ок !!Но на предыдущей версии freebsd - 5.4 это правило срабатыает правильно - не подскажете - может кто знает - в новой версии pf ничего относительно этого не менялось ??
>1) вот что sockstat выдаёт
>gsitov sshd 647
> 3 tcp4 192.168.0.251:777
>192.168.0.250:46465
>gsitov sshd 647 4 stream -> ??
>gsitov sshd 647
> 9 stream /tmp/ssh-HC85sznmBm/agent.647
>root sshd
>645 3 tcp4 192.168.0.251:777
> 192.168.0.250:46465
>root sshd 645 5 stream -> ??
>root sshd
>475 3 tcp6 *:777
>
> *:*
>root sshd
>475 4 tcp4 *:777
>
> *:*
>
>Это я локально соединяюсь
>
>2) вот что nmap говорит
>
>gtw$ nmap -p 777 x.x.x.x
>
>Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-05-04 17:23 MSD
>Interesting ports on (x.x.x.x):
>PORT STATE SERVICE
>777/tcp open unknown
>
>Nmap finished: 1 IP address (1 host up) scanned in 0.295 seconds
>
>
>3) а вот что ssh
>
>gtw$ ssh -v x.x.x.x -p 777
>OpenSSH_3.8.1p1 FreeBSD-20040419, OpenSSL 0.9.7e 25 Oct 2004
>debug1: Reading configuration data /etc/ssh/ssh_config
>debug1: Connecting to x.x.x.x [x.x.x.x] port 777.
>debug1: Connection established.
>debug1: identity file /home/gsitov/.ssh/identity type -1
>debug1: identity file /home/gsitov/.ssh/id_rsa type -1
>debug1: identity file /home/gsitov/.ssh/id_dsa type -1
>
>на это месте дальше тишина - никокой реакции.
>
>Пока никаких мыслей , может быть ещё что-нибудь ещё подскажете ??? :(
>
собственно я вам всю технологию проверки расписал, ну например:дано: локальная машина unix1.jinr.ru
выполнить: поднять ssh(openssh) на удаленной машине в сети провайдера, провайдер
блокирует в acl'ах на сиськах порты <=1024на удаленной машине: alone.dubna.ru поднят openssh (sshd_config)
# 22/tcp для пользования ssh в сети провайдера
Port 22
# 2022/tcp для захода по ssh из Интернету
Port 2022
Protocol 2,1
...[unix1]/tmp > hostname
unix1.jinr.ru
[unix1]/tmp > nmap -p22 alone.dubna.ruStarting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-05-04 17:35 MSD
Note: Host seems down. If it is really up, but blocking our ping probes, try -P0
Nmap finished: 1 IP address (0 hosts up) scanned in 2.043 seconds
[unix1]/tmp >видим что порт не просто отфильтрован, а закрыт, ну можем убедиться:
[unix1]/tmp > telnet alone.dubna.ru 22
Trying 62.84.100.160...
^C
[unix1]/tmp >дело труба
смотрим на alone.dubna.ru (кусок sshd_config приведен выше)
[alone]~ > sockstat | grep sshd
root sshd 504 3 tcp6 *:2022 *:*
root sshd 504 4 tcp4 *:2022 *:*
root sshd 504 5 tcp6 *:22 *:*
root sshd 504 6 tcp4 *:22 *:*
[alone]~ >ну-у-у, tcp6 нас особенно не волнует: tcp4 *:22 и tcp4 *:2022
проверяем:[unix1]/tmp > nmap -p2022 alone.dubna.ru
Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-05-04 17:38 MSD
Interesting ports on alone.dubna.ru (62.84.100.160):
PORT STATE SERVICE
2022/tcp open downNmap finished: 1 IP address (1 host up) scanned in 0.169 seconds
[unix1]/tmp >то что дохтур прописал: STAT=open (это самое главное), уже понятно что покажет telnet,
в смысле можно не париться а сразу использовать ssh, ну ради интереса:[unix1]/tmp > telnet alone.dubna.ru 2022
Trying 62.84.100.160...
Connected to alone.dubna.ru.
Escape character is '^]'.
SSH-1.99-OpenSSH_4.2p1 FreeBSD-20050903
quit
Protocol mismatch.
Connection closed by foreign host.
[unix1]/tmp >Это самое главное - nmap показал нам что TCP не заблокирован на 2022, хотя на 22/tcp
заблокирован.Все прозрачно, что тут еще объяснять, только ТО ЧТО СНАРУЖИ нужно смотреть открытость
IP и TCP
Проблема в том что не проходят входяшие сообщения из интернетанашёл в чём загвоздка
pass in on $ext_if inet proto tcp from any to $ext_if port $tcp_services flags S/SA synproxy state
если так стоит - то не пускает - если убрать synproxy state
то всё ок !!Но на предыдущей версии freebsd - 5.4 это правило срабатыает правильно - не подскажете - может кто знает - в новой версии pf ничего относительно этого не менялось ??
>Проблема в том что не проходят входяшие сообщения из интернета
>
>нашёл в чём загвоздка
>
>pass in on $ext_if inet proto tcp from any to $ext_if port
>$tcp_services flags S/SA synproxy state
>
>если так стоит - то не пускает - если убрать synproxy state
>
>то всё ок !!
>
>Но на предыдущей версии freebsd - 5.4 это правило срабатыает правильно -
>не подскажете - может кто знает - в новой версии pf
>ничего относительно этого не менялось ??ну как и предполагалось - firewall/nat, всегда что-то меняется, изменения ищутся по
man или по спискам рассылкиSorry, я принципиально не даю советов по firewall/nat, даже если знаю ответ, лучше
не навредить...