ВЪЗМОЖНОСТИТЕ НА ЛИНУКС КАТО МРЕЖОВ ШЛЮЗ

OPENFEST, ПЛОВДИВ, 23 ОКТОМВРИ 2004

Момчил Каров,

Директор, Център “Информационни Технологии” при АУ – Пловдив

a.k.a Godfather, a.k.a sn0rf

mkarov@gmail.com

http://www.deltaprox.com

СЪДЪРЖАНИЕ

* Хардуерна поддръжка

* Използвани технологии

* Netfilter/IPTables

* IPROUTE2

* Контрол на трафика – TC

* IPSec VPN

* Среди за разработка на тънки клиенти

* Въпроси

Съвършената поддръжка

на мрежов хардуер

* PC Ethernet мрежови интерфейси: ISA/PCI: 10/100/1000/10000

* 802.11 a/b/g wireless

* ISA/PCI/MCA Token Ring

* IrDA, Bluetooth

* Огромно количество WAN интерфейси – серийни асинхронни,

синхронни, многопортови, високоскоростни и др.

* Поддръжка на ATM и FDDI интерфейси

поддържани стандарти:

* RS-232 (async/sync), V.35, X.21, T1/E1, X.25, SyncPPP,

HDLC, Frame Relay, ATM, FDDI

... И МНОГО ДРУГИ :)

* NAT/IP forward

* stateful packet filter

* application proxy

* DHCP клиент/сървър

* DNS forwarding

* IPSec/VPN

* UPnP

Основни технологии на мрежовия шлюз

* iproute2: policy routing, routing tables

* QoS – контрол и осугуряване качество на трафика (TC)

* динамична маршрутизация: RIP, OSPF, BGP

http://www.zebra.org

BGP-4, RIP v1/v2 и OSPFv2

http://www.quagga.net

OSPFv2, OSPFv3, RIP v1/v2, RIPv3 и BGP-4

* 802.1d bridging

* 802.1q VLAN

* Тунелиране (IPIP, GRE, L2TP, PPTP)

* Мултикаст маршрутизация

Разширени технологии

Application Layer

Transport Layer

Internet Layer

Network Interface Layer

HTTP, FTP

TCP, UDP

IP, ICMP,

IGMP, ARP

Ethernet, ATM

Application Layer

Presentation Layer

Session Layer

Transport Layer

Network Layer

Data Link Layer

Physical Layer

Популярни мрежови модели

7 слоен OSI модел

TCP/IP модел

Netfilter / IPTables

http://www.netfilter.org

Съвършеният инструментариум

за изграждане на мрежов файъруол

Синтаксис:

iptables <правило-действие> <таблица> <условия> <действие>

Много богата съвкупност от условия и действия

Разширяема модулна архитектура

три основни таблици с подразбиращи се политики:

filter, nat, mangle

Особености на Netfilter

Йерархия в netfilter

Таблици: filter, nat, mangle

Вериги: INPUT, OUTPUT, FORWARD,

PREROUTING, POSTROUTING

Правила...

IP Tables PREROUTING

conntrack

mangle

nat

IP Tables INPUT

mangle

filter

IP Tables INPUT

mangle

filter

ЛОКАЛЕН

ПРОЦЕС

ИЗХОДЯЩА

МАРШРУТИЗАЦИЯ

IP Tables OUTPUT

conntrack

mangle

NAT

filter

IP Tables POSTROUTING

mangle

NAT

QoS

ВХОДЯЩА

МАРШРУТИЗАЦИЯ

+ RPDB

IP Tables INPUT

mangle

filter

IP Tables FORWARD

mangle

filter

QOS

ИЗХОДЯЩ

ТРАФИК

Netfilter

Маршрути на пакетите

в линукс ядрото

DNAT или REDIRECT или DE-MASQUERADE

DNAT или REDIRECT

NAT

PREROUTING, POSTROUTING, OUTPUT

MANGLE

PREROUTING, INPUT, FORWARD,

OUTPUT, POSTROUTING

FILTER

INPUT, FORWARD, OUTPUT

Netfilter - Таблици

TTL, TOS, MARK

DROP, LOG, ACCEPT, REJECT

DNAT, SNAT, REDIRECT

MASQUERADE

NAT

Преобразуване на мрежови адреси

ИНТЕРНЕТ

Мрежов

шлюз

(NAT)

1.1.1.1

10.0.0.1/8

established

related

Netfilter

Машина на състоянията

X

new

X

invalid

conntrack

Списък на състоянията:

/proc/net/ip_conntrack

IPROUTE2

МАРШРУТИЗАЦИЯ С ПЪЛНА ПАРА

Множество маршрутизиращи/препращащи таблици

Три фиксирани предефинирани таблици:

local

main

default

На всяка таблица се присвоява приоритетен номер:

0	local

32766	main

32767	default

Съвпадения започват от таблиците с висок приоритет	(local -> main -> default)

IPROUTE2 – маршрутизиращи таблици

Традиционна маршрутизация

Destination IP

Type of Service

База данни на политиките

на маршрутизиране

(RPDB)

Destination IP

Source IP

Type of Service

Iptables FW MARK

Критерии за традиционна и разширена маршрутизация

T1

gw: 192.168.0.1

T2

gw: 10.10.0.1

eth0

eth1

192.168.0.1

10.10.0.1

IP

