от Галин Грозев(28-02-2001)

рейтинг (23)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Функцията на един gateway най-общо казано е да позволи на компютрите от една мрежа да комуникират с такива от външни мрежи и да контролира заявките от други компютри.Ако имате повече от един компютър тогава има смисъл единият от тях да бъде gateway към вашия интернет доставчик.По този начин всичките ви компютри могат да използват интернет като поделят само един модем.Това е лесно и най-вече евтино..

Един от най-добрите начини да се направи gateway е с използването на ipfw и natd. ipfw е съкращение от Internet Packet Firewall. Дори и да не искате firewall това е най-добрия начин да реализирате gateway.

Инструкции по инсталацията:

Тези инструкции са взети от FreeBSD natd ръководството което е достъпно на http://www.freebsd.org/cgi/man.cgi?natd или чрез командата man natd под FreeBSD.За по-подробна информация е желателно да разгледате въпросния документ. Нека да приемем че мрежовата карта е ed0. Ако не е ed0 трябва да заместите със името на вашия мрежов интерфейс.

1) Нуждаете се от FreeBSD 2.2 или по-нова версия

Тук няма да разглеждаме инсталацията на FreeBSD. За повече информация по този въпрос се обърнете към частта Installing FreeBSD във FreeBSD Handbook която се намира на адрес http://www.freebsd.org/handbook/install.html.

2) Изграждане на собствен кернел

Преди да прекомпилирате кернела е препоръчително да сте се запознали със Configuring the FreeBSD Kernel в FreeBSD handbook на адрес http://www.freebsd.org/handbook/kernelconfig.html.

Първо за да си прекомпилирате кернела ви е нужен неговия source код. Ако на вашата система няма /usr/src/sys/ директория тогава вие не разполагате със sorce кода му. Най-лесния начин да се сдобиете с него е като пуснете /stand/sysinstall като root, изберете Configure,след това Distributions, след това src и най-накрая sys.
Сега трябва да направите копие на текущия или GENERIC кернел.

   # cd /usr/src/sys/i386/conf
   # cp GENERIC NOV-KERNEL

Добавете тези два реда в новия кернел.

options        IPFIREWALL
options        IPDIVERT

Следващите стъпки са:

   # /usr/sbin/config NOV-KERNEL
   # cd ../../compile/NOV-KERNEL
   # make depend
   # make
   # make install

След това трябва да рестартирате системата за да заредите новия кернел. Уверете се че при рестарта няма никакви съобщения за грешки. Ако все пак има такива - желателно е да заредите стария кернел и да открите причината за грешките.

3) Създаване на gateway/firewall

За да стане вашата машина gateway и firewall трябва да добавите следните два реда в /etc/rc.conf:

   gateway_enable="YES"
   firewall_enable="YES"

4) Конфигуриране на мрежовата карта

Убедете се че мрежовите ви карти са вече конфигурирани. Ако използвате ppp трябва да стартирате ppp преди natd.

5) Добавете natd към вашите услуги

Проверете дали следният ред присъства в /etc/services и ако не е там добавете го:

   natd 8668/divert # Network Address Translation socket

6) Стартиране на natd

Добавете го към /etc/rc.local за да се стартира всеки път заедно със системата по следния начин:

   natd -interface ed0

7) Пренасочете трафика към natd

Като начало трябва да изпълите следните команди:

  /sbin/ipfw -f flush
  /sbin/ipfw add divert natd all from any to any via ed0
  /sbin/ipfw add pass all from any to any

С довянето на допънителни правила вие може да збранявате използването на определени портове и услуги от определени потребители във или извън вашата локална мрежа. Вижте FreeBSD natd manpage за подробности и описание на всички опции.

8) Рестарт на машината

Заради промените които бяха направени дотук се налага да рестартирате системата.

Ако всичко е минало нормално вече трябва да имате действащ gateway благодарение на ipfw/natd.

Внимание - тук са показани само принципите на създаване на gateway под FreeBSD. При различните системи са възможни разлики в горепосочените стъпки.

Галин Грозев - thug@smrad.com


<< Как да защитите вашият Linux (част 1) | Линукс Съвместими Модеми >>