The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Полтергейст с NAT`ом во FreeBSD"
Отправлено IPKILLER, 08-Июн-06 16:00 
Всем привет!
У меня творится какой-то полтергейст с NAT`ом. Уже вторую неделю парюсь и не пойму где грабли.
Есть сервер, на котором установлен UNIX FreeBSD 6.0. В этом сервере есть две сетевые карты. Одна смотрит в Инет. Её IP-адрес 192.168.49.26. Вторая смотрит в квартирную локалку. IP-адрес второй сетевухи 193.0.0.1. Компьютерам квартирной локалки назначены IP-адреса 193.0.0.2, 193.0.0.3 и 193.0.0.4.
Захотел я, чтобы все компы квартирной локалки выходили в Инет через NAT, запущенный на сервере. Всё настраивал по статье из Инета. Пересобрал ядро с соответствующими опциями, создал и отредактировал все нужные конфигурационные файлы, запустил NAT, FireWall. Сделал всё как описано в статье. ПОСЛЕ ЭТОГО ВСЁ ЗАРАБОТАЛО! НА ВСЕХ КОМПАХ КВАРТИРНОЙ СЕТИ РАБОТАЛ ИНЕТ ЧЕРЕЗ NAT.
Потом мне в руки попался FreeBSD 6.1. Решил установить на сервак его. Сохранил все нужные конфигурационные файлы, чтобы потом их заново не создавать в FreeBSD 6.1, а просто их скопировать куда нужно.
Установил FreeBSD 6.1. Пересобрал точно также (используя сохранённый файл настроек ядра из FreeBSD 6.0) ядро. В нужные места скопировал сохранённые конфиги. Всё сделал один в один также как и в FreeBSD 6.0 (сохранённые конфиги). Ничего больше не менял. ИНЕТ ПЕРЕСТАЛ ТРАНСЛИРОВАТЬСЯ НА КОМПЫ КВАРТИРНОЙ ЛОКАЛКИ! Что я только не делал. Ничего не помогло. НА СЕРВЕРЕ ИНЕТ ПАШЕТ.
Но самое интересное не в этом! Как я уже говорил, все конфиги у меня были сохранены еще из FreeBSD 6.0. Я начисто установил обратно FreeBSD 6.0, пересобрал ядро, использую сохранённый конфигурационный файл ядра, опять куда нужно скопировал все конфиги, но ИНЕТ ЧЕРЕЗ NAT ТАК И НЕ ЗАРАБОТАЛ!!! НА СЕРВЕРЕ ИНЕТ ПАШЕТ. Пингую с любого компа из квартирной сети, например, Яндекс или вообще шлюз провайдера (192.168.1.1) через который осуществляется доступ в Инет, не воркает!
Вот я и не пойму как это так: конфиги одни и теже, грубо говоря просто переустановил FreeBSD 6.0 (если не считать установку FreeBSD 6.1), до переустановки всё работало, а после переустановки с теме же самыми настройками уже не работает! Я уже не знаю, что и делать. Ниже привожу содержимое всех требуемых конфигурационных файлов:

Файл с настройками ядра, который нужен для компиляции ядра:

machine    i386
cpu        I686_CPU
ident        PROMOSERVER

# To statically compile in device wiring instead of /boot/device.hints
#hints        "GENERIC.hints"        # Default places to look for devices.

makeoptions    DEBUG=-g        # Build kernel with gdb(1) debug symbols

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPDIVERT
options IPFIREWALL_DEFAULT_TO_ACCEPT

#options     SCHED_ULE              # ULE scheduler
options     SCHED_4BSD              # 4BSD scheduler
options     PREEMPTION              # Enable kernel thread preemption
options     INET                  # InterNETworking
options     FFS                  # Berkeley Fast Filesystem
options     SOFTUPDATES              # Enable FFS soft updates support
options     UFS_ACL            # Support for access control lists
options     UFS_DIRHASH              # Improve performance on big directories
options     MSDOSFS            # MSDOS Filesystem
options     CD9660            # ISO 9660 Filesystem
options     PROCFS            # Process filesystem (requires PSEUDOFS)
options     PSEUDOFS              # Pseudo-filesystem framework
options     GEOM_GPT              # GUID Partition Tables.
options     COMPAT_43              # Compatible with BSD 4.3 [KEEP THIS!]
options     COMPAT_FREEBSD4        # Compatible with FreeBSD4
options     COMPAT_FREEBSD5        # Compatible with FreeBSD5
options     KTRACE            # ktrace(1) support
options     SYSVSHM            # SYSV-style shared memory
options     SYSVMSG            # SYSV-style message queues
options     SYSVSEM            # SYSV-style semaphores
options     _KPOSIX_PRIORITY_SCHEDULING     # POSIX P1003_1B real-time extensions
options     KBD_INSTALL_CDEV                  # install a CDEV entry in /dev
options     AHC_REG_PRETTY_PRINT            # Print register bitfields in debug
                                  # output.  Adds ~128k to driver.
options     AHD_REG_PRETTY_PRINT    # Print register bitfields in debug
                          # output.  Adds ~215k to driver.
options     ADAPTIVE_GIANT        # Giant mutex is adaptive.

# Bus support.
device        isa
device        pci

# Floppy drives
device        fdc

# ATA and ATAPI devices
device        ata
device        atadisk        # ATA disk drives
device        atapicd        # ATAPI CDROM drives
options     ATA_STATIC_ID          # Static device numbering

# atkbdc0 controls both the keyboard and the PS/2 mouse
device        atkbdc    # AT keyboard controller
device        atkbd        # AT keyboard
device        psm        # PS/2 mouse
device        kbdmux

device        vga        # VGA video card driver

# syscons is the default console driver, resembling an SCO console
device        sc

