Страница 1 из 2

Настройка шлюза

Добавлено: 2014-07-21 9:40:32
Reken
Здравствуйте.
Помогите мне пожалуйста разобраться в следующей проблеме:
Описание проблемы:
У меня такая система. Интернет -> Шлюз (на FreeBSD) -> Комп
Я захотел сделать шлюз на FreeBSD. И для начала решил сделать, что бы, хотя бы, ИНЕТ проходил через шлюз в комп. На шлюзе как вы уже поняли две сетевые карты.
Вот настройки шлюза:
Я пересобрал ядро (как выяснилось зря, можно было просто модули подгрузить). В ядро я добавил следующие опции:

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

        options         IPFIREWALL                   # собственно файрволл
        options         IPFIREWALL_VERBOSE           # логгинг пакетов, если в правиле написано log
        options         IPFIREWALL_VERBOSE_LIMIT=100 # ограничение логов (повторяющихся)
        options         IPFIREWALL_DEFAULT_TO_ACCEPT # дефолтное правило - разрешающее
        options         IPDIVERT                     # необходимо для NAT
        options         IPFIREWALL_FORWARD           # перенаправление пакетов
        options         DUMMYNET                     # ограничение скорости


Далее внес изменения в файл /etc/namedb/named.conf

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

listen-on { 127.0.0.1; 192.168.0.17; };
forwarders { 127.0.0.1; 192.168.99.5; };
Внес следующие строки в /etc/rc.conf

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

gateway_enable="YES"
natd_enable="YES"
natd_interface="sis0"
ifconfig_sis0="inet 192.168.99.37 netmask 255.255.255.0" (эта сетевуха смотрит не напрямую в ИНЕТ, а через СВИТЧ, который получает ИНЕТ от "ГЛАВНОГО" шлюза. Поэтому такой IP у сетевухи sis0)
ifconfig_rl0="inet 192.168.0.17 netmask 255.255.255.0"
defaultrouter="192.168.99.4"
ntpd_enable="YES"
named_enable="YES"
firewall_enable="YES"
firewall_type="open"
И вот такие настройки в файле /etc/resolv.conf

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

nameserver 127.0.0.1
nameserver 8.8.8.8
И теперь напишу про саму проблему. Подключаю ко второй сетевухе FreeBSD комп. На компе указываю:
IP = 192.168.0.6
В качестве шлюза и DNS указываю 192.168.0.17
Комп не может выйти в ИНЕТ, но при пинге ya.ru он преобразовывает ya.ru в 213.180.204.3. Следовательно отсюда, проблема в DNS на FreeBSD.
Помогите пожалуйста разобраться

Re: Настройка шлюза

Добавлено: 2014-07-21 12:51:49
wien
У вас в /etc/rc.conf не увидел строчки типа такой:

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

firewall_script="/etc/rc.firewall"
Чтобы все работало нужно настроить фаервол, выкладывайте свой скрипт сюда. Будем смотреть. А вообще лучше отказаться от natd и использовать ipfw nat, уже встроенный в фаервол, работает гораздо шустрее и создает меньше проблем(у меня были проблемы при входе на интерфейс где висел натд по протоколу фтп).

Re: Настройка шлюза

Добавлено: 2014-07-21 13:02:41
snorlov
Приведите вывод

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

ipfw -a list
В named.conf убрать в строке forwarders локалхост,
Ну и последнее, может быть главное на самой фре инет есть или нет...

Re: Настройка шлюза

Добавлено: 2014-07-21 13:35:38
Reken
wien писал(а):А вообще лучше отказаться от natd и использовать ipfw nat, уже встроенный в фаервол, работает гораздо шустрее и создает меньше проблем
И как это сделать? Убрать строчки natd из rc.conf? И прописать firewall_script="/etc/rc.firewall"
А в rc.firewall указать нужные настройки?
wien писал(а):выкладывайте свой скрипт сюда
Я так понимаю, под скриптом подразумевается содержимое firewall.conf?

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

