Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspektлекций ярчука 5 курс.doc
Скачиваний:
107
Добавлен:
22.02.2015
Размер:
1.32 Mб
Скачать

Операционная система FreeBsd

FreeBSD имеет следующие возможности:

  • Многозадачность с регулированием приоритетов;

  • Многопользовательская поддержка;

  • Мощный TCP/IP-стек с поддержкой стандартов, таких как SLIP, PPP, NFS, DHCP и NIS;

  • Стандарт X Window System (X11R6) предоставляет графический интерфейс пользователя (GUI);

  • Двоичная совместимость с ПО для Linux, SCO, SVR4, BSDI и NetBSD;

  • Доступность исходных текстов всей системы;

  • Обширная online-документация.

FreeBSD основана на 4.4BSD-Lite от Computer Systems Research Group (CSRG) Калифорнийского Университета, Беркли.

Несколько примеров того, как используется FreeBSD:

  • Интернет-службы: мощный TCP/IP стек делает FreeBSD удобной платформой для Интернет-приложений;

  • FTP-серверы;

  • Серверы World Wide Web;

  • Межсетевые экраны и шлюзы NAT (IP-маскарадинг);

  • Серверы электронной почты.

FreeBSD используется в качестве платформы на крупнейших сайтах в интернет, включая Yahoo!,Apache,Sony Japan,Netcraft,Weathernews.

Интернет шлюз на FreeBsd

Построение шлюза в глобальную сеть на FreeBSD - один из самых частых случаев использования этой системы. Основные плюсы данного решения: стабильность, масштабируемость, устойчивость к высоким нагрузкам и бесплатность всего используемого ПО.

Начнем с установки IPFW. Для этого нужно пересобрать ядро с поддержкой нескольких функций. Заходим в директорию соответствующую архитектуре нашего процессора и делаем копию дефолтного ядра в ROUTER:

# cd /usr/src/sys/amd64/conf

# cp GENERIC ROUTER

Редактируем наше новое ядро и добавляем новые функции:

cpu HAMMER

ident ROUTER

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

options IPFIREWALL # собственно файрволл

options IPFIREWALL_VERBOSE # логгинг пакетов, если в правиле написано log

options IPFIREWALL_VERBOSE_LIMIT=100 # ограничение логов options IPFIREWALL_DEFAULT_TO_ACCEPT # дефолтное правило - разрешающее

options IPDIVERT # необходимо для NAT

options IPFIREWALL_FORWARD # перенаправление пакетов

options DUMMYNET # ограничение скорости

Собираем и устанавливаем ядро:

# cd /usr/src

# make buildkernel KERNCONF=ROUTER

# make installkernel KERNCONF=ROUTER

Добавляем в файл rc.conf строки:

firewall_enable="YES"

natd_enable="YES"

natd_interface="vr0"

firewall_type="open"

firewall_logging="YES"

После перезагрузки имеем открытый фаервол с NAT.

/sbin/ifconfig vr0 195.213.21.67 netmask 255.255.255.224

/sbin/ifconfig vr1 192.168.4.1 netmask 255.255.255.0

/sbin/route add default 195.213.21.65

Просмотр сетевых настроек фаервола:

>ifconfig

vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500

inet 195.213.21.67 netmask 0xffffffe0 broadcast 195.213.21.95

inet6 fe80::219:5bff:fe83:d87e%vr0 prefixlen 64 scopeid 0x2

ether 00:19:5b:83:d8:7e

media: Ethernet autoselect (100baseTX <full-duplex>)

status: active

vr1: flags=8943<UP, BROADCAST, RUNNING, PROMISC, SIMPLEX, MULTICAST> mtu 1500

inet 192.168.4.1 netmask 0xffffff00 broadcast 192.168.4.255

inet6 fe80::219:5bff:fe84:6bfa%vr1 prefixlen 64 scopeid 0x3

ether 00:19:5b:84:6b:fa

media: Ethernet autoselect (100baseTX <full-duplex>)

status: active

Пример настройки таблицы фильтрации сетевых пакетов

#!/bin/sh

ipfw='/sbin/ipfw'

${ipfw} -f -q flush

${ipfw} add 100 permit ip from any to any via lo0

${ipfw} add 101 deny tcp from 124.121.0.0/16 to 195.213.21.67 25

#Rules for VPN

${ipfw} add 801 permit ip from 192.168.10.0/24 to 192.168.4.0/24

${ipfw} add 803 deny ip from 192.168.10.0/24 to any

${ipfw} add 900 divert natd ip from any to any via vr0

#Разрешение протокола icmp

${ipfw} add 1500 permit icmp from any to any

#Перенаправление web, icq на прокси SQUID

${ipfw} add 1501 forward 192.168.4.1:3128 tcp from 192.168.4.0/24 to any 80

${ipfw} add 1502 forward 192.168.4.1:3128 tcp from 192.168.4.0/24 to any 8080

#Разрешение протокола для доступа к серверу DNS

${ipfw} add 1600 permit udp from any 53 to any

${ipfw} add 1700 permit udp from any to any 53

# Разрешение протокола HTTP

${ipfw} add 2000 permit tcp from any 80 to 192.168.4.0/24 established

${ipfw} add 2100 permit tcp from 192.168.4.0/24 to any 80

# Разрешение протокола POP3

${ipfw} add 2600 permit tcp from any 110 to 192.168.4.0/24 established

${ipfw} add 2700 permit tcp from 192.168.4.0/24 to any 110

# Разрешение протокола SMTP

${ipfw} add 2800 permit tcp from 192.168.4.1 25 to 192.168.4.0/24 established

${ipfw} add 2900 permit tcp from 192.168.4.0/24 to 192.168.4.1 25

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]