The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Доступ к ssh из инета"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Др. сетевые сервисы / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Доступ к ssh из инета"  +/
Сообщение от ikarus (ok) on 09-Дек-10, 10:56 
freebsd7.3+pf
задача: расшарить доступ к ssh из инета

sshd_config:

    Port 5522
    Protocol 2
    PermitRootLogin no
    PermitEmptyPasswords no
    AllowUsers den

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


из локалки подключаюсь без проблем, из инета путя долго думает и сообщает что коннект рефуз

tcpdump показывает только это:

# 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>

с сертификатами может быть проблема?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Доступ к ssh из инета"  +/
Сообщение от reader (ok) on 09-Дек-10, 12:55 
а с почтой и ftp из инета при этом работает?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Доступ к ssh из инета"  +/
Сообщение от ikarus (ok) on 09-Дек-10, 13:28 
> а с почтой и ftp из инета при этом работает?

почта работает прекрасно, а ftp тоже не работает

з.ы. если закоментарить set skip on lo0 то по ssh пускает :/ только при этом начинаются проблемы при доступе к инету из локалки, это может связанно с round-robin на внешних ифейсах?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Доступ к ssh из инета"  +/
Сообщение от reader (ok) on 09-Дек-10, 14:01 
> это может связанно с round-robin на внешних ифейсах?

попробуйте это делать только на внутреннем интерфейсе, хотя там и так ограничение только для локальных адресов, а на внешнем их уже не должно быть, nat то должен был отработать

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Доступ к ssh из инета"  +/
Сообщение от ikarus (ok) on 09-Дек-10, 14:42 
не могу никак понять каким образом set skip on lo0 может мешать доступу, да и вообще как оно может мешать.... пошел за пивом

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Доступ к ssh из инета"  +/
Сообщение от ikarus (ok) on 09-Дек-10, 17:05 
ВСЕ, нашел косяк! и set skip тут не причем, хотя может он как то и участвует, но под вечер котел не варит уже, короче ифейса то у меня внешних два но шлюз по-умолчанию то один, дэк вот короче если этот шлюз не шлюз того прова через которого я пытаюсь получить доступ по ssh то я и получаю атлуп, и что это значит? что pf не роутит обратные ответы на те каналы с которых пришел запрос? а кидает их тупо в дефаултроутер? кстати доступ к фтпешнику тоже открылся..... ох уж мне эти извечные грабли с дефаултроутером...
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Доступ к ssh из инета"  +/
Сообщение от reader (ok) on 09-Дек-10, 18:54 
> ВСЕ, нашел косяк! и set skip тут не причем, хотя может он
> как то и участвует, но под вечер котел не варит уже,
> короче ифейса то у меня внешних два но шлюз по-умолчанию то
> один, дэк вот короче если этот шлюз не шлюз того прова
> через которого я пытаюсь получить доступ по ssh то я и
> получаю атлуп, и что это значит? что pf не роутит обратные
> ответы на те каналы с которых пришел запрос? а кидает их
> тупо в дефаултроутер? кстати доступ к фтпешнику тоже открылся..... ох уж
> мне эти извечные грабли с дефаултроутером...

reply-to
http://www.openbsd.ru/files/etc/pf-dual.conf

а как тогда почта работала, та вить тоже $ext_if2

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Доступ к ssh из инета"  +/
Сообщение от ikarus (ok) on 10-Дек-10, 06:29 
>[оверквотинг удален]
>> короче ифейса то у меня внешних два но шлюз по-умолчанию то
>> один, дэк вот короче если этот шлюз не шлюз того прова
>> через которого я пытаюсь получить доступ по ssh то я и
>> получаю атлуп, и что это значит? что pf не роутит обратные
>> ответы на те каналы с которых пришел запрос? а кидает их
>> тупо в дефаултроутер? кстати доступ к фтпешнику тоже открылся..... ох уж
>> мне эти извечные грабли с дефаултроутером...
> reply-to
> http://www.openbsd.ru/files/etc/pf-dual.conf
> а как тогда почта работала, та вить тоже $ext_if2

дэк и шлюз по-умолчанию от туда же, тут еще дело осложнялось тем что я некорректно делал проверку, инета на работе кроме как через этот роутер больше взять было неоткуда, а вытаскивать одного прова отсюда и втыкать куда нибудь еще не стал, а просто добавил правило в pf чтобы все пакеты от моего компа роутились в $ext_if1, а к ssh я обращался на $ext_if2, вот тут видимо и была некорректность т.к. пакеты шли не через шлюз первого прова как я надеялся, а через петлю. вообщем пришел домой и все выяснил :)

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Доступ к ssh из инета"  +/
Сообщение от reader (ok) on 10-Дек-10, 12:46 
> дэк и шлюз по-умолчанию от туда же, тут еще дело осложнялось тем
> что я некорректно делал проверку, инета на работе кроме как через
> этот роутер больше взять было неоткуда, а вытаскивать одного прова отсюда
> и втыкать куда нибудь еще не стал, а просто добавил правило
> в pf чтобы все пакеты от моего компа роутились в $ext_if1,
> а к ssh я обращался на $ext_if2, вот тут видимо и
> была некорректность т.к. пакеты шли не через шлюз первого прова как
> я надеялся, а через петлю. вообщем пришел домой и все выяснил
> :)

если вы проверяли из локалки, обращаясь на внешний ip, то пакеты вообще не должны были проходить через внешние интерфейсы. пакет проходил через внутренний интерфейс, попадал в ядро и там определялось, что пакет уже на нужной машине и на внешний интерфейс не отправлялся. соответственно правила где были указаны в условиях внешние интерфейсы срабатывать не должны были.
По моему так.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру