Журнал LinuxFormat - перейти на главную

LXF139:IPCop

Материал из Linuxformat
(Различия между версиями)
Перейти к: навигация, поиск
(Про­свер­лить дыр­ку)
 
(не показана 1 промежуточная версия 1 участника)
Строка 67: Строка 67:
 
===Про­свер­лить дыр­ку===
 
===Про­свер­лить дыр­ку===
  
{{Врезка|Содержание=L[[Изображение:XF139_75_1.jpg|300px]] Web-ин­тер­фейс вы­да­ет мно­же­ст­во ста­ти­сти­ки по со­стоя­нию ва­шей сис­те­мы и се­те­вых со­еди­не­ний.|Ширина=300px}}
+
{{Врезка|Содержание=[[Изображение:LXF139_75_1.jpg|300px]] Web-ин­тер­фейс вы­да­ет мно­же­ст­во ста­ти­сти­ки по со­стоя­нию ва­шей сис­те­мы и се­те­вых со­еди­не­ний.|Ширина=300px}}
  
 
Иногда ваш web-сер­вер дол­жен об­щать­ся с ма­ши­на­ми из зе­ле­ной се­ти – на­при­мер, рас­сы­ла­ать ре­зерв­ные ко­пии таб­ли­цы ''MySQL''. IPCop име­ет функ­цию под на­званием '''DMZ pinhole''', обес­пе­чи­ваю­щую ог­раничение досту­па с од­но­го ком­пь­ю­те­ра в «оран­же­вой» се­ти к од­но­му пор­ту на од­ном ком­пь­ю­те­ре из «зе­ле­ной» се­ти. Это уста­нав­ли­ва­ет­ся в '''Firewall > DMZ Pinholes''', но ис­поль­зо­вать данную оп­цию сле­ду­ет толь­ко при необ­хо­ди­мо­сти, по­то­му что она час­тич­но на­ру­ша­ет безо­пас­ность, обес­пе­чи­вае­мую DMZ.
 
Иногда ваш web-сер­вер дол­жен об­щать­ся с ма­ши­на­ми из зе­ле­ной се­ти – на­при­мер, рас­сы­ла­ать ре­зерв­ные ко­пии таб­ли­цы ''MySQL''. IPCop име­ет функ­цию под на­званием '''DMZ pinhole''', обес­пе­чи­ваю­щую ог­раничение досту­па с од­но­го ком­пь­ю­те­ра в «оран­же­вой» се­ти к од­но­му пор­ту на од­ном ком­пь­ю­те­ре из «зе­ле­ной» се­ти. Это уста­нав­ли­ва­ет­ся в '''Firewall > DMZ Pinholes''', но ис­поль­зо­вать данную оп­цию сле­ду­ет толь­ко при необ­хо­ди­мо­сти, по­то­му что она час­тич­но на­ру­ша­ет безо­пас­ность, обес­пе­чи­вае­мую DMZ.
Строка 92: Строка 92:
 