add 4000 divert natd ip from any to any via sis0
add 65500 allow ip from any to any
snorlov писал(а):Приведите вывод

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

00050 299 33575 divert 8668 ip4 from any to any via rl0
00100 12 1656 allow ip from any to any via lo0
00200 0 0 deny ip from any to 127.0.0.0/8
00300 0 0 deny ip from 127.0.0.0/8 to any
65000 1044 102087 allow ip from any to any
65535 0 0 allow ip from any to any
snorlov писал(а):убрать в строке forwarders локалхост
Результат: Теперь когда на компе, загружается страничка google, в IE где показывается ход загрузки странички, пишется ip гугла. (раньше и этого не было). Но в ИНЕТ всё равно не выходит.
snorlov писал(а):на самой фре инет есть или нет...
Конечно же есть...

Re: Настройка шлюза

Добавлено: 2014-07-21 13:48:09
snorlov
У вас нат применяется в виде отдельного демона и он не сконфигурирован, его конфигурационный файл /etc/natd.conf.
Честно говоря, я не люблю его, на мой взгляд проще и лучше пользоваться ядерным натом.
В вашем случае, я бы использовал бы ядро generic и все остальное подгрузил бы модулями... Ну и читайте маны, они рулез...

Re: Настройка шлюза

Добавлено: 2014-07-21 14:01:39
Reken
snorlov писал(а):Ну и читайте маны, они рулез...
Это и делаю.

А в данной ситуации, которая у меня сейчас на FreeBSD, как можно помочь?

Re: Настройка шлюза

Добавлено: 2014-07-21 14:12:06
snorlov
Reken писал(а):
snorlov писал(а):Ну и читайте маны, они рулез...
Это и делаю.
А в данной ситуации, которая у меня сейчас на FreeBSD, как можно помочь?
man natd.conf
В случае же generic то rc.conf

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

gateway_enable="YES"
#natd_enable="YES"
#natd_interface="sis0"
ifconfig_sis0="inet 192.168.99.37 netmask 255.255.255.0" (эта сетевуха смотрит не напрямую в ИНЕТ, а через СВИТЧ, который получает ИНЕТ от "ГЛАВНОГО" шлюза. Поэтому такой IP у сетевухи sis0)
ifconfig_rl0="inet 192.168.0.17 netmask 255.255.255.0"
defaultrouter="192.168.99.4"
ntpd_enable="YES"
named_enable="YES"
firewall_enable="YES"
firewall_nat_enable="YES"
firewall_nat_interface="sis0"
firewall_type="open"

Re: Настройка шлюза

Добавлено: 2014-07-21 14:22:42
wien
Приведи /etc/rc.firewall к такому виду(минимальный вариант):

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

FwCMD="/sbin/ipfw -q"   # путь к ipfw
LanOut="sis0"                 # твой внешний интерфейс

# Сбрасываем все правила:
${FwCMD} -f -q flush

# NAT
${FwCMD} nat 1 config log if ${LanOut} same_ports
${FwCMD} add nat 1 ip from any to any out via ${LanOut}
И не забудьте забэкапить текущий конфиг

Re: Настройка шлюза

Добавлено: 2014-07-22 10:45:26
Reken
Спасибо за советы, но пока что ничего не помогло.
Я вот думаю, может у меня что то с named?
Я пытаюсь его перезапустить, и вот что получается:

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

# /etc/rc.d/named restart
/etc/rc.conf.local: sshd_enable: not found
Stopping named.
Stopping named.
Что это может быть?

Re: Настройка шлюза

Добавлено: 2014-07-22 11:01:08
snorlov
Версию ос огласите пожалуйста

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

uname -a

Re: Настройка шлюза

Добавлено: 2014-07-22 11:03:14
Reken
snorlov писал(а):Версию ос огласите пожалуйста

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

uname -a
9.2-RELEASE FreeBSD

