LINUX-BG Адрес : http://www.linux-bg.org |
Проста защитна стена. |
От: Yordan Georgiev Публикувана на: 26-10-2004 Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=366268001 |
Как да си направим защитна стена за по малко от пет минути ! ВНИМАНИЕ: Статията е предназначена за начинаещи ! На дадения момент чета една много интересна книга – Сърварни хакове за Линукс, с автор Роб Фликенджър и издателство O’Reilly. Четейки си тази увлекателна книга (препоръчвам на всички, имащи възможността, да си я закупят – преведена е на български и издадена от издателство ЗеСТ Прес) стигнах до Хак #45 “Създаване на защитна стена от команден ред на всеки сървар”. На кратко е описан един шел скрипт, с чиято помощ можем за раздавам достъп до машината си. Използват се три основни “групи” потребители: 1.Потребители от който ще приемем всичкия трафик. Тези машини и мрежи ще запишем в whitelist. 2.Потребители на които ще откажем достъпа до машината ни. Въвеждаме ги в blacklist. 3.И третата група са всички останали. На тези потребители ще дадем достъп, но само н определени портове, които ще запишем в allowed. Преди да продължа искам да спомена как ще записваме потребителите. За всяка една група създаваме текстови файл. Аз го права така: •Създавам директорията /etc/myfirewall •Съответно за всяка група по един текстови файл със съответното има. В резултат на което трябва да имаме: /etc/myfirewall/witelist.txt /etc/myfirewall/blacklist.txt /etc/myfirewall/allowed.txt И последно преди да покажа самия скрипт, нека да видим, как ще използваме тези текстови (конфигурационни) файлове. В първите два ще ни се налови да въвеждаме машини и мрежи. Това става като на всеки ред, въвеждаме дадената машина или мрежа Пример: #192.168.0.1 192.168.10.5 192.168.5.0/26 В този пример виждаме следното. Първия ред започва с #, което означава, че няма да играе в настройките. Всеки такъв ред в “коментар”. Втория показва, как се въвежда машина и последни как става това с мрежа. Във файла allowed въвеждаме портовете, който трябва да са достъпни от потребителите, не участващи в горните два файла. Ето и самия скрипт, който използва iptables: #!/bin/sh whitelist=/etc/myfirewall/witelist.txt blacklist=/etc/myfirewall/blacklist.txt allowed=/etc/myfirewall/allowed.txt # iztriwame predi6nite nastroiki iptables –F #obhojadme whitelist, priemaiki celiqt trafik ot mrejite i ma6inite w spisaka for white in `grep –v ^# $whitelist | awk ‘{print $1}’`; do echo “Permitting $white…” iptables –A INPUT –t filter –s $white –j ACCEPT done #obhojadme blacklist, othwarlqiki celiqt trafik ot mrejite i ma6inite w spisaka for black in `grep –v ^# $blacklist | awk ‘{print $1}’`; do echo “Blocking $black…” iptables –A INPUT –t filter –s $black –j DROP done # i nakraq portowete pozwoleni za ma6inite koito ne sa w spisaka na lo6ite mom4eta for port in `grep –v ^# $allowed | awk ‘{print $1}’`; do echo “Accepting port $port…” iptables –A INPUT –t filter –p tcp --dport $port –j ACCEPT done #oswen ako ne se spomenawa po-gore I stawa wapros #za whodq6ta zaqwka za startirane na wrazka, prosto q otkazwame. iptables –A INPUT –t filter –p tcp --syn –j DROP Е това е скрипта, състой се само от 18 реда – какво по лесно от това. Става за домашна употреба и не само. Искам да обърна внимание и на още някои неща: 1.За използването на iptables са необходими root права. Ако искате да стартирате скрипта от друг потребител се консултирайте с “man sudo” 2.Обърнете внимание и кой има достъп и какъв до конфигурационните файлове. 3.Както се казва в книгата, от която е цитата, прилагайте въображение и променяйте хаковете. Моят принос за този хак е използването на файл за портовете (преди това бяха в променлива и ми се стори, че по-удачно е да са във файл). И накрая искам да ви дам една задачка. Какво ще стане , ако прибавим в скрипта iptables –t nat –A POSTROUTING –o $EXT_IFACE –j MASQUERADE Отговора е ШЛЮЗ. Очаквам въпроси, обиди и каквото ви дойде на ум. Йордан Георгиев – GigaVolt E-mail: gigavolt@abv.bg WEB:http://gigavolt.hit.bg << САГА ЗА POSIX или УВОД В POSIX'ИВИЗМА | Slackware и Promise FastTrak 378 RAID контролер >> |
Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук,
но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора,
както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.
All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
|