* '''SmoothWall''' (http://www.smoothwall.org) Со­лид­ный ди­ст­ри­бу­тив мар­шру­ти­за­то­ра в ком­мер­че­ской и сво­бод­ной вер­си­ях. IPCop пер­во­на­чаль­но был ос­но­ван на SmoothWall.
 
* '''SmoothWall''' (http://www.smoothwall.org) Со­лид­ный ди­ст­ри­бу­тив мар­шру­ти­за­то­ра в ком­мер­че­ской и сво­бод­ной вер­си­ях. IPCop пер­во­на­чаль­но был ос­но­ван на SmoothWall.
 
* '''Zentyal''' (http://www.zentyal.com) Ра­нее на­зы­вал­ся Ebox. Ос­но­ван на ди­ст­ри­бу­ти­ве Ubuntu и не­обы­чен на­ли­чи­ем ра­бо­че­го сто­ла для на­строй­ки; большин­ст­во аль­тер­на­тив – обез­глав­лен­ные ко­роб­ки с web-ин­тер­фей­сом.
 
* '''Zentyal''' (http://www.zentyal.com) Ра­нее на­зы­вал­ся Ebox. Ос­но­ван на ди­ст­ри­бу­ти­ве Ubuntu и не­обы­чен на­ли­чи­ем ра­бо­че­го сто­ла для на­строй­ки; большин­ст­во аль­тер­на­тив – обез­глав­лен­ные ко­роб­ки с web-ин­тер­фей­сом.
 +
 +
==Ро­уте­ры: Свой личный II==
 +
 +
: '''Часть 2''' По­строй­те соб­ст­вен­ный ин­тер­нет-бранд­мау­эр и ро­утер с ну­ля, что­бы обес­пе­чить безо­пас­ность и за­од­но вы­яс­нить, как они ра­бо­та­ют.
 +
 +
В пер­вой час­ти мы изу­ча­ли, как с по­мо­щью IPCop, спец­ди­ст­ри­бу­ти­ва бранд­мау­эра, пре­вра­тить ста­рый ком­пь­ю­тер в Ин­тернет-шлюз и бранд­мау­эр. Для боль­шин­ст­ва лю­дей IPCop обес­пе­чи­ва­ет все, что нуж­но – осо­бен­но с до­полнитель­ны­ми мо­ду­ля­ми; но есть и та­кие, ко­му пря­мо не уснуть, ес­ли ве­ло­си­пед изо­бре­ли не они. По­это­му сей­час мы со­би­ра­ем­ся рас­смот­реть соз­дание ана­ло­гич­ных Ин­тернет-шлю­зов, но не на го­то­вом ди­ст­ри­бу­ти­ве, а с ну­ля. В пре­де­лах уро­ка мы с этим бранд­мау­эром су­ме­ем сде­лать мень­ше, чем с по­доб­ны­ми IPCop, но он бу­дет иметь два важ­ных пре­иму­ще­ст­ва. В про­цес­се ра­бо­ты его мож­но сколь угод­но рас­ши­рить, и вдо­ба­вок – на­стро­ив его са­ми, вы по­лу­чи­те бо­лее глу­бо­кое понимание то­го, что имен­но бранд­мау­эр де­ла­ет и как он ра­бо­та­ет.
 +
 +
{{Врезка|Содержание=[[Изображение:LXF139_76_1.jpg|300px]] Ми­ни­маль­ный ус­та­нов­щик Debian да­ет на вы­бор ста­ро­мод­ную тек­сто­вую ус­та­нов­ку или гра­фи­че­скую аль­тер­на­ти­ву, да­же ес­ли на ком­пь­ю­те­ре нет GUI.|Ширина=300px}}
 +
 +
Пер­вый шаг – вы­бор основ­но­го ди­ст­ри­бу­ти­ва. Тут ре­шение при­нять про­сто. Оче­вид­ный кан­ди­дат – Debian: он досту­пен в ви­де уста­но­воч­но­го ком­пакт-дис­ка (диск с чис­той уста­нов­кой), обес­пе­чи­ваю­ще­го минималь­ную сис­те­му, то есть плат­фор­му, на ко­то­рой мы по­стро­им наш ро­утер-мар­шру­ти­за­тор. Ка­кой-нибудь Ubuntu вы­ну­дил бы нас уда­лить до 90 % па­ке­тов сра­зу же по­сле уста­нов­ки – упо­вая,что уда­ле­но имен­но ненуж­ное, а не кри­ти­че­­ски важ­ное. Но за­чем во­об­ще что-то уда­лять? Так ведь лю­бая про­грам­ма яв­ля­ет­ся по­тен­ци­аль­ной уг­ро­зой безо­пас­но­сти, и в ка­ж­дую стро­ку ко­да мо­жет вце­пить­ся экс­плойт, вот мы и уста­нав­ли­ва­ем толь­ко стро­го необ­хо­ди­мое. Ста­биль­ные ре­ли­зы Debian иногда вы­смеи­ва­ют за мед­лен­ные цик­лы вы­пуска, но нам как раз и тре­бу­ет­ся про­ве­рен­ный и на­деж­ный код, ко­то­рый не бу­дет еженедель­но тре­бо­вать об­нов­ления до но­вой вер­сии. Об­нов­ления – еще од­на при­чи­на вы­брать Debian, осо­бен­но их сис­те­ма «пол­зу­чих» об­нов­лений. Еди­но­жды уста­но­вив сис­те­му, лег­ко под­дер­жи­вать ее со­от­вет­ст­вие со­вре­мен­ным тре­бо­ваниям, да­же не при­бе­гая к но­вым ре­ли­зам. Вы же не хо­ти­те по­пасть в си­туа­цию, когда вам при­дет­ся пе­реуста­но­вить мар­шру­ти­за­тор, по­те­ряв уста­нов­лен­ное Ин­тернет-соединение!
 +
 +
===Ба­зо­вая уста­нов­ка===
 +
 +
Возь­ми­те чис­тый ди­ст­ри­бу­тив CD с http://www.debian.org/CD/netinst, за­пи­ши­те его на ком­пакт-диск и за­гру­зи­тесь с него. Вам будeт пре­достав­ле­ны на вы­бор тек­сто­вый или гра­фи­че­­ский ин­стал­ля­тор – в гра­фи­че­­ском не обой­тись без мы­ши, но функ­ции у обо­их ана­ло­гич­ные. Ус­та­нов­щик об­ша­рит все ва­ши се­те­вые кар­ты и спро­сит, ка­кие ис­поль­зо­вать для уста­нов­ки. Вы­бе­ри­те ту, что под­клю­че­на к мо­де­му, это бу­дет «крас­ная» (внеш­няя, вы­хо­дя­щая в Ин­тернет) сеть (со­храним крас­ный, оран­же­вый и зе­ле­ный цве­та для обо­зна­чения се­тей, как в слу­чае IPCop).
 +
 +
Когда дой­дет до раз­бив­ки на раз­де­лы, тут все ра­бо­та­ет по-дру­го­му. По­сколь­ку при вхо­де в ком­пь­ю­тер нет поль­зо­ва­те­лей, нет смыс­ла де­лать от­дель­ный раз­дел '''/home''', но от­дель­ный '''/var''' – это от­лич­ная идея. Там хра­нят­ся дан­ные сис­тем­ных де­мо­нов, а так­же жур­на­лы. По­шед­шая враз­нос про­грам­ма или ошиб­ка мо­жет бы­ст­ро за­полнить '''/var/log''', и вынесение это­го раз­де­ла из корневой фай­ло­вой сис­те­мы пре­дот­вра­тит непри­ят­ную си­туа­ция пе­ре­полнения '''/'''.
 +
 +
Ра­зум­ным бу­дет от­вес­ти по 2 ГБ на '''/''' и '''/var''', а для раз­де­ла под­кач­ки – по­мно­жен­ный на два объ­ем ОЗУ. Ес­ли у вас доста­точ­но мес­та на дис­ке, от­дель­ная фай­ло­вая сис­те­ма для '''/tmp''' на 1 ГБ – так­же непло­хая идея, по тем же при­чи­нам, что и для '''/var'''. А ес­ли у вас мно­го опе­ра­тив­ной па­мя­ти, мо­же­те ис­поль­зо­вать для '''/tmp''' сис­те­му ''tmpfs'', это по­вы­сит про­из­во­ди­тель­ность. Дой­дя до эк­ра­на вы­бо­ра ПО, сними­те га­лоч­ки со все­го, по­сколь­ку уста­нов­ка у нас минималь­ная. По­сле пе­ре­за­груз­ки ком­пь­ю­те­ра вой­ди­те в сис­те­му от имени root.
 +
 +
{{Врезка|Содержание=[[Изображение:LXF139_77_1.jpg|300px]] Раз­бив­ка на раз­де­лы не та­кая, как у сер­ве­ра или по­доб­но­го уст­рой­ст­ва — от­дель­ная ди­рек­то­рия '''/home''' здесь не нуж­на, но '''/var''' луч­ше вы­вес­ти в осо­бый раз­дел.|Ширина=300px}}
 +
 +
===На­строй­ка се­ти===
 +
 +
Те­перь соз­да­дим раз­лич­ные се­те­вые ин­тер­фей­сы. Ус­та­нов­щик Debian уже на­стро­ил «крас­ный» ин­тер­фейс за вас: он ис­поль­зу­ет DHCP для за­про­са кон­фи­гу­ра­ции с мо­де­ма. Ин­тер­фей­сов Ethernet vожет быть до трех – «крас­ный», «зе­ле­ный» и «оран­же­вый» – и вы долж­ны знать, ко­то­рый ка­кой. Что­бы ка­ж­дая се­те­вая кар­та всегда по­лу­ча­ла од­но и то же имя ин­тер­фей­са, при­меним ''Udev'' – пе­ре­клю­чение '''eth0''' и '''eth1''' на пе­ре­за­груз­ке мо­жет стать ка­та­ст­ро­фой.
 +
Это уста­нав­ли­ва­ет­ся в фай­ле '''/etc/udev/rules.d/70‑persistent-net.rules'''.
 +
 +
Как пра­ви­ло, этот файл луч­ше не тро­гать, но из­менение на­званий де­ла­ет­ся имен­но там. Ка­ж­дая стро­ка при­вя­зы­ва­ет MAC-ад­рес кар­ты к имени ин­тер­фей­са, и вы мо­же­те из­менить на­звания карт пу­тем пе­ре­клю­чения имен ин­тер­фей­сов, а за­тем пе­ре­за­гру­зить­ся. Да­лее бу­дем счи­тать '''eth0''' «крас­ным», '''eth1''' – «зе­ле­ным» и '''eth2''' – «оран­же­вым». Ес­ли вы из­мените имя ин­тер­фей­са для «крас­но­го», от­ре­дак­ти­руй­те '''/etc/network/interfaces''' и из­мените оба упо­ми­нания '''ethX'''.
 +
 +
Что­бы на­стро­ить зе­ле­ный ин­тер­фейс, от­ре­дак­ти­руй­те '''/etc/network/interfaces'''. По умол­чанию ис­поль­зу­ет­ся ре­дак­тор ''Nano'', а для ма­зо­хи­стов пре­ду­смот­рен'' Vi''.
 +
 +
nano /etc/network/interfaces
 +
 +
Зе­ле­но­му ин­тер­фей­су так­же по­тре­бу­ет­ся ста­ти­че­ский ад­рес, по­это­му до­ба­вим в файл сле­дую­щие стро­ки:
 +
 +
# Green interface
 +
auto eth1
 +
iface eth1 inet static
 +
address 192.168.1.1
 +
netmask 255.255.255.0
 +
 +
Ес­ли вы ис­поль­зуе­те DMZ, до­бавь­те ана­ло­гич­ную стро­фу с ад­ре­сом 192.168.2.1 для «оран­же­во­го» ин­тер­фей­са. Введите команду
 +
 +
ifup -a
 +
 +
для вклю­че­ния всех скон­фи­гу­ри­ро­ван­ных ин­тер­фей­сов.
 +
 +
===Ус­та­нав­ли­ва­ем ПО===
 +
 +
{{Врезка|Заголовок=Скорая помощь|Содержание=Ни­как не упом­ни­те, ка­кой порт к ка­кой се­ти при­над­ле­жит? По­трать­тесь на не­сколь­ко се­те­вых крас­ных, зе­ле­ных и оран­же­вых про­во­дов – сра­зу бу­дет вид­но, что с чем со­еди­ня­ет­ся.|Ширина=200px}}
 +
 +
 +
По­сколь­ку мар­шру­ти­за­тор дол­жен обес­пе­чи­вать на на­шем ин­тер­фей­се DHCP- и DNS-сер­ви­сы, сле­дую­щей про­грам­мой ус­та­но­вим ''dnsmasq'', вы­пол­няю­щую обе эти функ­ции.
 +
 +
apt-get install dnsmasq
 +
 +
''apt-get install'' c одним или несколь­ки­ми на­звания­ми па­ке­тов уста­но­витвсеэтипа­ке­ты,а так­жеих за­ви­си­мо­сти. От­ре­дак­ти­руй­те '''/etc/dnsmasq.conf''', что­бы уста­но­вить его, най­ди­те за­ком­мен­ти­ро­ван­ную стро­ку '''interface= line''' и ис­правь­те ее на '''interface = eth1''' – то есть «зе­ле­ная» сеть по­лу­чит толь­ко DNS и DHCP. Ес­ли вам нуж­на DMZ, там по­на­до­бит­ся DNS, но не DHCP, так что ис­поль­зуй­те вме­сто это­го
 +
 +
except-interface=eth0
 +
no-dhcp-interface=eth2
 +
 +
Вклю­чи­те DHCP-сер­вер и ука­жи­те диа­па­зон ад­ре­сов для ис­поль­зо­ва­ния:
 +
 +
dhcp-range=192.168.1.100,192.168.1.200
 +
 +
В ''dnsmasq'' го­раз­до боль­ше на­стро­ек, но этих доста­точ­но для ра­бо­ты. Пе­ре­за­гру­зи­те сер­вер, что­бы из­менения всту­пи­ли в си­лу, и под­клю­чи­те ком­пь­ю­тер к зе­ле­ной се­ти.
 +
 +
===Пе­ре­да­ча па­ке­тов===
 +
 +
Те­перь у нас есть один ин­тер­фейс, под­клю­чен­ный к Ин­тернет и один под­клю­чен­ный к локаль­ной се­ти, что обес­пе­чи­ва­ет DHCP и DNS. Сле­дую­щий шаг яв­ля­ет­ся важ­ным: те­перь нам нуж­но свя­зать их вме­сте та­ким об­ра­зом, что­бы из локаль­ной се­ти был пол­ный доступ к ин­тернету, а не на­обо­рот. Пре­ж­де чем сде­лать это, мар­шру­ти­за­тор пред­по­ла­га­ет­ся «обез­гла­вить», по­это­му мы ис­поль­зу­ем ''apt-get install ssh'' для по­лу­чения уда­лен­но­го досту­па.
 +
 +
Нам нуж­ны уда­лен­ные вхо­ды толь­ко из «зе­ле­но­й» се­ти, по­это­му от­крой­те '''/etc/ssh/sshd_config''' и до­бавь­те стро­ку
 +
 +
ListenAddress 192.168.1.1
 +
 +
Те­перь вы мо­же­те свя­зать­ся с бранд­мау­эром с лю­бо­го ком­пь­ю­те­ра в ва­шей се­ти – ес­ли знае­те па­роль, ко­неч­но. Сле­дую­щим ша­гом яв­ля­ет­ся ус­та­нов­ка бранд­мау­эра, но сна­ча­ла мы долж­ны раз­ре­шить яд­ру пе­ре­сыл­ку па­ке­тов – это нам нуж­но, что­бы ис­поль­зо­вать ко­роб­ку в ка­че­ст­ве мар­шру­ти­за­то­ра. От­ре­дак­ти­руй­те '''/etc/sysctl.conf''' – най­ди­те сле­дую­щие две стро­ки:
 +
 +
# Net.ipv4.ip_forward = 1
 +
# Net.ipv6.conf.all.forwarding = 1
 +
 +
Уда­ли­те '''#''' в на­ча­ле пер­вой стро­ки, а так­же во вто­рой, ес­ли вы ис­поль­зуе­те IPv6. Вы­пол­ни­те
 +
 +
sysctl -р
 +
 +
что­бы при­ме­нить из­ме­не­ния.
 +
 +
===Бранд­мау­эр===
 +
 +
Есть мно­го Linux-про­грамм для бранд­мау­эра, но все они, по су­ти, яв­ля­ют­ся ре­дак­то­ра­ми на­стро­ек, по­то­му что сам код бранд­мау­эра, се­те­во­го фильт­ра, си­дит в яд­ре Linux. Се­те­вой фильтр кон­тро­ли­ру­ет­ся ''iptables'', где уста­нав­ли­ва­ют­ся пра­ви­ла фильт­ра­ции. Спи­сок команд мож­но на­пи­сать вруч­ную, что даст вам мак­си­мум гиб­ко­сти – а за­од­но и по­вы­сит шан­сы по неосто­рож­но­сти от­крыть свою сеть неза­кон­но­му втор­жению; а мож­но ис­поль­зо­вать ре­дак­тор. Воз­мож­но и со­че­тание этих спо­со­бов, так как боль­шин­ст­во ре­дак­то­ров генери­ру­ют мно­же­ст­во пра­вил ''iptables'', ко­то­рые вы мо­же­те из­менить, об­ре­тя уве­рен­ность в се­бе.
 +
 +
{{Врезка|Содержание=[[Изображение:LXF139_78_1.jpg|300px]] Мак­ро­сы ''Shorewall'' силь­но об­лег­ча­ют на­пи­са­ние пра­вил, по­за­бо­тив­шись о де­та­лях.|Ширина=300px}}
 +
 +
Восполь­зу­ем­ся для на­строй­ки своего бранд­мау­эра ути­ли­той ''Shorewall Firewall'', бо­лее из­вест­ной как ''Shorewall'' (http://www.shorewall.net). ''Shorewall'' бе­рет на­бор пра­вил из груп­пы фай­лов на­строй­ки и пре­об­ра­зу­ет их в на­бор пра­вил ''Iptables''. Пре­об­ра­зо­вание од­но­го на­бо­ра пра­вил в дру­гой мо­жет по­ка­зать­ся бес­смыс­лен­ным, но ''Shorewall'' име­ет про­стой для понимания син­так­сис, про­ве­ря­ет пра­ви­ла на ошиб­ки пе­ред ком­пи­ля­ци­ей пра­вил ''Iptables'' и, что для нас глав­ное, по­став­ля­ет­ся с ря­дом го­то­вых кон­фи­гу­ра­ций – в том чис­ле па­рой та­ких, ко­то­рые точ­но со­от­вет­ст­ву­ют на­шим по­треб­но­стям. Вер­сия ''Shorewall'' из Debian Lenny (5.0) до­воль­но ста­ра, но пре­ду­смот­ре­но пор­ти­ро­вание па­ке­та для бо­лее но­вой вер­сии, Squeeze (6.0). До­бавь­те сле­дую­щие стро­ки в '''/etc/apt/sources.list''':
 +
 +
deb http://people.connexer.com/~roberto/debian/lenny main
 +
deb-src http://people.connexer.com/~roberto/debian/lenny main
 +
 +
За­тем вы­пол­ни­те:
 +
 +
gpg --keyserver keyring.debian.org --recv-key 63E4E277
 +
gpg --export -a 63E4E277 | apt-key add -
 +
apt-get update
 +
apt-get install shorewall
 +
 +
Пер­вые две стро­ки до­ба­вят ключ GPG для про­вер­ки под­лин­но­сти па­ке­тов; за­тем мы об­нов­ля­ем спи­ски па­ке­тов и уста­нав­ли­ва­ем па­кет ''shorewall''. Сде­лать это важ­но, по­то­му что кон­фи­гу­ра­ция для се­рии 4.4 от­ли­ча­ет­ся от вер­сии в Debian Lenny.
 +
 +
===Ус­та­но­вим границы===
 +
 +
{{Врезка|Заголовок=Скорая помощь|Содержание=Что­бы про­тес­ти­ро­вать ра­бо­ту ва­ше­го бранд­мау­эра из­вне ва­шей се­ти, ис­поль­зуй­те но­ут­бук с бес­про­вод­ным 3G-мо­де­мом. Так вы бу­де­те на­хо­дить­ся вне се­ти, но фи­зи­че­ски дос­та­точ­но близ­ко для ра­бо­ты с на­строй­ка­ми.|Ширина=200px}}
 +
 +
Стан­дарт­ные на­строй­ки хра­нят­ся в '''/usr/share/doc/shorewall/examples''', по пап­ке для ка­ж­до­го ти­па уста­нов­ки. Для стан­дарт­но­го бранд­мау­эра с дву­мя ин­тер­фей­са­ми, «крас­ным» под­клю­чением к Ин­тернет и «зе­ле­ным» для LAN, ско­пи­руй­те со­дер­жи­мое пап­ки '''two-interfaces''' в ка­та­лог '''/etc/shorewall'''. Файл '''Shorewall.conf''' упа­ко­ван ар­хи­ва­то­ром ''gunzip''; рас­па­куй­те его, пе­ре­за­пи­сав пре­ды­ду­щий '''shorewall.conf'''.
 +
 +
''Shorewall'' ис­поль­зу­ет кон­цеп­цию зон – ка­ж­дая оп­ре­де­ля­ет один сег­мент се­ти – за­тем ис­поль­зу­ет по­ли­ти­ки и пра­ви­ла, опи­сы­ваю­щие взаи­мо­дей­ст­вие зон. Файл '''zones''' – это спи­ски зон, здесь оп­ре­де­ле­ны три: '''fw''' – сам бранд­мау­эр, а '''loc''' и '''net''' – две зо­ны се­ти. Ес­ли хо­ти­те, пе­ре­име­нуй­те '''net''' и '''loc''' в «крас­ный» и «зе­ле­ный», но тогда при­дет­ся ре­дак­ти­ро­вать и дру­гие фай­лы, что­бы при­вес­ти в по­ря­док ссыл­ки на эти зо­ны. Файл '''interfaces''' при­сваи­ва­ет зо­ны ка­ж­до­му из ин­тер­фей­сов; здесь '''eth0''' – '''net''' («крас­ная» зо­на), а '''eth1''' – '''loc''' («зе­ле­ная» зо­на). Ес­ли вы на­строи­ли Ин­тернет- и LAN-со­единения ина­че, от­ре­дак­ти­руй­те эти фай­лы со­от­вет­ст­вен­но.
 +
 +
По­ли­ти­ки по умол­чанию о том, что мо­жет де­лать ка­ж­дая зо­на, оп­ре­де­ле­ны в фай­ле '''policy'': по умол­чанию '''loc''' име­ет доступ к '''net''', но не на­обо­рот. Од­на­ко ничто не оп­ре­де­ле­но для зо­ны '''fw''', а зна­чит, вы не мо­же­те под­клю­чить­ся к са­мо­му бранд­мау­эру, да и бранд­мау­эр не мо­жет под­клю­чить­ся к Ин­тернету. Пер­вое необ­хо­ди­мо для на­строй­ки бранд­мау­эра че­рез ''SSH'', а ком­пь­ю­те­ры ва­шей локаль­ной се­ти долж­ны под­клю­чать­ся к нему для по­лу­чения сер­ ви­сов DHCP и DNS. По­следнее необ­хо­ди­мо по­то­му, что вы долж­ны быть в со­стоянии при­менить об­нов­ления для сис­те­мы безо­пас­­но­сти с ''apt-get'' (или за­ве­ди­те у се­бя в се­ти локаль­ный кэш ''apt''). Ис­пра­вим си­туа­цию, до­ба­вив та­кие пра­ви­ла в '''/etc/shorewall/policy''':
 +
 +
loc $FW ACCEPT
 +
$FW loc ACCEPT
 +
$FW net ACCEPT
 +
 +
Пер­вые два обес­пе­чи­ва­ют доступ из локаль­ной се­ти к бранд­мау­эру и на­обо­рот, а третье по­зво­ля­ет бранд­мау­эру под­клю­чать­ся к Ин­тернет. За­ме­тим, что они при­ме­ня­ют­ся толь­ко к пунк­там на­зна­чения па­ке­тов: ком­пь­ю­тер в локаль­ной се­ти мож­но под­клю­чить к Ин­тернету че­рез бранд­мау­эр, да­же ес­ли ему нель­зя под­клю­чать­ся к са­мо­му бранд­мау­эру. Ес­ли вы не хо­ти­те обес­пе­чи­вать пол­ный доступ к бранд­мау­эру из локаль­ной се­ти, опусти­те пер­вые две строч­ки и соз­дай­те кон­крет­ные пра­ви­ла для сер­ви­сов, ко­то­рые хо­ти­те раз­ре­шить; их мы ско­ро рас­смот­рим.
 +
 +
Для ба­зо­вой кон­фи­гу­ра­ции это­го доста­точ­но, но скрипт '''init''' Debian не станет за­пускать ''Shorewall'', по­ка вы не ска­же­те ему, что кон­фи­гу­ра­ция соз­да­на (что­бы не дать вам по ошиб­ке за­пустить от­кры­тую и небезо­пас­ную кон­фи­гу­ра­цию по умол­чанию). От­ре­дак­ти­руй­те '''/etc/default/shorewall''', из­менив '''startup = 0''' на '''startup = 1''', за­тем в '''/etc/shorewall/shorewall.conf''' из­мените '''STARTUP_ENABLED''' на '''Yes'''. Те­перь за­пусти­те
 +
 +
/etc/init.d/shorewall start
 +
 +
Это не­об­хо­ди­мо толь­ко при из­ме­не­нии кон­фи­гу­ра­ции – при пе­ре­за­груз­ке мар­шру­ти­за­то­ра ''shorewall'' за­пус­ка­ет­ся ав­то­ма­ти­че­ски. Хо­тя ''Shorewall'' за­пус­ка­ет­ся из скрип­ту ''init'', это не фо­но­вый сер­вис – скрипт про­чтет фай­лы в '''/etc/shorewall''', ус­та­но­вит пра­ви­ла бранд­мау­эра и за­вер­шит­ся. Вы мо­же­те про­смот­реть пра­ви­ла, ко­то­рые ''Shorewall'' ус­та­нав­ли­ва­ет, за­пус­тив
 +
 +
iptables -L
 +
 +
===Пра­ви­ла, пра­ви­ла и пра­ви­ла===
 +
 +
Что­бы ком­пь­ю­те­ры по­за­ди бранд­мау­эра мог­ли свя­зать­ся с уда­лен­ны­ми сер­ве­ра­ми и по­лу­чать от тех от­ве­ты, вы долж­ны ис­поль­зо­вать IP-мас­ки­ров­ку. Это уста­нав­ли­ва­ет­ся в '''/etc/shorewall/masq'''. Файл по умол­чанию в при­ме­ре с дву­мя ин­тер­фей­са­ми ра­бо­та­ет, ес­ли ваш «крас­ный» ин­тер­фейс '''eth0''' – ес­ли нет, сде­лай­те со­от­вет­ст­вую­щие из­менения в этом фай­ле.
 +
 +
Ес­ли вы хо­ти­те до­ба­вить пра­ви­ла, раз­ре­шаю­щие доступ DHCP из локаль­ной се­ти, или HTTP-доступ из Ин­тернет, это де­ла­ет­ся в '''/etc/shorewall/rules'''. Что­бы раз­ре­шить доступ к web-сер­ве­ру (Порт 80) на 192.168.1.2 (ва­ши сер­ве­ры долж­ны иметь ста­ти­че­­ские IP-ад­ре­са), до­бавь­те сле­дую­щие стро­ки в файл с пра­ви­ла­ми:
 +
 +
#ACTION SOURCE DEST PROTO
 +
DNAT net loc:192.168.1.2:80 tcp
 +
 +
Они ве­лят ис­поль­зо­вать DNAT для пе­ре­на­прав­ле­ния со­еди­не­ния от се­те­вой зо­ны к пор­ту 80 на сер­ве­ре. Есть бо­лее про­стой спо­соб сде­лать это для мно­гих сер­ви­сов, так как ''Shorewall'' пред­ла­га­ет для это­го мак­рос:
 +
 +
HTTP(DNAT) net loc:192.168.1.2
 +
 +
Ес­ли за­ме­нить HTTP на web, од­но пра­ви­ло бу­дет от­ве­ча­ет и за HTTP-, и HTTPS-тра­фик – а от web-сер­ве­ра обыч­но это и тре­бу­ет­ся. Спи­сок дос­туп­ных мак­ро­сов мож­но по­лу­чить ко­ман­дой
 +
 +
shorewall show macros
 +
 +
{{Врезка|Содержание=[[Изображение:LXF139_79_1.jpg|300px]] Ис­поль­зо­ва­ние ''SSH'' — луч­ший спо­соб вы­яс­нить, что де­лать, но ''Webmin'' пред­ла­га­ет гра­фи­че­ский ин­тер­фейс поль­зо­ва­те­ля.|Ширина=300px}}
 +
 +
Ес­ли вы хо­ти­те за­ме­нить толь­ко что соз­дан­ные гло­баль­ные по­ли­ти­ки дос­ту­па из LAN в бранд­мау­эр, мож­но до­ба­вить в файл пра­вил '''rules''' стро­ки, раз­ре­шаю­щие DNS- и DHCP-со­еди­не­ния (''SSH'' уже вклю­че­но в пра­ви­ла по умол­ча­нию):
 +
 +
DNS(ACCEPT) loc $FW
 +
DHCPfwd(ACCEPT) loc $FW
 +
 +
По­сле из­ме­не­ния лю­бо­го из фай­лов на­строй­ки ''Shorewall'' тре­бу­ет­ся пе­ре­за­пуск:
 +
 +
/etc/init.d/shorewall restart
 +
 +
===До­бавь­те DMZ===
 +
 +
Ес­ли вы хо­ти­те за­пустить сер­вер в DMZ – ко­то­рую IPCop обо­зна­ча­ет оран­же­вым – ис­поль­зуй­те фай­лы на­строй­ки из ка­та­ло­га '''three-interfaces examples'''. Ус­та­нов­ка при­мер­но та­кая же, как опи­са­но вы­ше; толь­ко здесь дру­гая зо­на, под на­званием '''dmz''', ко­то­рой от­ве­ден ин­тер­фейс '''eth2'''. Пра­ви­ла по умол­чанию не обес­пе­чи­ва­ют ника­кой пе­ре­сыл­ки из Ин­тернета в DMZ, так что вам необ­хо­ди­мо до­ба­вить пра­ви­ла пе­ре­ад­ре­са­ции из Ин­тернет и локаль­ной се­ти в DMZ, та­кие как
 +
 +
Web(DNAT) net dmz:192.168.3.2
 +
Web(ACCEPT) loc dmz:192.168.3.2
 +
 +
Об­ра­ти­те внимание, что для Ин­тернет-пра­ви­ла ис­поль­зу­ет­ся '''DNAT''', по­то­му что тут нуж­но ис­поль­зо­вать пре­об­ра­зо­вание се­те­вых ад­ре­сов, а для за­про­сов из локаль­ной се­ти – обыч­ное '''ACCEPT'''.
 +
 +
Это все­го лишь по­верх­но­ст­ное зна­ком­ст­во с воз­мож­ны­ми при­менения­ми ва­ше­го лич­но­го мар­шру­ти­за­то­ра. По­ин­те­ре­суй­тесь ис­поль­зо­ванием ''logrotate'' для сжа­тия фай­лов жур­на­лов, а мо­жет, чем-то вро­де ''logwatch'' – для соз­дания еже­днев­ных об­зо­ров по жур­на­лам и от­прав­ке их вам элек­трон­ной по­чтой. Глав­ные страницы раз­лич­ных про­грамм со­дер­жат мно­го ин­фор­ма­ции, как и сайт ''Shorewall''.
 +
 +
Су­ще­ст­ву­ет еще мас­са воз­мож­но­стей даль­ней­шей на­строй­ки. А мож­но про­сто до­бить­ся ра­бо­ты, по­ло­жить его на пол­ку и за­быть о нем (кро­ме про­вер­ки об­нов­ле­ний для сис­те­мы безо­пас­но­сти, ко­неч­но). Что бы ни пред­по­чли, вы те­перь луч­ше раз­би­рае­тесь в мар­шру­ти­за­то­рах и бранд­мау­эрах, и мы на­де­ем­ся, что про­цесс по­зна­ния то­же дос­та­вил вам удо­воль­ст­вие.
 +
 +
===Нет Ethernet?===
 +
 +
Ес­ли вы не ис­поль­зуе­те ка­бель­ный или ADSL-мо­дем че­рез Ethernet, вы все рав­но мо­же­те при­дер­жи­вать­ся опи­сан­ной здесь ус­та­нов­ки, про­сто нуж­но кое-что из­ме­нить. В фай­ле ин­тер­фей­сов ''Shorewall'' на­значь­те '''eth0''' для ин­тер­фей­са ''loc'', а уст­рой­ст­во, ис­поль­зуе­мое ва­шим ин­тер­нет-со­еди­не­ни­ем, ска­жем, '''ppp0''' – для ин­тер­фей­са '''net'''. Сде­лай­те такие же под­ста­нов­ки для всех дру­гих вхо­ж­де­ний '''eth0''' или '''eth1'''. Так­же мо­жет по­на­до­бить­ся до­ба­вить ''init''-скрипт для за­пус­ка се­те­во­го со­еди­не­ния. На­при­мер, ес­ли у вас PPP-со­еди­не­ние (те­ле­фон­ный или бес­про­вод­ной 3G-мо­дем), нуж­но за­пус­тить ''wvdial'' или ''pon'', для за­пус­ка обыч­ным спо­со­бом.

Текущая версия на 09:55, 21 марта 2012

Ро­уте­ры Соз­да­ем точ­ку дос­ту­па в Ин­тер­нет и за­щи­ща­ем свою но­вую сеть

Содержание

[править] Ро­уте­ры: Свой личный I

Часть 1 Соз­дай­те мощ­ный ин­тернет-бранд­мау­эр и ро­утер из ста­ро­го ненуж­но­го ком­пь­ю­те­ра – и обезо­па­си­те ва­шу сеть.

Linux по­стро­ен на се­те­вой ра­бо­те. Это за­ло­же­но в яд­ре опе­ра­ци­он­ной сис­те­мы, а не при­кру­чи­ва­ет­ся рас­ши­рения­ми. И для же­лаю­щих соз­дать ин­тернет-уст­рой­ст­во Linux – вы­бор оче­вид­ный. Са­мое по­пу­ляр­ное ин­тернет-уст­рой­ст­во – мар­ш­ру­ти­за­тор (ро­утер); в на­ши дни та­ко­вое име­ет­ся в боль­шин­ст­ве до­мов. Оно пе­ре­во­дит ва­ше DSL или пря­мое под­клю­чение к Ин­тернет в Ethernet или бес­про­вод­ное со­единение для пе­ре­да­чи в ком­пь­ю­тер. Ес­ли у вас до­ма не один ком­пь­ю­тер, та­кие уст­рой­ст­ва ста­но­вят­ся еще важнее, по­сколь­ку по­зво­ля­ют ис­поль­зо­вать Ин­тернет сра­зу на несколь­ких ма­ши­нах без про­блем с па­ке­та­ми.

Ес­ли у вас несколь­ко ком­пь­ю­те­ров, то ско­рее все­го есть и та­кой, ко­то­рый дав­но за­бро­шен и пы­лит­ся в шка­фу, по­то­му что его мощ­но­сти ма­ло для со­вре­мен­ных за­дач. Вы, воз­мож­но, по­ду­мы­ва­ли вы­ста­вить его на Ebay, но из-за лени и стре­ми­тель­но па­даю­щей цен­но­сти ста­ро­го обо­ру­до­вания так и не вы­ста­ви­ли. Вдох-ните же в это ба­рах­ло но­вую жизнь, в ро­ли ин­тернет-шлю­за! Вы cпросите, по­че­му бы вме­сто это­го не взять го­то­вый мо­дем/мар­ш­ру­ти­за­тор. Од­на из при­чин – вы по­лу­чае­те го­раз­до боль­ший кон­троль над тем, что про­ис­хо­дит в уст­рой­ст­ве, над его функ­ция­ми и их ор­ганиза­ци­ей. Дру­гая при­чи­на – ну, это лю­бо­пыт­ный спо­соб уз­нать о по­доб­ных ве­щах, а не про­сто от­дать все на от­куп ма­ги­че­­ско­­му чер­но­му ящи­ку (или, что бо­лее ве­ро­ят­но, бе­ло­му или се­реб­ри­сто­му).

К дан­ной за­да­че есть два под­хо­да. Пер­вый – восполь­зо­вать­ся спе­ци­аль­ным ди­ст­ри­бу­ти­вом для этой ра­бо­ты, уже на­стро­ен­ным, с нуж­ны­ми па­ке­та­ми. Дру­гой – по­стро­ить все са­мим, ис­поль­зуя минималь­ную уста­нов­ку Linux и до­ба­вив толь­ко са­мое необ­хо­ди­мое ПО для вы­полнения нуж­ных вам функ­ций. Спер­ва мы зай­мем­ся пер­вым спо­со­бом, но пол­но­стью ох­ва­тим под­ход «сде­лай сам» на сле­дую­щем уро­ке.

[править] Вы­бе­ри­те ди­ст­ри­бу­тив

Су­ще­ст­ву­ет нема­ло ди­ст­ри­бу­ти­вов для ис­поль­зо­вания на бранд­мау­эрах, и часть из них осно­ва­на на FreeBSD, а не на Linux. Ди­ст­ри­бу­ти­вы мож­но раз­де­лить на две груп­пы: те, что обес­пе­чи­ва­ют оп­ре­де­лен­ный бранд­мау­эр/мар­шру­ти­за­тор и те, что пре­достав­ля­ют бо­лее пол­ный ин­тернет-шлюз, в том чис­ле та­кие ве­щи, как пе­чать, поч­та, фай­ло­вые и да­же web-сер­ве­ры. На дан­ном уро­ке мы скон­цен­три­ру­ем­ся на чис­том шлю­зе, бо­лее гиб­кой и мощ­ной аль­тер­на­ти­ве го­то­вых мо­де­мов/мар­шру­ти­за­то­ров, обес­пе­чи­ваю­щей боль­шую безо­пас­ность дру­гим услу­гам. Для это­го мы вы­бра­ли ди­ст­ри­бу­тив IPCop (http://www.ipcop.org). Мы ис­поль­зу­ем ста­биль­ный ре­лиз 1.4.21, но лю­би­те­ли при­клю­чений мо­гут взять вер­сию 1.9.

Ес­те­ст­вен­но, вам так­же по­на­до­бит­ся ком­пь­ю­тер. Сой­дет лю­бой, ко­то­рый ра­бо­та­ет уже не на дро­вах, а на элек­три­че­­ст­ве. I586 или бо­лее поздней вер­сии вполне спра­вит­ся с неболь­шой се­тью и вы­хо­дом в Ин­тернет. В IPCop нет ра­бо­че­го сто­ла – по­сле уста­нов­ки все де­ла­ет­ся уда­лен­но че­рез web-брау­зер, по­это­му тре­бо­вания к па­мя­ти обо­ру­до­вания минималь­ны. Вам по­тре­бу­ют­ся кла­виа­ту­ра и монитор для уста­нов­ки, но их мож­но уб­рать, как толь­ко сис­те­ма бу­дет пе­ре­за­гру­же­на.

Ком­пь­ю­те­ру нужны как минимум два се­те­вых ин­тер­фей­са: Ethernet для локаль­ной се­ти и все­го, что тре­бу­ет под­клю­чения к Ин­тернет. Это мо­жет быть кар­та мо­де­ма DSL-PCI, дру­гая се­те­вая кар­та для под­клю­чения че­рез стан­дарт­ный ка­бель или DSL-мо­дем или да­же толь­ко порт USB, ес­ли у вас нет про­вод­ной свя­зи и ис­поль­зу­ет­ся 3G-бре­лок. Ес­ли вам нуж­на де­ми­ли­та­ри­зо­ван­ная зо­на (DMZ), по­тре­бу­ет­ся до­полнитель­ная се­те­вая кар­та, а так­же бес­про­вод­ная кар­та, ес­ли вы хо­ти­те, что­бы эта ко­роб­ка так­же вы­сту­па­ла в ка­че­­ст­ве точ­ки досту­па Wi-Fi. Кон­цен­тра­тор или ком­му­та­тор Ethernet, под­клю­чен­ный к пор­ту локаль­ной се­ти («зе­ле­ной»), по­зво­лит несколь­ким ком­пь­ю­те­рам од­но­вре­мен­но вы­хо­дит в Ин­тернет че­рез этот мар­шру­ти­за­тор.

[править] Ус­та­нов­ка

За­гру­зи­тесь с CD IPCop для вхо­да в тек­сто­вый ре­жим. Ес­ли вы привык­ли к гра­фи­че­­ским уста­нов­щи­кам в сти­ле OpenSUSE, Mandriva и Ubuntu, вы ощу­ти­те лег­кий шок – пе­ре­ме­щать­ся на­до кла­ви­ша­ми кур­со­ра, ва­ри­ан­ты вы­би­рать кла­ви­шей про­бе­ла и на­жи­мать Enter для про­дол­жения. Об­ра­ти­те внимание на пре­ду­пре­ж­дение на ранней ста­дии – уста­нов­щик со­трет ин­фор­ма­цию на ва­шем же­ст­ком дис­ке. Вы не мо­же­те сде­лать двой­ную за­груз­ку мар­шру­ти­за­то­ра с Windows: это од­но­за­дач­ная ма­ши­на. От­сут­ст­вие оп­ций раз­биения на раз­де­лы или вы­бо­ра па­ке­тов оз­на­ча­ет, что пе­ред уста­нов­кой де­лать осо­бо нече­го. Вы­бе­ри­те Про­пустить [Skip] на эк­ране восста­нов­ления. Сле­дую­щий шаг – вы­брать ин­тер­фейс Ethernet для «зе­ле­ной» се­ти; дру­гой ин­тер­фейс(ы) бу­дет уста­нов­лен поз­же. Обыч­но луч­ше дать уста­нов­щи­ку са­мо­му вы­брать под­хо­дя­щий ин­тер­фейс, но есть и оп­ции для руч­ной на­строй­ки, ес­ли у вас се­те­вой адап­тер с нети­пич­ны­ми на­строй­ка­ми.

По­сколь­ку мар­шру­ти­за­тор бу­дет так­же вы­сту­пать в ка­че­­ст­ве сер­ве­ра DHCP для ва­шей се­ти, он дол­жен иметь свой ад­рес, при­сво­ен­ный ста­ти­че­­ски. Ес­ли есть со­мнения, ка­кой впи­сать, впи­ши­те 192.168.1.1. Тут вам да­дут web-ад­рес для на­строй­ки; при­ми­те его к све­дению. Од­но из са­мых важ­ных ре­шений во вре­мя уста­-нов­ки – вы­бор ти­па кон­фи­гу­ра­ции се­ти; ис­то­ри­че­­ски по умол­чанию ис­поль­зу­ет­ся Ethernet для «зе­ле­ной» и мо­дем для «крас­ной» се­ти. Ес­ли ваш мо­дем под­клю­ча­ет­ся че­рез Ethernet, из­мените это на GREEN + RED. Вы­бе­ри­те ва­ри­ант ORANGE или BLUE, ес­ли вам так­же нуж­ны DMZ или бес­про­вод­ная сеть – вы мо­же­те из­менить это поз­же, ес­ли пред­по­чи­тае­те про­сто­ту и толь­ко что уста­но­ви­ли «крас­ную» и «зе­ле­ную» для на­ча­ла. За­тем нуж­но ука­зать для IPCop, что ис­поль­зо­вать для до­полнитель­ных ин­тер­фей­сов, в раз­де­ле Драй­ве­ры и кар­ты [Drivers and Card Assignments].

[править] На­строй­ка ад­ре­са

Раз­дел DNS и Gateway мож­но оста­вить пустым, ес­ли ваш мо­дем по­лу­ча­ет эту ин­фор­ма­цию от ин­тернет-про­вай­де­ра по DHCP, но раз­дел на­строй­ки DHCP от­но­сит­ся к ад­ре­сам, ко­то­рые IPCop да­ет «зе­ле­ным» и «синим» се­тям. Не­об­хо­ди­мо ука­зать диа­па­зон ад­ре­сов, из ко­то­рых IPCop мо­жет вы­брать, но оста­вить часть для тех ком­пь­ю­те­ров, ко­то­рые мо­гут ис­поль­зо­вать ста­ти­че­­ский ад­рес. Я обыч­но за­даю на­ча­ло диа­па­зо­на DHCP со 100 (192.168.1.100, ес­ли вы дае­те 192.168.1.1 для са­мо­го IPCop) и ис­поль­зую мень­шие но­ме­ра ад­ре­сов для ста­ти­че­­ских ад­ре­сов, про­сто по­то­му, что так сра­зу вид­ны ад­ре­са, раз­да­вае­мые DHCP. На этом эта­пе так­же нуж­но вклю­чить DHCP-сер­вер. Ос­нов­но­му сер­ве­ру DNS мож­но оста­вить ад­рес ком­пь­ю­те­ра IPCop – тогда IPCop станет кэ­шем DNS, уско­рив об­ра­щение к до­ме­ну, вы­зы­вае­мо­му бо­лее чем одним ком­пь­ю­те­ром – а ка­ким ком­пь­ю­те­рам в ва­шей се­ти не ин­те­ре­сен http://www.google.com или http://www.linuxformat.com? На­конец, нуж­но уста­но­вить па­ро­ли для трех поль­зо­ва­те­лей: root (обыч­но не ис­поль­зу­ет­ся, ес­ли вы не на­ме­ре­ны вхо­дить в сис­те­му из мар­ш­ру­ти­за­то­ра), admin – поль­зо­ва­тель web-ин­тер­фей­са, обыч­но ис­поль­зуе­мый для на­строй­ки, и ре­зерв­ный поль­зо­ва­тель. Те­перь вы мо­же­те уда­лить уста­но­воч­ный ком­пакт-диск и пе­ре­за­гру­зить ком­пь­ю­тер.

[править] За­пуск

По­сле пе­ре­за­груз­ки вы уви­ди­те непри­вет­ли­вое ок­но ло­ги­на, но вам оно не по­на­до­бит­ся. От­крой­те в брау­зе­ре на дру­гом ком­пь­ю­те­ре в «зе­ле­ной» се­ти и пе­рей­ди­те по ад­ре­су https://192.168.1.1:445, за­менив IP-ад­рес на тот, что был ука­зан при уста­нов­ке. Ес­ли на ком­пь­ю­те­ре, от­ку­да вы под­клю­чае­тесь, сеть бы­ла уста­нов­ле­на по­сле пе­ре­за­груз­ки мар­шру­ти­за­то­ра, мо­же­те вме­сто это­го ис­поль­зо­вать имя хоста, дан­ное при уста­нов­ке; по умол­чанию это ipcop (https://ipcop:445). Ваш брау­зер, ве­ро­ят­но, по­жа­лу­ет­ся при под­клю­чении на нена­деж­ный сер­ти­фи­кат, ко­то­рый вы при­ка­же­те ему при­нять. Это про­ис­хо­дит по­то­му, что IPCop сам генери­ру­ет сер­ти­фи­кат, и ваш брау­зер не мо­жет про­ве­рить его досто­вер­ность. Так как вы толь­ко что уста­но­ви­ли его, вы знае­те, что до­ве­рять ему мож­но.

Помните па­роль поль­зо­ва­те­ля с пра­ва­ми ад­минист­ра­то­ра, соз­дан­ный ва­ми в про­цес­се уста­нов­ки? IPCop по­зво­ля­ет про­смат­ри­вать глав­ную страницу без него, но при вы­бо­ре че­го-нибудь всплы­ва­ет за­прос па­ро­ля. Пер­вое, ку­да сле­ду­ет пе­рей­ти – это Сис­те­ма > Об­нов­ление [System > Updates], по­сколь­ку на глав­ной странице вы уви­ди­те со­об­щение о на­ли­чии об­нов­лений. На­жми­те кноп­ку Ска­чать, ко­то­рая с ви­ду ниче­го не де­ла­ет, кро­ме вывода опи­сания об­нов­лений в раз­де­ле ниже, по­это­му на­жми­те При­менить.

Ес­ли возникнет ошиб­ка, что об­нов­ления не до­ве­рен­ные, то, ве­ро­ят­но, ча­сы ва­шей сис­те­мы от­ста­ли. Это до­воль­но час­то бы­ва­ет с ма­ши­на­ми, ко­то­рые го­да­ми не ис­поль­зо­ва­лись или де­ла­ли пе­реуста­нов­ку BIOS. Пе­рей­ди­те в Сер­ви­сы > Сер­вер вре­мени [Services > Time Server] и уста­но­ви­те вре­мя вруч­ную. За­тем по­ставь­те га­лоч­ку, что­бы ис­поль­зо­вать вре­мя с сер­ве­ра, и на­жми­те Со­хранить. Вруч­ную вре­мя спер­ва при­дет­ся уста­но­вить по­то­му, что NTP не ме­ня­ет вре­мя, ес­ли раз­рыв слиш­ком ве­лик.

С это­го мо­мен­та вы бу­де­те вы­пол­нять все дей­ст­вия из web-ин­тер­фей­са. Мож­но вы­клю­чить мар­шру­ти­за­тор, от­клю­чить кла­виа­ту­ру и монитор и уб­рать их с глаз до­лой, а по­том вклю­чить мар­шру­ти­за­тор сно­ва (по­за­боть­тесь, что­бы он имел доста­точ­но воз­ду­ха для ох­ла­ж­дения). Но­вый мар­шру­ти­за­тор дол­жен те­перь пре­достав­лять DHCP- и DNS-сер­ви­сы для ва­шей локаль­ной се­ти и да­вать доступ к Ин­тернет, так что по­ра изу­чать оп­ции. Сна­ча­ла пе­рей­ди­те в Сис­те­ма > Ре­зерв­ное ко­пи­ро­вание, где мож­но соз­дать файл DAT, со­дер­жа­щий все на­строй­ки – это даст воз­мож­ность от­ка­та при неудач­но внесен­ных из­менениях. Сде­лай­те это, пре­ж­де чем на­чать экс­пе­ри­мен­ты. Мож­но да­же по кноп­ке Экс­порт за­пи­сать эти на­строй­ки на USB-бре­лок для пу­щей со­хран­но­сти.

[править] Изу­чим свой­ст­ва


IPCop пре­достав­ля­ет ряд сер­ви­сов, ко­то­рые по умол­чанию не вклю­че­ны, но сто­ят внимания и вклю­чения. Их мож­но най­ти в ме­ню Се­ви­сы [Services]: они вклю­ча­ют web-про­кси, для умень­шения тра­фи­ка и вре­мени от­кли­ка для час­то ис­поль­зуе­мых страниц, сер­вер вре­мени, ди­на­ми­че­­ский DNS для об­нов­ления ва­ше­го IP-ад­ре­са на сер­ви­сах ти­па http://www.dyndns.org, об­на­ру­жение втор­жений с по­мо­щью Snort и управ­ление тра­фи­ком. По­следнее по­лез­но, когда несколь­ко ма­шин де­лят ог­раничен­ную по­ло­су про­пускания, а вы не хо­ти­те, что­бы кто-то, ска­чи­вая ISO-об­раз Ubuntu че­рез BitTorrent, за­мед­лял ваш про­смотр фо­ру­мов по Fedora. Ус­та­но­вив при­ори­те­ты вы­со­ки­ми для пор­тов элек­трон­ной поч­ты, та­ких как 25, 110 и 143, средними для web-пор­тов 80 и 443 и низ­ки­ми для FTP (21) и BitTorrent (6881‑6999), вы мо­же­те пре­сечь за­мед­ление про­смот­ра сай­тов из-за ска­чи­вания фай­лов, не пре­пят­ст­вуя ра­бо­те поч­ты.

Мы го­во­ри­ли, что мож­но до­ба­вить сеть по­сле уста­нов­ки, но как же это сде­лать, ведь в web-ин­тер­фей­се нет та­кой оп­ции? От­вет – сде­лай­те это в команд­ной стро­ке: ли­бо непо­сред­ст­вен­но на ком­пь­ю­те­ре с IPCop (ес­ли кла­виа­ту­ра и монитор все еще при нем), ли­бо че­рез SSH-со­единение из «зе­ле­ной» се­ти. Во вто­ром слу­чае необ­хо­ди­мо вклю­чить SSH-доступ из ме­ню Сис­те­ма [System], за­тем под­клю­чить­ся к нему ко­ман­дой

ssh -p 222 root@ipcop

За­тем за­пусти­те setup, что­бы пе­рей­ти к гра­фи­че­­ско­­му ин­тер­фей­су, схо­же­му с ин­тер­фей­сом уста­нов­щи­ка, где мож­но из­менить сде­лан­ные на­строй­ки. Пе­рей­ди­те в Сеть > Из­менить тип се­ти [Network > Change Network Type] и вы­бе­ри­те GREEN + ORANGE + RED для до­бав­ления DMZ, или BLUE – для бес­про­вод­но­го сек­то­ра. По лю­бо­му, спер­ва нуж­но уста­но­вить у се­бя на ком­пь­ю­те­ре под­хо­дя­щую се­те­вую кар­ту. Пе­рей­ди­те в Драй­ве­ры и кар­ты [Drivers and Card Assignments] для но­вой се­ти, а за­тем ис­поль­зуй­те На­строй­ки ад­ре­са [Address Settings], что­бы вы­брать ад­рес для ин­тер­фей­са но­вой се­ти. Она, ско­рее все­го, бу­дет в дру­гой под­се­ти, так что ес­ли вы ис­поль­зо­ва­ли 192.168.1.1 для зе­ле­ной, ис­поль­зуй­те 192.168.2.1 для оран­же­вой. Сде­лав это­го, вы­клю­чи­те SSH – безо­пас­но­сти ра­ди.

[править] На­строй­ка DMZ

Сде­ла­ли DMZ – зна­чит, на­до ее на­стро­ить. В «оран­же­вой» се­ти нет сер­ве­ра DHCP, так что лю­бой до­бав­лен­ный здесь ком­пь­ю­тер дол­жен иметь ста­ти­че­­ский ад­рес, и это хо­ро­шо, ес­ли вы хо­ти­те ор­ганизо­вать доступ из­вне, по­то­му что нуж­но бу­дет пе­ре­на­пра­вить тра­фик на оп­ре­де­лен­ный ад­рес. Что­бы на­стро­ить доступ к web-сер­ве­ру с ад­ре­сом 192.168.2.2, пер­вым ша­гом нуж­но сде­лать пе­ре­ад­ре­са­цию пор­тов, так же, как на стан­дарт­ном мо­де­ме/мар­шру­ти­за­то­ре, толь­ко сер­вер уста­нав­ли­ва­ет­ся в DMZ. Пе­рей­ди­те к странице Бранд­мау­эр > Пе­ре­ад­ре­са­ция пор­тов [Firewall > Port forwarding]. Ис­ход­ный IP [Source IP] или Cетевая ма­ши­на [Network box] обыч­но остав­ля­ют пустым, что­бы обес­пе­чить доступ со всех внешних ад­ре­сов, но вы мо­же­те ог­раничить доступ оп­ре­де­лен­ным ад­ре­сом или диа­па­зо­ном, ес­ли хо­ти­те, что­бы ваш сер­вер был досту­пен толь­ко из од­но­го мес­та (хо­тя VPN, по­жа­луй, бо­лее при­ем­ле­мый под­ход в этой си­туа­ции). Ус­та­но­ви­те ис­ход­ный порт в 80 (HTTP), IP-ад­рес на­зна­чения – в 192.168.2.2, и на­жми­те До­ба­вить [Add], что­бы уви­деть поя­вив­шее­ся ниже пра­ви­ло. Те­перь на­жми­те Пе­реуста­но­вить [Reset] и по­вто­ри­те про­цесс для пор­та 443 (HTTPS).

Те­перь у вас есть web-сер­вер, доступ­ный из Ин­тернет и локаль­ной се­ти («зе­ле­ная» сеть), но сам он не име­ет досту­па к «зе­ле­ной» се­ти. Это оз­на­ча­ет, что ес­ли на сер­вер, или, воз­мож­но, в за­пу­щен­ный на нем код PHP про­брал­ся экс­плойт, он мо­жет по­вре­дить толь­ко се­бе, но не осталь­ным ком­пь­ю­те­рам.

[править] Про­свер­лить дыр­ку

Иногда ваш web-сер­вер дол­жен об­щать­ся с ма­ши­на­ми из зе­ле­ной се­ти – на­при­мер, рас­сы­ла­ать ре­зерв­ные ко­пии таб­ли­цы MySQL. IPCop име­ет функ­цию под на­званием DMZ pinhole, обес­пе­чи­ваю­щую ог­раничение досту­па с од­но­го ком­пь­ю­те­ра в «оран­же­вой» се­ти к од­но­му пор­ту на од­ном ком­пь­ю­те­ре из «зе­ле­ной» се­ти. Это уста­нав­ли­ва­ет­ся в Firewall > DMZ Pinholes, но ис­поль­зо­вать данную оп­цию сле­ду­ет толь­ко при необ­хо­ди­мо­сти, по­то­му что она час­тич­но на­ру­ша­ет безо­пас­ность, обес­пе­чи­вае­мую DMZ.

Есть мно­го дру­гих ве­щей, вы­пол­няе­мых с по­мо­щью IPCop, но мы рас­ска­за­ли вам доста­точ­но для то­го, что­бы на­чать ра­бо­ту. По­смот­ри­те web-ин­тер­фейс и по­чи­тай­те свя­зан­ную с ним до­ку­мен­та­цию на сай­те IPCop для по­лу­чения под­роб­ной ин­фор­ма­ции.

[править] Рас­ши­ре­ния

Ес­ли IPCop не пре­дос­тав­ля­ет все не­об­хо­ди­мые вам функ­ции, рас­ширь­те его воз­мож­но­сти до­пол­не­ния­ми. Это мо­ду­ли сто­рон­них раз­ра­бот­чи­ков; их спи­сок – в ком­плек­те со ссыл­ка­ми – име­ет­ся на сай­те IPCop. Они вклю­ча­ют URL-фильтр, ог­ра­ни­чи­ваю­щий дос­туп для кон­крет­но­го ком­пь­ю­те­ра и/или вре­ме­ни дня (на­при­мер, за­пре­тить со­труд­ни­кам тор­чать в ра­бо­чее вре­мя на сай­тах со­ци­аль­ных се­тей – а се­бе-то по­зво­лить), и улуч­шен­ный про­кси-сер­вер на ос­но­ве пе­ре­ком­пи­ли­ро­ван­но­го Squid. Есть так­же L2TP VPN, в до­пол­не­ние к вклю­чен­но­му OpenVPN по­зво­ляю­щий по­се­ти­те­лям с Windows под­клю­чать­ся к ва­шей се­ти, и еще не­сколь­ко. Спи­сок см. на http://sourceforge.net/apps/trac/ipcop/wiki/Addons.

[править] Зо­ны се­ти

Мар­шру­ти­за­тор/бранд­мау­эр вы­пол­ня­ет две основ­ные функ­ции: дать доступ в Ин­тернет из ва­шей се­ти и за­щи­тить ва­шу се­ти от несанк­циониро­ван­но­го досту­па из Ин­тернет. Для это­го сеть мож­но раз­де­лить на зоны. Две зоны при­сут­ст­ву­ют всегда: во-пер­вых, явно небезо­пас­ный Ин­тернет, а во-вто­рых, локаль­ная про­вод­ная (и до­ве­рен­ная) сеть. Не­ко­то­рым мар­ш­ру­ти­за­то­рам без­раз­лич­но, бес­про­вод­ное под­клю­чение у ком­пь­ю­те­ра или про­вод­ное, но дру­гие при­зна­ют воз­мож­ность неже­ла­тель­но­го воз­дей­ст­вия при под­клю­чении че­рез Wi-Fi и кон­троль та­ко­го досту­па.

Вам мо­жет так­же по­на­до­бить­ся ком­пь­ю­тер, к ко­то­ро­му мож­но под­клю­чать­ся из Ин­тернет, та­кой как web- или поч­то­вый сер­вер, но для него всегда есть риск ата­ки из­вне. Об­щий под­ход — пре­ду­смот­реть в се­ти де­ми­ли­та­ри­зо­ван­ную зо­ну (DMZ), доступ­ную из­вне и из­нут­ри ва­шей се­ти, но доступ ко­то­рой к до­ве­рен­ной се­ти ог­раничен или от­сут­ст­ву­ет. Это минимизирует вред, ко­то­рый спо­со­бен нанес­ти экс­плойт. IPCop да­ет ка­ж­дой из этих зон свой цвет: зе­ле­ный для локаль­ной се­ти, крас­ный для Ин­тернет, оран­же­вый для DMZ и синий – для бес­про­вод­ного сек­тора.

[править] Аль­тер­на­ти­вы

Мы вы­бра­ли IPCop, по­то­му что он ос­но­ван на Linux (мно­же­ст­во по­доб­ных па­ке­тов сде­ла­ны на ба­зе FreeBSD), по­пу­ля­рен в ис­поль­зо­ва­нии и прост в ус­та­нов­ке и управ­ле­нии. Од­на­ко это от­нюдь не един­ст­вен­ный дос­туп­ный ди­ст­ри­бу­тив бранд­мау­эра/мар­шру­ти­за­то­ра. Сре­ди аль­тер­на­тив:

  • Astaro Security Gateway (http://www.astaro.com) На ба­зе OpenSUSE, дос­туп­на сво­бод­ная и ком­мер­че­ская вер­сии, а так­же пред­ва­ри­тель­но ус­та­нов­лен­ная на обо­ру­до­ва­нии.
  • Coyote Linux (http://coyotelinux.com) Пер­во­на­чаль­но пред­став­лял со­бой бранд­мау­эр на дис­ке­те, а сей­час это не­боль­шой встраи­вае­мый ди­ст­ри­бу­тив для ма­лых и сред­них се­тей.
  • ClearOS (http://www.clearfoundation.com) Ра­нее бы­л из­весте­н как ClarkConnect; это боль­ше, чем мар­шру­ти­за­тор и бранд­мау­эр, по­сколь­ку пред­ла­га­ет раз­лич­ные сер­ве­ры в од­ной ко­роб­ке. Од­на­ко это оз­на­ча­ет, что вы те­ряе­те за­щи­ту DMZ.
  • SME Server (http://www.contribs.org) Ос­но­ван­ный на CentOS ди­ст­ри­бу­тив, обес­пе­чи­ваю­щий ра­бо­ту с фай­ла­ми, пе­чать, поч­то­вый и web-сер­ви­сы, а так­же функ­ции бранд­мау­эра и мар­шру­ти­за­то­ра.
  • SmoothWall (http://www.smoothwall.org) Со­лид­ный ди­ст­ри­бу­тив мар­шру­ти­за­то­ра в ком­мер­че­ской и сво­бод­ной вер­си­ях. IPCop пер­во­на­чаль­но был ос­но­ван на SmoothWall.
  • Zentyal (http://www.zentyal.com) Ра­нее на­зы­вал­ся Ebox. Ос­но­ван на ди­ст­ри­бу­ти­ве Ubuntu и не­обы­чен на­ли­чи­ем ра­бо­че­го сто­ла для на­строй­ки; большин­ст­во аль­тер­на­тив – обез­глав­лен­ные ко­роб­ки с web-ин­тер­фей­сом.

[править] Ро­уте­ры: Свой личный II

Часть 2 По­строй­те соб­ст­вен­ный ин­тер­нет-бранд­мау­эр и ро­утер с ну­ля, что­бы обес­пе­чить безо­пас­ность и за­од­но вы­яс­нить, как они ра­бо­та­ют.

В пер­вой час­ти мы изу­ча­ли, как с по­мо­щью IPCop, спец­ди­ст­ри­бу­ти­ва бранд­мау­эра, пре­вра­тить ста­рый ком­пь­ю­тер в Ин­тернет-шлюз и бранд­мау­эр. Для боль­шин­ст­ва лю­дей IPCop обес­пе­чи­ва­ет все, что нуж­но – осо­бен­но с до­полнитель­ны­ми мо­ду­ля­ми; но есть и та­кие, ко­му пря­мо не уснуть, ес­ли ве­ло­си­пед изо­бре­ли не они. По­это­му сей­час мы со­би­ра­ем­ся рас­смот­реть соз­дание ана­ло­гич­ных Ин­тернет-шлю­зов, но не на го­то­вом ди­ст­ри­бу­ти­ве, а с ну­ля. В пре­де­лах уро­ка мы с этим бранд­мау­эром су­ме­ем сде­лать мень­ше, чем с по­доб­ны­ми IPCop, но он бу­дет иметь два важ­ных пре­иму­ще­ст­ва. В про­цес­се ра­бо­ты его мож­но сколь угод­но рас­ши­рить, и вдо­ба­вок – на­стро­ив его са­ми, вы по­лу­чи­те бо­лее глу­бо­кое понимание то­го, что имен­но бранд­мау­эр де­ла­ет и как он ра­бо­та­ет.


Пер­вый шаг – вы­бор основ­но­го ди­ст­ри­бу­ти­ва. Тут ре­шение при­нять про­сто. Оче­вид­ный кан­ди­дат – Debian: он досту­пен в ви­де уста­но­воч­но­го ком­пакт-дис­ка (диск с чис­той уста­нов­кой), обес­пе­чи­ваю­ще­го минималь­ную сис­те­му, то есть плат­фор­му, на ко­то­рой мы по­стро­им наш ро­утер-мар­шру­ти­за­тор. Ка­кой-нибудь Ubuntu вы­ну­дил бы нас уда­лить до 90 % па­ке­тов сра­зу же по­сле уста­нов­ки – упо­вая,что уда­ле­но имен­но ненуж­ное, а не кри­ти­че­­ски важ­ное. Но за­чем во­об­ще что-то уда­лять? Так ведь лю­бая про­грам­ма яв­ля­ет­ся по­тен­ци­аль­ной уг­ро­зой безо­пас­но­сти, и в ка­ж­дую стро­ку ко­да мо­жет вце­пить­ся экс­плойт, вот мы и уста­нав­ли­ва­ем толь­ко стро­го необ­хо­ди­мое. Ста­биль­ные ре­ли­зы Debian иногда вы­смеи­ва­ют за мед­лен­ные цик­лы вы­пуска, но нам как раз и тре­бу­ет­ся про­ве­рен­ный и на­деж­ный код, ко­то­рый не бу­дет еженедель­но тре­бо­вать об­нов­ления до но­вой вер­сии. Об­нов­ления – еще од­на при­чи­на вы­брать Debian, осо­бен­но их сис­те­ма «пол­зу­чих» об­нов­лений. Еди­но­жды уста­но­вив сис­те­му, лег­ко под­дер­жи­вать ее со­от­вет­ст­вие со­вре­мен­ным тре­бо­ваниям, да­же не при­бе­гая к но­вым ре­ли­зам. Вы же не хо­ти­те по­пасть в си­туа­цию, когда вам при­дет­ся пе­реуста­но­вить мар­шру­ти­за­тор, по­те­ряв уста­нов­лен­ное Ин­тернет-соединение!

[править] Ба­зо­вая уста­нов­ка

Возь­ми­те чис­тый ди­ст­ри­бу­тив CD с http://www.debian.org/CD/netinst, за­пи­ши­те его на ком­пакт-диск и за­гру­зи­тесь с него. Вам будeт пре­достав­ле­ны на вы­бор тек­сто­вый или гра­фи­че­­ский ин­стал­ля­тор – в гра­фи­че­­ском не обой­тись без мы­ши, но функ­ции у обо­их ана­ло­гич­ные. Ус­та­нов­щик об­ша­рит все ва­ши се­те­вые кар­ты и спро­сит, ка­кие ис­поль­зо­вать для уста­нов­ки. Вы­бе­ри­те ту, что под­клю­че­на к мо­де­му, это бу­дет «крас­ная» (внеш­няя, вы­хо­дя­щая в Ин­тернет) сеть (со­храним крас­ный, оран­же­вый и зе­ле­ный цве­та для обо­зна­чения се­тей, как в слу­чае IPCop).

Когда дой­дет до раз­бив­ки на раз­де­лы, тут все ра­бо­та­ет по-дру­го­му. По­сколь­ку при вхо­де в ком­пь­ю­тер нет поль­зо­ва­те­лей, нет смыс­ла де­лать от­дель­ный раз­дел /home, но от­дель­ный /var – это от­лич­ная идея. Там хра­нят­ся дан­ные сис­тем­ных де­мо­нов, а так­же жур­на­лы. По­шед­шая враз­нос про­грам­ма или ошиб­ка мо­жет бы­ст­ро за­полнить /var/log, и вынесение это­го раз­де­ла из корневой фай­ло­вой сис­те­мы пре­дот­вра­тит непри­ят­ную си­туа­ция пе­ре­полнения /.

Ра­зум­ным бу­дет от­вес­ти по 2 ГБ на / и /var, а для раз­де­ла под­кач­ки – по­мно­жен­ный на два объ­ем ОЗУ. Ес­ли у вас доста­точ­но мес­та на дис­ке, от­дель­ная фай­ло­вая сис­те­ма для /tmp на 1 ГБ – так­же непло­хая идея, по тем же при­чи­нам, что и для /var. А ес­ли у вас мно­го опе­ра­тив­ной па­мя­ти, мо­же­те ис­поль­зо­вать для /tmp сис­те­му tmpfs, это по­вы­сит про­из­во­ди­тель­ность. Дой­дя до эк­ра­на вы­бо­ра ПО, сними­те га­лоч­ки со все­го, по­сколь­ку уста­нов­ка у нас минималь­ная. По­сле пе­ре­за­груз­ки ком­пь­ю­те­ра вой­ди­те в сис­те­му от имени root.


[править] На­строй­ка се­ти

Те­перь соз­да­дим раз­лич­ные се­те­вые ин­тер­фей­сы. Ус­та­нов­щик Debian уже на­стро­ил «крас­ный» ин­тер­фейс за вас: он ис­поль­зу­ет DHCP для за­про­са кон­фи­гу­ра­ции с мо­де­ма. Ин­тер­фей­сов Ethernet vожет быть до трех – «крас­ный», «зе­ле­ный» и «оран­же­вый» – и вы долж­ны знать, ко­то­рый ка­кой. Что­бы ка­ж­дая се­те­вая кар­та всегда по­лу­ча­ла од­но и то же имя ин­тер­фей­са, при­меним Udev – пе­ре­клю­чение eth0 и eth1 на пе­ре­за­груз­ке мо­жет стать ка­та­ст­ро­фой. Это уста­нав­ли­ва­ет­ся в фай­ле /etc/udev/rules.d/70‑persistent-net.rules.

Как пра­ви­ло, этот файл луч­ше не тро­гать, но из­менение на­званий де­ла­ет­ся имен­но там. Ка­ж­дая стро­ка при­вя­зы­ва­ет MAC-ад­рес кар­ты к имени ин­тер­фей­са, и вы мо­же­те из­менить на­звания карт пу­тем пе­ре­клю­чения имен ин­тер­фей­сов, а за­тем пе­ре­за­гру­зить­ся. Да­лее бу­дем счи­тать eth0 «крас­ным», eth1 – «зе­ле­ным» и eth2 – «оран­же­вым». Ес­ли вы из­мените имя ин­тер­фей­са для «крас­но­го», от­ре­дак­ти­руй­те /etc/network/interfaces и из­мените оба упо­ми­нания ethX.

Что­бы на­стро­ить зе­ле­ный ин­тер­фейс, от­ре­дак­ти­руй­те /etc/network/interfaces. По умол­чанию ис­поль­зу­ет­ся ре­дак­тор Nano, а для ма­зо­хи­стов пре­ду­смот­рен Vi.

nano /etc/network/interfaces

Зе­ле­но­му ин­тер­фей­су так­же по­тре­бу­ет­ся ста­ти­че­ский ад­рес, по­это­му до­ба­вим в файл сле­дую­щие стро­ки:

# Green interface
auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0

Ес­ли вы ис­поль­зуе­те DMZ, до­бавь­те ана­ло­гич­ную стро­фу с ад­ре­сом 192.168.2.1 для «оран­же­во­го» ин­тер­фей­са. Введите команду

ifup -a

для вклю­че­ния всех скон­фи­гу­ри­ро­ван­ных ин­тер­фей­сов.

[править] Ус­та­нав­ли­ва­ем ПО


По­сколь­ку мар­шру­ти­за­тор дол­жен обес­пе­чи­вать на на­шем ин­тер­фей­се DHCP- и DNS-сер­ви­сы, сле­дую­щей про­грам­мой ус­та­но­вим dnsmasq, вы­пол­няю­щую обе эти функ­ции.

apt-get install dnsmasq

apt-get install c одним или несколь­ки­ми на­звания­ми па­ке­тов уста­но­витвсеэтипа­ке­ты,а так­жеих за­ви­си­мо­сти. От­ре­дак­ти­руй­те /etc/dnsmasq.conf, что­бы уста­но­вить его, най­ди­те за­ком­мен­ти­ро­ван­ную стро­ку interface= line и ис­правь­те ее на interface = eth1 – то есть «зе­ле­ная» сеть по­лу­чит толь­ко DNS и DHCP. Ес­ли вам нуж­на DMZ, там по­на­до­бит­ся DNS, но не DHCP, так что ис­поль­зуй­те вме­сто это­го

except-interface=eth0
no-dhcp-interface=eth2

Вклю­чи­те DHCP-сер­вер и ука­жи­те диа­па­зон ад­ре­сов для ис­поль­зо­ва­ния:

dhcp-range=192.168.1.100,192.168.1.200

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

[править] Пе­ре­да­ча па­ке­тов

Те­перь у нас есть один ин­тер­фейс, под­клю­чен­ный к Ин­тернет и один под­клю­чен­ный к локаль­ной се­ти, что обес­пе­чи­ва­ет DHCP и DNS. Сле­дую­щий шаг яв­ля­ет­ся важ­ным: те­перь нам нуж­но свя­зать их вме­сте та­ким об­ра­зом, что­бы из локаль­ной се­ти был пол­ный доступ к ин­тернету, а не на­обо­рот. Пре­ж­де чем сде­лать это, мар­шру­ти­за­тор пред­по­ла­га­ет­ся «обез­гла­вить», по­это­му мы ис­поль­зу­ем apt-get install ssh для по­лу­чения уда­лен­но­го досту­па.

Нам нуж­ны уда­лен­ные вхо­ды толь­ко из «зе­ле­но­й» се­ти, по­это­му от­крой­те /etc/ssh/sshd_config и до­бавь­те стро­ку

ListenAddress 192.168.1.1

Те­перь вы мо­же­те свя­зать­ся с бранд­мау­эром с лю­бо­го ком­пь­ю­те­ра в ва­шей се­ти – ес­ли знае­те па­роль, ко­неч­но. Сле­дую­щим ша­гом яв­ля­ет­ся ус­та­нов­ка бранд­мау­эра, но сна­ча­ла мы долж­ны раз­ре­шить яд­ру пе­ре­сыл­ку па­ке­тов – это нам нуж­но, что­бы ис­поль­зо­вать ко­роб­ку в ка­че­ст­ве мар­шру­ти­за­то­ра. От­ре­дак­ти­руй­те /etc/sysctl.conf – най­ди­те сле­дую­щие две стро­ки:

# Net.ipv4.ip_forward = 1
# Net.ipv6.conf.all.forwarding = 1

Уда­ли­те # в на­ча­ле пер­вой стро­ки, а так­же во вто­рой, ес­ли вы ис­поль­зуе­те IPv6. Вы­пол­ни­те

sysctl -р

что­бы при­ме­нить из­ме­не­ния.

[править] Бранд­мау­эр

Есть мно­го Linux-про­грамм для бранд­мау­эра, но все они, по су­ти, яв­ля­ют­ся ре­дак­то­ра­ми на­стро­ек, по­то­му что сам код бранд­мау­эра, се­те­во­го фильт­ра, си­дит в яд­ре Linux. Се­те­вой фильтр кон­тро­ли­ру­ет­ся iptables, где уста­нав­ли­ва­ют­ся пра­ви­ла фильт­ра­ции. Спи­сок команд мож­но на­пи­сать вруч­ную, что даст вам мак­си­мум гиб­ко­сти – а за­од­но и по­вы­сит шан­сы по неосто­рож­но­сти от­крыть свою сеть неза­кон­но­му втор­жению; а мож­но ис­поль­зо­вать ре­дак­тор. Воз­мож­но и со­че­тание этих спо­со­бов, так как боль­шин­ст­во ре­дак­то­ров генери­ру­ют мно­же­ст­во пра­вил iptables, ко­то­рые вы мо­же­те из­менить, об­ре­тя уве­рен­ность в се­бе.


Восполь­зу­ем­ся для на­строй­ки своего бранд­мау­эра ути­ли­той Shorewall Firewall, бо­лее из­вест­ной как Shorewall (http://www.shorewall.net). Shorewall бе­рет на­бор пра­вил из груп­пы фай­лов на­строй­ки и пре­об­ра­зу­ет их в на­бор пра­вил Iptables. Пре­об­ра­зо­вание од­но­го на­бо­ра пра­вил в дру­гой мо­жет по­ка­зать­ся бес­смыс­лен­ным, но Shorewall име­ет про­стой для понимания син­так­сис, про­ве­ря­ет пра­ви­ла на ошиб­ки пе­ред ком­пи­ля­ци­ей пра­вил Iptables и, что для нас глав­ное, по­став­ля­ет­ся с ря­дом го­то­вых кон­фи­гу­ра­ций – в том чис­ле па­рой та­ких, ко­то­рые точ­но со­от­вет­ст­ву­ют на­шим по­треб­но­стям. Вер­сия Shorewall из Debian Lenny (5.0) до­воль­но ста­ра, но пре­ду­смот­ре­но пор­ти­ро­вание па­ке­та для бо­лее но­вой вер­сии, Squeeze (6.0). До­бавь­те сле­дую­щие стро­ки в /etc/apt/sources.list:

deb http://people.connexer.com/~roberto/debian/lenny main
deb-src http://people.connexer.com/~roberto/debian/lenny main

За­тем вы­пол­ни­те:

gpg --keyserver keyring.debian.org --recv-key 63E4E277
gpg --export -a 63E4E277 | apt-key add -
apt-get update
apt-get install shorewall

Пер­вые две стро­ки до­ба­вят ключ GPG для про­вер­ки под­лин­но­сти па­ке­тов; за­тем мы об­нов­ля­ем спи­ски па­ке­тов и уста­нав­ли­ва­ем па­кет shorewall. Сде­лать это важ­но, по­то­му что кон­фи­гу­ра­ция для се­рии 4.4 от­ли­ча­ет­ся от вер­сии в Debian Lenny.

[править] Ус­та­но­вим границы

Стан­дарт­ные на­строй­ки хра­нят­ся в /usr/share/doc/shorewall/examples, по пап­ке для ка­ж­до­го ти­па уста­нов­ки. Для стан­дарт­но­го бранд­мау­эра с дву­мя ин­тер­фей­са­ми, «крас­ным» под­клю­чением к Ин­тернет и «зе­ле­ным» для LAN, ско­пи­руй­те со­дер­жи­мое пап­ки two-interfaces в ка­та­лог /etc/shorewall. Файл Shorewall.conf упа­ко­ван ар­хи­ва­то­ром gunzip; рас­па­куй­те его, пе­ре­за­пи­сав пре­ды­ду­щий shorewall.conf.

Shorewall ис­поль­зу­ет кон­цеп­цию зон – ка­ж­дая оп­ре­де­ля­ет один сег­мент се­ти – за­тем ис­поль­зу­ет по­ли­ти­ки и пра­ви­ла, опи­сы­ваю­щие взаи­мо­дей­ст­вие зон. Файл zones – это спи­ски зон, здесь оп­ре­де­ле­ны три: fw – сам бранд­мау­эр, а loc и net – две зо­ны се­ти. Ес­ли хо­ти­те, пе­ре­име­нуй­те net и loc в «крас­ный» и «зе­ле­ный», но тогда при­дет­ся ре­дак­ти­ро­вать и дру­гие фай­лы, что­бы при­вес­ти в по­ря­док ссыл­ки на эти зо­ны. Файл interfaces при­сваи­ва­ет зо­ны ка­ж­до­му из ин­тер­фей­сов; здесь eth0net («крас­ная» зо­на), а eth1loc («зе­ле­ная» зо­на). Ес­ли вы на­строи­ли Ин­тернет- и LAN-со­единения ина­че, от­ре­дак­ти­руй­те эти фай­лы со­от­вет­ст­вен­но.

По­ли­ти­ки по умол­чанию о том, что мо­жет де­лать ка­ж­дая зо­на, оп­ре­де­ле­ны в фай­ле policy: по умол­чанию loc' име­ет доступ к net, но не на­обо­рот. Од­на­ко ничто не оп­ре­де­ле­но для зо­ны fw, а зна­чит, вы не мо­же­те под­клю­чить­ся к са­мо­му бранд­мау­эру, да и бранд­мау­эр не мо­жет под­клю­чить­ся к Ин­тернету. Пер­вое необ­хо­ди­мо для на­строй­ки бранд­мау­эра че­рез SSH, а ком­пь­ю­те­ры ва­шей локаль­ной се­ти долж­ны под­клю­чать­ся к нему для по­лу­чения сер­ ви­сов DHCP и DNS. По­следнее необ­хо­ди­мо по­то­му, что вы долж­ны быть в со­стоянии при­менить об­нов­ления для сис­те­мы безо­пас­­но­сти с apt-get (или за­ве­ди­те у се­бя в се­ти локаль­ный кэш apt). Ис­пра­вим си­туа­цию, до­ба­вив та­кие пра­ви­ла в /etc/shorewall/policy:

loc $FW ACCEPT
$FW loc ACCEPT
$FW net ACCEPT

Пер­вые два обес­пе­чи­ва­ют доступ из локаль­ной се­ти к бранд­мау­эру и на­обо­рот, а третье по­зво­ля­ет бранд­мау­эру под­клю­чать­ся к Ин­тернет. За­ме­тим, что они при­ме­ня­ют­ся толь­ко к пунк­там на­зна­чения па­ке­тов: ком­пь­ю­тер в локаль­ной се­ти мож­но под­клю­чить к Ин­тернету че­рез бранд­мау­эр, да­же ес­ли ему нель­зя под­клю­чать­ся к са­мо­му бранд­мау­эру. Ес­ли вы не хо­ти­те обес­пе­чи­вать пол­ный доступ к бранд­мау­эру из локаль­ной се­ти, опусти­те пер­вые две строч­ки и соз­дай­те кон­крет­ные пра­ви­ла для сер­ви­сов, ко­то­рые хо­ти­те раз­ре­шить; их мы ско­ро рас­смот­рим.

Для ба­зо­вой кон­фи­гу­ра­ции это­го доста­точ­но, но скрипт init Debian не станет за­пускать Shorewall, по­ка вы не ска­же­те ему, что кон­фи­гу­ра­ция соз­да­на (что­бы не дать вам по ошиб­ке за­пустить от­кры­тую и небезо­пас­ную кон­фи­гу­ра­цию по умол­чанию). От­ре­дак­ти­руй­те /etc/default/shorewall, из­менив startup = 0 на startup = 1, за­тем в /etc/shorewall/shorewall.conf из­мените STARTUP_ENABLED на Yes. Те­перь за­пусти­те

/etc/init.d/shorewall start

Это не­об­хо­ди­мо толь­ко при из­ме­не­нии кон­фи­гу­ра­ции – при пе­ре­за­груз­ке мар­шру­ти­за­то­ра shorewall за­пус­ка­ет­ся ав­то­ма­ти­че­ски. Хо­тя Shorewall за­пус­ка­ет­ся из скрип­ту init, это не фо­но­вый сер­вис – скрипт про­чтет фай­лы в /etc/shorewall, ус­та­но­вит пра­ви­ла бранд­мау­эра и за­вер­шит­ся. Вы мо­же­те про­смот­реть пра­ви­ла, ко­то­рые Shorewall ус­та­нав­ли­ва­ет, за­пус­тив

iptables -L

[править] Пра­ви­ла, пра­ви­ла и пра­ви­ла

Что­бы ком­пь­ю­те­ры по­за­ди бранд­мау­эра мог­ли свя­зать­ся с уда­лен­ны­ми сер­ве­ра­ми и по­лу­чать от тех от­ве­ты, вы долж­ны ис­поль­зо­вать IP-мас­ки­ров­ку. Это уста­нав­ли­ва­ет­ся в /etc/shorewall/masq. Файл по умол­чанию в при­ме­ре с дву­мя ин­тер­фей­са­ми ра­бо­та­ет, ес­ли ваш «крас­ный» ин­тер­фейс eth0 – ес­ли нет, сде­лай­те со­от­вет­ст­вую­щие из­менения в этом фай­ле.

Ес­ли вы хо­ти­те до­ба­вить пра­ви­ла, раз­ре­шаю­щие доступ DHCP из локаль­ной се­ти, или HTTP-доступ из Ин­тернет, это де­ла­ет­ся в /etc/shorewall/rules. Что­бы раз­ре­шить доступ к web-сер­ве­ру (Порт 80) на 192.168.1.2 (ва­ши сер­ве­ры долж­ны иметь ста­ти­че­­ские IP-ад­ре­са), до­бавь­те сле­дую­щие стро­ки в файл с пра­ви­ла­ми:

#ACTION SOURCE DEST PROTO
DNAT net loc:192.168.1.2:80 tcp

Они ве­лят ис­поль­зо­вать DNAT для пе­ре­на­прав­ле­ния со­еди­не­ния от се­те­вой зо­ны к пор­ту 80 на сер­ве­ре. Есть бо­лее про­стой спо­соб сде­лать это для мно­гих сер­ви­сов, так как Shorewall пред­ла­га­ет для это­го мак­рос:

HTTP(DNAT) net loc:192.168.1.2

Ес­ли за­ме­нить HTTP на web, од­но пра­ви­ло бу­дет от­ве­ча­ет и за HTTP-, и HTTPS-тра­фик – а от web-сер­ве­ра обыч­но это и тре­бу­ет­ся. Спи­сок дос­туп­ных мак­ро­сов мож­но по­лу­чить ко­ман­дой

shorewall show macros


Ес­ли вы хо­ти­те за­ме­нить толь­ко что соз­дан­ные гло­баль­ные по­ли­ти­ки дос­ту­па из LAN в бранд­мау­эр, мож­но до­ба­вить в файл пра­вил rules стро­ки, раз­ре­шаю­щие DNS- и DHCP-со­еди­не­ния (SSH уже вклю­че­но в пра­ви­ла по умол­ча­нию):

DNS(ACCEPT) loc $FW
DHCPfwd(ACCEPT) loc $FW

По­сле из­ме­не­ния лю­бо­го из фай­лов на­строй­ки Shorewall тре­бу­ет­ся пе­ре­за­пуск:

/etc/init.d/shorewall restart

[править] До­бавь­те DMZ

Ес­ли вы хо­ти­те за­пустить сер­вер в DMZ – ко­то­рую IPCop обо­зна­ча­ет оран­же­вым – ис­поль­зуй­те фай­лы на­строй­ки из ка­та­ло­га three-interfaces examples. Ус­та­нов­ка при­мер­но та­кая же, как опи­са­но вы­ше; толь­ко здесь дру­гая зо­на, под на­званием dmz, ко­то­рой от­ве­ден ин­тер­фейс eth2. Пра­ви­ла по умол­чанию не обес­пе­чи­ва­ют ника­кой пе­ре­сыл­ки из Ин­тернета в DMZ, так что вам необ­хо­ди­мо до­ба­вить пра­ви­ла пе­ре­ад­ре­са­ции из Ин­тернет и локаль­ной се­ти в DMZ, та­кие как

Web(DNAT) net dmz:192.168.3.2
Web(ACCEPT) loc dmz:192.168.3.2

Об­ра­ти­те внимание, что для Ин­тернет-пра­ви­ла ис­поль­зу­ет­ся DNAT, по­то­му что тут нуж­но ис­поль­зо­вать пре­об­ра­зо­вание се­те­вых ад­ре­сов, а для за­про­сов из локаль­ной се­ти – обыч­ное ACCEPT.

Это все­го лишь по­верх­но­ст­ное зна­ком­ст­во с воз­мож­ны­ми при­менения­ми ва­ше­го лич­но­го мар­шру­ти­за­то­ра. По­ин­те­ре­суй­тесь ис­поль­зо­ванием logrotate для сжа­тия фай­лов жур­на­лов, а мо­жет, чем-то вро­де logwatch – для соз­дания еже­днев­ных об­зо­ров по жур­на­лам и от­прав­ке их вам элек­трон­ной по­чтой. Глав­ные страницы раз­лич­ных про­грамм со­дер­жат мно­го ин­фор­ма­ции, как и сайт Shorewall.

Су­ще­ст­ву­ет еще мас­са воз­мож­но­стей даль­ней­шей на­строй­ки. А мож­но про­сто до­бить­ся ра­бо­ты, по­ло­жить его на пол­ку и за­быть о нем (кро­ме про­вер­ки об­нов­ле­ний для сис­те­мы безо­пас­но­сти, ко­неч­но). Что бы ни пред­по­чли, вы те­перь луч­ше раз­би­рае­тесь в мар­шру­ти­за­то­рах и бранд­мау­эрах, и мы на­де­ем­ся, что про­цесс по­зна­ния то­же дос­та­вил вам удо­воль­ст­вие.

[править] Нет Ethernet?

Ес­ли вы не ис­поль­зуе­те ка­бель­ный или ADSL-мо­дем че­рез Ethernet, вы все рав­но мо­же­те при­дер­жи­вать­ся опи­сан­ной здесь ус­та­нов­ки, про­сто нуж­но кое-что из­ме­нить. В фай­ле ин­тер­фей­сов Shorewall на­значь­те eth0 для ин­тер­фей­са loc, а уст­рой­ст­во, ис­поль­зуе­мое ва­шим ин­тер­нет-со­еди­не­ни­ем, ска­жем, ppp0 – для ин­тер­фей­са net. Сде­лай­те такие же под­ста­нов­ки для всех дру­гих вхо­ж­де­ний eth0 или eth1. Так­же мо­жет по­на­до­бить­ся до­ба­вить init-скрипт для за­пус­ка се­те­во­го со­еди­не­ния. На­при­мер, ес­ли у вас PPP-со­еди­не­ние (те­ле­фон­ный или бес­про­вод­ной 3G-мо­дем), нуж­но за­пус­тить wvdial или pon, для за­пус­ка обыч­ным спо­со­бом.

Персональные инструменты
купить
подписаться
Яндекс.Метрика