Re: Настройка шлюза

Добавлено: 2014-07-22 11:29:41
snorlov
Reken писал(а):Спасибо за советы, но пока что ничего не помогло.
Я вот думаю, может у меня что то с named?
Я пытаюсь его перезапустить, и вот что получается:

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

# /etc/rc.d/named restart
/etc/rc.conf.local: sshd_enable: not found
Stopping named.
Stopping named.
Что это может быть?
Не знаю, что это могло быть. Но у вас проблема не в DNS, иначе не работало бы преобразование dns-имен в ip. Проблема либо в файере либо в нат, в первом случае не пускает пакеты в нат или грохает возвращенные пакеты, во втором просто не настроен...

Re: Настройка шлюза

Добавлено: 2014-07-22 12:22:33
wien
Покажи

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

ipfw show

Re: Настройка шлюза

Добавлено: 2014-07-22 13:05:17
Reken
Я начинаю понимать в чем проблема.
Как я уже говорил выше, моя FreeBSD получает интернет, от "главного" шлюза. На котором тоже FreeBSD. Так вот, "главный" шлюз, наверное и не пропускает комп в интернет, так как, на главном шлюзе используется прокси. Что бы вся эта система заработала, попробую установить на вторую FreeBSD (не главную) прокси squid, в которой будет пересылаться всё, на основной прокси, главного шлюза.
Как то так.

Попробую перейти на встроенный в файрвол НАТ.
Всем спасибо за помощь.

Re: Настройка шлюза

Добавлено: 2014-07-22 15:27:36
snorlov
Вы в браузере выставьте параметры прокси, может и жизнь наладится...

Re: Настройка шлюза

Добавлено: 2014-07-23 8:10:01
Reken
Никак не могу справиться, товарищи командиры. Может кто сможет подсказать.
Уже сделал так:
Содержимое /etc/rc.conf

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

hostname="root"
keymap="ru.koi8-r.kbd"
gateway_enable="YES"
ifconfig_sis0="inet 192.168.99.37 netmask 255.255.255.0"  # Сетевуха смотрит в ГЛАВНЫЙ шлюз
ifconfig_rl0="inet 192.168.0.17 netmask 255.255.255.0"  # Сетевуха смотрит в сетку
defaultrouter="192.168.99.4"
sshd_enable="YES"
ntpd_enable="YES"
named_enable="YES"
squid_enable="YES"
firewall_enable="YES"
firewall_type="open"
firewall_script="/etc/fire.conf"
Содержимое /etc/fire.conf

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

FwCMD="/sbin/ipfw -q"   
LanOut="sis0"                

${FwCMD} -f -q flush

# NAT
${FwCMD} nat 1 config log if ${LanOut} same_ports
${FwCMD} add nat 1 ip from any to any out via ${LanOut}
Строки из /etc/namedb/named.conf

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

listen-on {127.0.0.1; 192.168.0.17;};
forwarders {127.0.0.1; 192.168.99.5;};
содержимое /etc/resolv.conf

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

nameserver 192.168.99.5
nameserver 127.0.0.1
nameserver 8.8.8.8
содержимое /usr/local/etc/squid/squid.conf

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

WELCOME TO SQUID 2.7.STABLE9

http_port 192.168.0.17:3128

acl allowed_hosts src 192.168.0.0/255.255.255.0
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563 
http_access allow allowed_hosts localhost SSL_ports
http_access deny all 

cache_peer 192.168.99.4:3128
cache_mem 512000 
cache_dir ufs /usr/local/squid/cache 10240 16 256 

cache_access_log  /usr/local/squid/logs/access.log 
cache_log /usr/local/squid/logs/cache.log
cache_store_log /usr/local/squid/logs/store.log 
Вывод команды uname -a

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

FreeBSD root 9.2-RELEASE FreeBSD 9.2-RELEASE #0: Thu Jul 17 16:31:32 MSK 2014
root@root:/usr/src/sys/i386/compile/GATEWAY i386
Прокси сервер squid я запустил:

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