Маршрутизиране с таблици

КОНТРОЛ НА ТРАФИКА (TC)

мощен инструментариум за управление

на информационните потоци

Контрол на трафика

SHAPING

SCHEDULING

POLICING

DROPPING

Контролиране скоростта на

предаване на изходящия трафик

Интерактивно преподреждане на

изходящия трафик

Контролиране скоростта на

предаване на входящия трафик

Отхвърляне на трафик, който

превишава определени критерии

Група от механизми за управление и промяна условията на трафика

Примери:

повишаване приоритета на даден вид трафик

ограничаване на скоростта, с която се предава трафика

блокиране на нежелан трафик (подобно на IP Filter)

TC се извършва в контекста на мрежовия интерфейс

входящ /ingress/

ограничен набор от функции (classifying, dropping)

изходящ /egress/

пълен набор от функции

queueing

Нареждане в опашка

Queueing

Класифициране

Classification

Разпределение

Scheduling

Схема на процесите в изходящия поток

Класификация (Classification)

преглежда съдържанието на пакета и го класифицира към съответния клас.

Нареждане в опашка (Queueing)

прилага входящия пакет към силози за съхранение, базирани на съответен клас.

Разпределение (Scheduling)

изпращане на пакетите в опашките, базирано на съответните приоритети.

Нареждането в опашка и разпределението се комбинират в опашни дисциплини.

Общи опашни дисциплини:

simple drop tail (FIFO)

съхранява и изпраща пакетите в реда на пристигането им

Random Early Detection (RED)

започва изхвърляне на пакети още преди достигането на максималния размер на опашката

Token Bucket Filter (TBF)

Шейпър, който изпраща пакетите с точно определена фиксирана скорост

Priority Scheduler (PQ)

изпраща с предимство пакетите от класовете с по-голям приоритет преди останалите

Weighted Fair Queueing (WFQ)

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

за всяка опашка може да се дефинира специфично тегло

http://sourceforge.net/projects/cbqinit

DEVICE=eth0,10Mbit,1Mbit

RATE=128Kbit

WEIGHT=32Kbit

PRIO=5

RULE=:20,192.168.0.0/24

RULE=:21,192.168.0.0/24

Контрол на трафика за начинаещи

CBQ.INIT

Конфигурационна директория:

/etc/sysconfig/cbq

cbq-128.ftp

IPSec VPN

СИГУРНОСТ В КОМУНИКАЦИИТЕ

http://www.ipsec-howto.org

FreeS/WAN, KAME-tools

интегрирана поддръжка в новите ядра 2.6.х

IPSec защитена

комуникация

IPSec шлюз (gateway)

Принципна VPN схема с IPSec

AH, ESP

AH Протокол

IP Header

TCP Header

Данни

Ориг. IP Header

TCP Header

AH IPSec Header

Данни

Ориг. IP Header

TCP Header

AH IPSec Header

Данни

Нов IP Header

Хеша предпазва целия пакет

Транспортен режим

Тунелен режим

Ориг. IP Header

TCP Header

Данни

Ориг. IP Header

TCP Header

ESP IPSec Header

Данни

ESP следа

ESP Auth

Хеш за цялостност

Ориг. IP Header

TCP Header

ESP Header

Данни

ESP следа

ESP Auth

Криптирани данни

Нов IP Header

ESP Протокол

криптирани данни

хеш за цялостност

Транспортен режим

Тунелен режим

#!/usr/sbin/setkey -f

# Изчистване на SAD и SPD

flush;

spdflush;

# ESP SAs криптиране с използване на 192 bit ключ (168 + 24 parity)

# и автентикация, използвайки 128 bit ключ

add 192.168.1.100 192.168.2.100 esp 0x201 -m tunnel -E 3des-cbc \

0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831 \

-A hmac-md5 0xc0291ff014dccdd03874d9e8e4cdf3e6;

add 192.168.2.100 192.168.1.100 esp 0x301 -m tunnel -E 3des-cbc \

0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df \

-A hmac-md5 0x96358c90783bbfa3d7b196ceabe0536b;

# Security политики

spdadd 172.16.1.0/24 172.16.2.0/24 any -P out ipsec

esp/tunnel/192.168.1.100-192.168.2.100/require;

spdadd 172.16.2.0/24 172.16.1.0/24 any -P in ipsec

esp/tunnel/192.168.2.100-192.168.1.100/require;

IPSec

Конфигурация

Линукс шлюз

Системни изисквания

* Оптимизирано ядро 2.6.х/2.4.х

* базова C библиотека

* инструменти за настройка и

управление

Линукс 2.6.х (ядро)

www.kernel.org

uClibc

www.uclibc.org

Основни инструменти

www.busybox.net

приложения:

dropbear, tinylogin

Инсталация на тънък линукс

Среда за разработка чрез крос-компилация

toolchains

SCRATCHBOX

http://www.scratchbox.org

* arm-glibc

* arm-uclibc

* i686-glibc

* i386-uclibc

* powerpc-glibc

Архитектури

ВЪПРОСИ?

Момчил Каров,

Директор, Център “Информационни Технологии” при АУ – Пловдив

a.k.a Godfather, a.k.a sn0rf

mkarov@gmail.com

http://www.deltaprox.com

БЛАГОДАРЯ

ЗА

ВНИМАНИЕТО!

2004-10-15T23:52:49