kernal nat и кривые руки, видны все сервисы на vps

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

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

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

kernal nat и кривые руки, видны все сервисы на vps

Непрочитанное сообщение thefree » 2012-10-31 21:00:24

на vps стоит mpd5 и поднят pptp, настроил нат все ходит, но vps стала полностью видна с наруже, покажите где ошибся.

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

#!/bin/sh -
# Задаем параметры для быстрого набора
fwcmd="/sbin/ipfw -q"
# config
eth0="lo0"
eth1="re0" # WAN Eth
ng0="ng0"

nat="192.168.21.1/29"

# Чистим все правила
${fwcmd} -f flush

# Разрешаем обращение к lo0
${fwcmd} add 00100 pass ip from any to any via ${eth0}
${fwcmd} add 00101 deny ip from any to 127.0.0.0/8
${fwcmd} add 00102 deny ip from 127.0.0.0/8 to any

# NAT
${fwcmd} add 00200 allow ip from any to any via ${ng0}
${fwcmd} nat 1 config if ${eth1} log reset same_ports
${fwcmd} add 00210 nat 1 ip from ${nat} to any out via ${eth1}
${fwcmd} add 00211 nat 1 ip from any to me in via ${eth1}

${fwcmd} add 00500 check-state
# Запрещаем фрагментированные пакеты
${fwcmd} add 00501 deny all from any to any frag
# Разрешаем все установленные соединения
${fwcmd} add 00502 allow tcp from any to any established
# Открываемся что бы нас могли все пингавать и мы всех
${fwcmd} add 00503 allow icmp from any to any via ${eth1}

# Включаем режим GOD для root
${fwcmd} add 00600 allow tcp from me to any out via ${eth1} setup keep-state uid root
${fwcmd} add 00601 allow udp from me to any out via ${eth1} keep-state uid root

# Открываю dns,ntp в обе стороны
${fwcmd} add 00700 allow ip from any to any 53 via ${eth1}
${fwcmd} add 00701 allow ip from any 53 to any via ${eth1}

# open port for web
${fwcmd} -f table 1 flush
${fwcmd} add 00800 deny tcp from 'table(1)' to me 80 in via ${eth1} 
${fwcmd} add 00801 allow tcp from any to me 80 in via ${eth1}

# open port for znc
${fwcmd} add 00900 allow tcp from me to any 6667 out via ${eth1} setup keep-state uid nobody
${fwcmd} -f table 2 flush
${fwcmd} add 00901 deny tcp from 'table(2)' to me 8081 in via ${eth1}
${fwcmd} add 00902 allow tcp from any to me 8081 in via ${eth1}

# open port for mysql
${fwcmd} -f table 3 flush
${fwcmd} add 01000 deny tcp from 'table(3)' to me 3306 in via ${eth1}
${fwcmd} add 01001 allow tcp from any to me 3306 in via ${eth1}

# Открываем pptp к нам
${fwcmd} -f table 4 flush
${fwcmd} add 01100 deny tcp from 'table(4)' to me 1723 in via ${eth1}
${fwcmd} add 01101 allow tcp from any to me 1723 in via ${eth1}
${fwcmd} add 01102 allow gre from any to any via ${eth1}

# Открываем ssh к нам
${fwcmd} -f table 24 flush
${fwcmd} add 55100 deny tcp from 'table(24)' to me 24 in via ${eth1}

# не повязло
#${fwcmd} table 24 add 87.204.221.122
#${fwcmd} table 24 add 89.140.99.27
${fwcmd} add 55101 allow log logamount 10000 tcp from any to me 24 in via ${eth1}
и вот кусочек

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

firewall_enable="YES"
firewall_logging="YES"
firewall_nat_enable="YES"
firewall_script="/etc/ipfw.firewall"
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Хостинговая компания 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/

Аватара пользователя
Electronik
капитан
Сообщения: 1593
Зарегистрирован: 2008-11-15 17:32:56
Откуда: Минск
Контактная информация:

Re: kernal nat и кривые руки, видны все сервисы на vps

Непрочитанное сообщение Electronik » 2012-10-31 22:13:01

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

${fwcmd} add 65100 deny ip from any to any
Предскажем будущее hw по логам и дампу, снимем сглаз и порчу с рута, поможем придумать пароль(С)
Блог

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: kernal nat и кривые руки, видны все сервисы на vps

Непрочитанное сообщение thefree » 2012-11-01 6:55:11

по умолчанию 65535 правило

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

deny ip from any to any
, так что проблема не в этом, проблема в правиле

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

${fwcmd} add 00211 nat 1 ip from any to me in via ${eth1}
оно разрешает вход всех пакетов, если нат поднимать в deny_in то вход не работают. Хм, возможно надо поднимать с deny_in , но правил

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

${fwcmd} add 00211 nat 1 ip from any to me in via ${eth1}
Должно быть последним. Проверю отпишусь.
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: kernal nat и кривые руки, видны все сервисы на vps

Непрочитанное сообщение thefree » 2012-11-01 10:29:25

не помогло ): вопрос все еще актуальный.
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

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

Re: kernal nat и кривые руки, видны все сервисы на vps

Непрочитанное сообщение Gloft » 2012-11-01 11:06:26

Опиши схему включения и схему работы.

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: kernal nat и кривые руки, видны все сервисы на vps

Непрочитанное сообщение thefree » 2012-11-01 12:52:19

вроде как описывать нечего, vps на ней re0 внешний интерфейс, через него подключение к vpn, создается ng0 интерфейс, который должен натится через re0. Когда принимаю правило натить входящий трафик, остальные правила не срабатывает, то есть vps принимает весь трафик.
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

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

Re: kernal nat и кривые руки, видны все сервисы на vps

Непрочитанное сообщение Gloft » 2012-11-01 15:16:23

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

${fwcmd} add 00200 allow ip from any to any via ${ng0}
Приведи пример того что ты называешь "полностью видна с наруже".

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: kernal nat и кривые руки, видны все сервисы на vps

Непрочитанное сообщение thefree » 2012-11-01 16:59:19

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

00100   0     0 allow ip from any to any via lo0
00101   0     0 deny ip from any to 127.0.0.0/8
00102   0     0 deny ip from 127.0.0.0/8 to any
00200   0     0 allow ip from any to any via ng0
00201   0     0 nat 1 ip from 192.168.21.0/29 to any out via re0
00202  81  4299 nat 1 ip from any to me in via re0
00500   0     0 check-state
00501   0     0 deny ip from any to any frag
00502 114 19937 allow tcp from any to any established
00503   0     0 allow icmp from any to any via re0
00600   0     0 allow tcp from me to any out via re0 setup uid root keep-state
00601   1    68 allow udp from me to any out via re0 uid root keep-state
00700   0     0 allow ip from any to any dst-port 53 via re0
00701   0     0 allow ip from any 53 to any via re0
00800   0     0 deny tcp from table(1) to me dst-port 80 in via re0
00801   0     0 allow tcp from any to me dst-port 80 in via re0
00900   0     0 allow tcp from me to any dst-port 6667 out via re0 setup uid nobody keep-state
00901   0     0 deny tcp from table(2) to me dst-port 8081 in via re0
00902   0     0 allow tcp from any to me dst-port 8081 in via re0
01000   0     0 deny tcp from table(3) to me dst-port 3306 in via re0
01001   0     0 allow tcp from any to me dst-port 3306 in via re0
01100   0     0 deny tcp from table(4) to me dst-port 1723 in via re0
01101   0     0 allow tcp from any to me dst-port 1723 in via re0
01102   0     0 allow gre from any to any via re0
55100   0     0 deny tcp from table(44) to me dst-port 44 in via re0
55101   0     0 allow log logamount 10000 tcp from any to me dst-port 44 in via re0
65535 790 97766 deny ip from any to any
c 700 правила не срабатывают.
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

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

Re: kernal nat и кривые руки, видны все сервисы на vps

Непрочитанное сообщение Gloft » 2012-11-01 19:24:22

Помести правило:

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

00801   0     0 allow tcp from any to me dst-port 80 in via re0
До ната. И проверь результат.

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: kernal nat и кривые руки, видны все сервисы на vps

Непрочитанное сообщение thefree » 2012-11-01 20:04:23

и смысл? все будет видно после правила

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

00202  81  4299 nat 1 ip from any to me in via re0
, описывать каждый сервис? если ставить после правили

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

00502 114 19937 allow tcp from any to any established
то не натится т.к. established
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: kernal nat и кривые руки, видны все сервисы на vps

Непрочитанное сообщение thefree » 2012-11-01 20:12:01

хех, вот статья http://asy.org.ua/nastrojka-kernel-ipfw-nat/ у andy (19.08.2012 в 07:37) его/мои грабли ):
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
Shuba
ст. сержант
Сообщения: 365
Зарегистрирован: 2008-03-25 10:58:21
Откуда: Минск
Контактная информация:

Re: kernal nat и кривые руки, видны все сервисы на vps

Непрочитанное сообщение Shuba » 2012-11-02 11:55:06