# squid -z
Запускаем скрипт
# squid -D
На компе, который подключен к этому шлюзу (настройки которого я привел выше). Выставил настройки:
IP 192.168.0.6
ШЛЮЗ 192.168.0.17
DNS 192.168.0.17

Использовать ПРОКСИ (192.168.0.17 порт 3128)
Результат на компе:

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

Делаю ПИНГ ya.ru, комп даже не может преобразовать ya.ru в ip адрес
Ну и соответственно, не может выйти в ИНЕТ
P.S. Написал полностью всё, так как уже не знаю как бороться с этим FreeBSD. Может вы мне поможете.

Re: Настройка шлюза

Добавлено: 2014-07-23 8:21:41
Reken
Команда # squid -D выдает:

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

Jul 23 09:33:40 root squid[1288]: Bungled squid.conf line 11: cache_peer 192.168.99.4:3128
FATAL: Bungled squid.conf line 11: cache_peer 192.168.99.4:3128
Squid Cache (Version 2.7.STABLE9): Terminated abnormally
То есть, скрипт не запустился. А почему интересно, он ругается на прокси провайдера (я указал ГЛАВНЫЙ шлюз)

Re: Настройка шлюза

Добавлено: 2014-07-23 12:30:40
wien
Сделай по шаблону

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

# TAG: cache_peer
# To specify other caches in a hierarchy, use the format:
#
# cache_peer hostname type http_port icp_port
#
# For example,
#
# # proxy icp
# # hostname type port port options
# # -------------------- -------- ----- ----- -----------
# cache_peer parent.foo.net parent 3128 3130 [proxy-only]
# cache_peer sib1.foo.net sibling 3128 3130 [proxy-only]
# cache_peer sib2.foo.net sibling 3128 3130 [proxy-only] 
пруф. см. squid.conf

Re: Настройка шлюза

Добавлено: 2014-07-23 12:56:55
snorlov
Reken, squid то вам зачем... В броузере пользовательского компа прописали бы параметры основного проксика, и было бы вам счастье, нат же у вас прозрачный...

Re: Настройка шлюза

Добавлено: 2014-07-23 13:31:50
Reken
snorlov писал(а): squid то вам зачем
Хочу научиться пользоваться squid и настраивать его. Я хочу собрать шлюз.
wien писал(а):Сделай по шаблону
Не совсем понял. Что сделать по шаблону?

Re: Настройка шлюза

Добавлено: 2014-07-23 15:50:42
guest
Reken писал(а):
snorlov писал(а): squid то вам зачем
Хочу научиться пользоваться squid и настраивать его. Я хочу собрать шлюз.
wien писал(а):Сделай по шаблону
Не совсем понял. Что сделать по шаблону?
скажите, у Вас присутствуют знания о сетях, их классах, масках, разбиение на подсети?
тоже самое и о маршрутизации?

Re: Настройка шлюза

Добавлено: 2014-07-23 15:53:32
alex3
Хочу научиться пользоваться squid и настраивать его.
например тут.
Я хочу собрать шлюз.
уже собрали.
и вообще, пользуйтесь законами Мерфи:
Если ничего не помогает - прочтите, наконец, документацию
;-)

Re: Настройка шлюза

Добавлено: 2014-07-23 15:54:35
Reken
guest писал(а):скажите, у Вас присутствуют знания о сетях, их классах, масках, разбиение на подсети?
тоже самое и о маршрутизации?
Знания присутствуют, но я не "ПРОФИ" этого дела.

Re: Настройка шлюза

Добавлено: 2014-07-23 17:31:19
snorlov
Даже профи сначала настраивают основу и лишь затем остальное, пусть ваш шлюз заработает без сквида и лишь за тем...

Re: Настройка шлюза

Добавлено: 2014-07-23 17:41:46
Reken
Вы бы лучше, по вопросу этой темы подсказали.