# Enable this for the pcvt (VT220 compatible) console driver
#device        vt
#options     XSERVER        # support for X server on a vt console
#options     FAT_CURSOR    # start with block cursor

device        agp        # support several AGP chipsets

# Power management support (see NOTES for more options)
#device        apm
# Add suspend/resume support for the i8254.
device        pmtimer

# Serial (COM) ports
device        sio        # 8250, 16[45]50 based serial ports

# Parallel port
device        ppbus        # Parallel port bus (required)
device        ppi        # Parallel port interface device
#device        vpo        # Requires scbus and da

# If you've got a "dumb" serial or parallel PCI card that is
# supported by the puc(4) glue driver, uncomment the following
# line to enable it (connects to the sio and/or ppc drivers):
#device        puc

# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device        miibus        # MII bus support
device        rl        # RealTek 8129/8139
device        vr        # VIA Rhine, Rhine II


# Pseudo devices.
device        loop        # Network loopback
device        random        # Entropy device
device        ether        # Ethernet support
device        tun        # Packet tunnel.
device        pty        # Pseudo-ttys (telnet etc)
device        gif        # IPv6 and IPv4 tunneling

device            bpf

Файл /etc/rc.firewall:
#!/bin/sh -

#Обьявляем переменную для облегчения написания правил. Ключик -q подавляет вывод сообщений ipfw на консоль
fwcmd="/sbin/ipfw -q"

# Данные по внешней сети
LanOut="rl0"
IPOut="192.168.49.26"
NetOut="24"
MaskOut="255.255.255.0"

# Данные по локальной сети
LanIn="vr0"
IPIn="193.0.0.1"
NetInIP="193.0.0.0"
NetInMask="24"
MaskIn="255.255.255.0"

# Привелигированные адрес (доступ избранным)
MyIP1="193.0.0.1"
MyIP2="193.0.0.2"
MyIP3="193.0.0.3"
MyIP4="193.0.0.4"

# Сбросить все правила которые устанавливались ранее
${fwcmd} -f flush

# Пропускать все пакеты сгенерированные сервером (кажется что lo0 настолько понятно, что не знаешь как еще обьяснить :))
# Без этого вообще ничего работать не будет :)
${fwcmd} add pass all from any to any via lo0

# Отправляем пакеты из внутренней сети наружу и с наружи для внутренней сети на обработку NAT
${fwcmd} add divert natd ip from ${NetInIP}/${NetInMask} to any out via ${LanOut}
${fwcmd} add divert natd ip from any to ${IPOut} in via ${LanOut}

# Это и следующее правила значительно облегчают жизнь файрволу :)
# Пропускаем все соединения с установленным битом RST или ACK
# По другому - пропускаем установленные соединения соединение
${fwcmd} add pass tcp from any to any established
# Разрешаем все пакеты выходящие из внешнего интерфейса с внешнего IP
${fwcmd} add pass ip from ${IPOut} to any out xmit ${LanOut}

# Избранным беспрепятственный доступ (все открывать неразумно)
${fwcmd} add pass tcp from ${MyIP1} to any 20,21,22,23,80,443,4000
${fwcmd} add pass tcp from any 20,21,22,23,80,443,4000 to ${MyIP1}
${fwcmd} add pass tcp from ${MyIP2} to any 20,21,22,23,80,443,4000
${fwcmd} add pass tcp from any 20,21,22,23,80,443,4000 to ${MyIP2}
${fwcmd} add pass tcp from ${MyIP3} to any 20,21,22,23,80,443,4000
${fwcmd} add pass tcp from any 20,21,22,23,80,443,4000 to ${MyIP3}
${fwcmd} add pass tcp from ${MyIP4} to any 20,21,22,23,80,443,4000
${fwcmd} add pass tcp from any 20,21,22,23,80,443,4000 to ${MyIP4}

# Разрешаем почту, DNS
${fwcmd} add pass tcp from any to any 25,110 via ${LanOut}
${fwcmd} add pass tcp from any 25,110 to any via ${LanOut}
${fwcmd} add pass udp from any to any 53 via ${LanOut}
${fwcmd} add pass udp from any 53 to any via ${LanOut}

${fwcmd} add pass all from any to any via ${LanIn}

#ICMP
${fwcmd} add allow icmp from any to ${IPOut} in  via ${LanOut} icmptype 0,3,4,11,12
${fwcmd} add allow icmp from any to ${NetInIP}/${NetInMask} in  via ${LanOut} icmptype 0,3,4,11,12
${fwcmd} add allow icmp from ${IPOut} to any out via ${LanOut} icmptype 3,8,12
${fwcmd} add allow icmp from ${IPOut} to any out via ${LanOut} frag

${fwcmd} add deny log all from any to any via ${LanOut}

${fwcmd} add deny log ip from any to any


Файл /etc/natd.conf:

same_ports yes
use_sockets yes
unregistered_only yes


Файл /etc/rc.conf:

# -- sysinstall generated deltas -- # Tue Jun  6 02:33:57 2006
# Created: Tue Jun  6 02:33:57 2006
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.
gateway_enable="YES"
hostname="dial-up.promoserver.net"
ifconfig_rl0="inet 192.168.49.26  netmask 255.255.255.0"
ifconfig_vr0="inet 193.0.0.1  netmask 255.255.255.0"
keymap="ru.koi8-r"
router="/sbin/routed"
router_enable="YES"
router_flags="-q"
static_routes="S Df"
route_S="-net 192.168.0.0 -iface rl0"
route_Df="-host default 192.168.1.1"
natd_program="/sbin/natd"
natd_enable="YES"
natd_interface="rl0"
natd_flags="-f /etc/natd.conf"
sshd_enable="YES"
firewall_enable="YES"
firewall_script="/etc/rc.firewall"

Заранее спасибо!

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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