У тебя 200-ое правило пропускает всё и вся снаружи. Кончено тогда все сервисы будут видны из инета. Вообщем для более подробного разбора стучи ко мне в личку в джаббере
Сила ночи, сила дня - одинакова фигня!

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

Re: kernal nat и кривые руки, видны все сервисы на vps

Непрочитанное сообщение Gloft » 2012-11-02 11:59:50

На 200 правиле разрешают все всем только на интерфейсе ng0 (виртуальный).
Кроме этого обрати внимание, что на нем нет ни одного срабатывания пакетов.

Аватара пользователя
Shuba
ст. сержант
Сообщения: 365
Зарегистрирован: 2008-03-25 10:58:21
Откуда: Минск
Контактная информация:

Re: kernal nat и кривые руки, видны все сервисы на vps

Непрочитанное сообщение Shuba » 2012-11-02 13:29:06

Gloft писал(а):На 200 правиле разрешают все всем только на интерфейсе ng0 (виртуальный).
Кроме этого обрати внимание, что на нем нет ни одного срабатывания пакетов.
Из листинга сработавших правил видно, что запустили фаер пару сек назад, т.к. там вообще практически все правила по нулям. А насколько я понял ng0 и есть внешний интерфейс, ну а так как на нём всё открыто и правил запрещающих перед ним нету - то и видны все сервисы снаружи.
Сила ночи, сила дня - одинакова фигня!

терминус
проходил мимо

Re: kernal nat и кривые руки, видны все сервисы на vps

Непрочитанное сообщение терминус » 2012-11-02 15:04:11

поставить в настройках ната параметр deny_in никак что ли нельзя?

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: kernal nat и кривые руки, видны все сервисы на vps

Непрочитанное сообщение thefree » 2012-11-04 8:13:22

2терминус, читайте тему, deny_in уже обсуждал.
2Shuba, ng0 - pptp, re0 - wan eth

00202 - пропускает все
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
Shuba
ст. сержант
Сообщения: 365
Зарегистрирован: 2008-03-25 10:58:21
Откуда: Минск
Контактная информация:

Re: kernal nat и кривые руки, видны все сервисы на vps

Непрочитанное сообщение Shuba » 2012-11-05 13:20:53

Вообщем я бы сделал так:

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

#!/bin/sh -
# Задаем параметры для быстрого набора
fwcmd="/sbin/ipfw -q"
# config
eth0="lo0"
eth1="re0" # WAN Eth
ng0="ng0"

nat="192.168.21.1/29"

# Чистим все правила
${fwcmd} -f flush

# Запрещаем фрагментированные пакеты
${fwcmd} add 00010 deny all from any to any frag


# Разрешаем обращение к lo0
${fwcmd} add 00100 pass ip from any to any via lo
${fwcmd} add 00200 deny ip from any to 127.0.0.0/8
${fwcmd} add 00300 deny ip from 127.0.0.0/8 to any

${fwcmd} add 00400 check-state

# Разрешаем нужные сервисы снаружи
# Открываю dns в обе стороны
${fwcmd} add 00500 allow udp from any to me any 53 via ${eth1} keep-state
${fwcmd} add 00600 allow udp from any 53 to any via ${eth1} keep-state

# open port for web
${fwcmd} -f table 1 flush
${fwcmd} add 00700 deny tcp from 'table(1)' to me 80 in via ${eth1} 
${fwcmd} add 00800 allow tcp from any to me 80 in via ${eth1} keep-state

# open port for znc
${fwcmd} add 00900 allow tcp from me to any 6667 out via ${eth1} setup keep-state uid nobody
${fwcmd} -f table 2 flush
${fwcmd} add 01000 deny tcp from 'table(2)' to me 8081 in via ${eth1} keep-state
${fwcmd} add 01100 allow tcp from any to me 8081 in via ${eth1} keep-state

# open port for mysql
${fwcmd} -f table 3 flush
${fwcmd} add 01200 deny tcp from 'table(3)' to me 3306 in via ${eth1}
${fwcmd} add 01300 allow tcp from any to me 3306 in via ${eth1} keep-state

# Открываем pptp к нам
${fwcmd} -f table 4 flush
${fwcmd} add 01400 deny tcp from 'table(4)' to me 1723 in via ${eth1}
${fwcmd} add 01500 allow tcp from any to me 1723 in via ${eth1} keep-state
${fwcmd} add 01600 allow gre from any to any via ${eth1}

# Открываем ssh к нам
${fwcmd} -f table 24 flush
${fwcmd} add 01700 deny tcp from 'table(24)' to me 24 in via ${eth1}
${fwcmd} add 01800 allow log logamount 10000 tcp from any to me 24 in via ${eth1} keep-state

# Открываемся что бы нас могли все пингавать и мы всех
${fwcmd} add 01900 allow icmp from any to any via ${eth1}

# Включаем режим GOD для root
${fwcmd} add 02000 allow tcp from me to any out via ${eth1} setup keep-state uid root
${fwcmd} add 02100 allow udp from me to any out via ${eth1} keep-state uid root

# NAT
${fwcmd} add 02200 allow ip from any to any via ${ng0}
${fwcmd} nat 1 config if ${eth1} log reset same_ports deny_in
${fwcmd} add 02300 nat 1 ip from ${nat} to any out via ${eth1}
${fwcmd} add 02400 nat 1 ip from any to me in via ${eth1}

# не повязло
#${fwcmd} table 24 add 87.204.221.122
#${fwcmd} table 24 add 89.140.99.27

${fwcmd} add 65535 deny ip from any to any
Пробуй конфиг
Сила ночи, сила дня - одинакова фигня!

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: kernal nat и кривые руки, видны все сервисы на vps

Непрочитанное сообщение thefree » 2012-11-07 21:57:24

да сам, дошел до такого конфига но пока возможности нет поиграть с настройками. проверю отпишу.
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: kernal nat и кривые руки, видны все сервисы на vps

Непрочитанное сообщение thefree » 2013-06-19 11:15:14

как обещал выкидываю конфиг, нат работает.

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

#!/bin/sh -
# Задаем параметры для быстрого набора
fwcmd="/sbin/ipfw -q"
# config
eth0="lo0"
eth1="re0"
nat="ng*"

# Чистим все правила
${fwcmd} -f flush

# Разрешаем обращение к lo0
${fwcmd} add 00100 pass ip from any to any via ${eth0}
${fwcmd} add 00101 deny ip from any to 127.0.0.0/8
${fwcmd} add 00102 deny ip from 127.0.0.0/8 to any

${fwcmd} add 00500 check-state
# Запрещаем фрагментированные пакеты
${fwcmd} add 00500 deny all from any to any frag
# Открываемся что бы нас могли все пингавать и мы всех
${fwcmd} add 00503 allow icmp from any to any via ${eth1}

# Включаем режим GOD для root
${fwcmd} add 00600 allow tcp from me to any out via ${eth1} setup keep-state uid root
${fwcmd} add 00601 allow udp from me to any out via ${eth1} keep-state uid root

# Открываю dns в обе стороны
${fwcmd} add 00700 allow tcp from any to me 53 in via ${eth1} setup keep-state
${fwcmd} add 00701 allow udp from any to me 53 in via ${eth1} keep-state
${fwcmd} add 00702 allow udp from me 53 to any out via ${eth1} keep-state

# open port for web
${fwcmd} -f table 1 flush
${fwcmd} add 00800 deny tcp from 'table(1)' to me 80 in via ${eth1}
${fwcmd} add 00801 allow tcp from any to me 80 in via ${eth1} setup keep-state

# open port for znc
${fwcmd} add 00900 allow tcp from me to any 6667-7000 out via ${eth1} setup keep-state uid nobody
${fwcmd} -f table 2 flush
${fwcmd} add 00901 deny tcp from 'table(2)' to me 8081 in via ${eth1}
${fwcmd} add 00902 allow tcp from any to me 8081 in via ${eth1} setup keep-state

# open port for mysql
#${fwcmd} -f table 3 flush
#${fwcmd} add 01000 deny tcp from 'table(3)' to me 3306 in via ${eth1}
#${fwcmd} add 01001 allow tcp from any to me 3306 in via ${eth1} setup keep-state

# pptp and gre
${fwcmd} -f table 4 flush
${fwcmd} add 01100 deny tcp from 'table(4)' to me 1723 in via ${eth1}
${fwcmd} add 01101 allow tcp from any to me 1723 in via ${eth1} setup keep-state
${fwcmd} add 01102 allow gre from any to me in via ${eth1} keep-state

# Открываем ssh к нам
${fwcmd} -f table 10 flush
${fwcmd} add 64000 deny tcp from 'table(44)' to me 44 in via ${eth1}
${fwcmd} add 64001 allow log logamount 10000 tcp from any to me 44 in via ${eth1} setup keep-state

${fwcmd} nat 1 config log if ${eth1} reset same_ports deny_in
${fwcmd} add 65000 nat 1 ip from any to any via ${eth1}
${fwcmd} add 65001 allow ip from any to any via ${nat}
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету