Skocz do zawartości

[BSD] Kompilacja & konfiguracja IPF aka IP.filter


Badar

Rekomendowane odpowiedzi

Witam Szanowną administrację & Moderatorów tego działu mpc forum =).!

 

Cały proces postaram się opisać w kilku prostych & zrozumiałych krokach =) . Zaczynamy ! =).

 

Kompilacja & autostart

 

 

 

1) Logujemy się po przez SSH (Secure Shell) do naszej maszyny wirtualnej / dedyka .

 

2) Wchodzimy do :

 sysinstall --> configure --> distributions --> src --> sys --> wybieramy --> przechodzimy do FTP --> wybieramy main site --> czekamy aż się pobierze . 

 

3) W zależności od wersji systemu (i386 lub amd64) wchodzimy do następującej ścieżki :

 

amd64 :

 

cd /usr/src/sys/amd64/conf

 

i386 :

 

cd /usr/src/sys/i386/conf

 

4) Kopiujemy jądro generica na własne

cp GENERIC nazwa-jądra np cp GENERIC Badar

 

5) Edytujemy nasze nowe jądro po przez edytor "ee" i dopisujemy opcje IPF'a . Np

ee Badar

 

options[TAB][TAB]IPFILTER
options[TAB][TAB]IPFILTER_LOG
options[TAB][TAB]IPFILTER_DEFAULT_BLOCK

 

6) Zapisujemy plik i wprowadzamy następującą komendę :

 

 cd /usr/src && make buildkernel KERNCONF=Nazwa-Jądra

Gdy już proces się zakończy, wpisujemy :

make installkernel KERNCONF=Nazwa-Jądra

7) Edytujemy rc.conf .Dam Wam to dla wygody w formie komendy "echo"

echo '
ipfilter_enable="YES"             # Start ipf firewall
ipfilter_rules="/etc/ipf.rules"   # loads rules definition text file
ipmon_enable="YES"                # Start IP monitor log
ipmon_flags="-Ds"                 # D = start as daemon
                                 # s = log to syslog
                                 # v = log tcp window, ack, seq

                                 # n = map IP & port to names' >> /etc/rc.conf

 

Na waszym miejscu wkleiłbym taką długą zawartość w skrypt *.sh i odpalił :).

 

Regułki IPF

 

 

 

 

Wszystkie reguły tego firewalla zapisane są w pliku ipf.rules . Podstawowe reguły przepuszczające każde połączenie na każdym protokole sieciowym :

 

 

############# Rulki IPF########################
karta="wasza-karta-sieciowa"          
odns="adres-serwera-dns"    
ip="wasze-ip"     
ks="keep state"
fks="flags S keep state"

pass in quick on lo0 all #lo0 - podstawowa karta lokalna (loopback)
pass out quick on lo0 all #lo0 - podstawowa karta lokalna (loopback)
pass in quick on em0 all #em0 - moja karta, zmieńcie na swoją (jeśli inna)
pass out quick on em0 all #em0 - moja karta, zmieńcie na swoją (jeśli inna)
pass in quick on em1 all #em1 - moja karta, zmieńcie na swoją (jeśli inna)
pass out quick on em1 all #em1 - moja karta, zmieńcie na swoją (jeśli inna)

########################################################

 

Przykłady pisania własnych reguł :

 

- podstawowa regułka, która odblokuje nam wybrany port :

pass in quick on dc0 proto tcp from any to any port = 22 flags S keep state

 

wyjaśnienie :

-----------------------------------

pass in quick on dc0 - przepuszczanie na karcie dc0 (oczywiście dc0 zamieniamy na swoją kartę)

 

proto tcp -protokół sieciowy tcp, na którym port ma być otwarty (można jednocześnie użyć kilku np tcp/udp)

 

from any to any port = 22 - z "nikąd" do "nikąd" (nie ma ograniczenia na konkretne adresy IP, każdy adres IP widzi ten port jako aktywny), port po znaku równości możemy zmienić na własny .

 

flags S - używamy tego jedynie w przypadku protokołu TCP w przypadku UDP lub ICMP stosujemy samo : keep state

 

in / out - połączenie wychodzące / wchodzące

------------------------------------------------------------

 

 

 

 

IPmon

 

 

 

1) Tworzymy plik dla logów :

touch /var/log/ipfilter.log

 

2) Nadajemy mu "prefix" security :

security.* /var/log/ipfilter.log

 

 

 

Dodatki

 

 

 

 

Blokada skanu i nasłuchu portów :

 

Dopisujemy te dwie linijki do reguł IPF'a :

net.inet.tcp.blackhole=2
net.inet.tcp.blackhole=1

 

Plik logowań IPF'a :

 

Edytujemy plik :

ee /etc/syslog.conf

 

Dopisujemy tam :

 

 local0.* /var/log/firewall/firewall_logs
/var/log/firewall/firewall_logs 600 14 1000 * Z 

 

 

 

To tyle, ostatnia aktualizacja : 20.02.2012 .

 

 

Zakaz kopiowania !

 

Pozdrawiam .

Odnośnik do komentarza

No no kolega ;>

 

Pisałeś na Gadu że ma na razie 600 linijek i wg ja czekałem ;p

 

Co to tematu.

 

Z początku nie Kumałem o co biega wg Magia według mnie.

 

Poczytałem pomyślałem

 

I teraz uważam że dużo osobą się to przyda na forum.

 

Po sobie zostawiam + i 5.

 

Pozdrawiam.

1355920968-U274371.jpg

 

Obiecanki Cacanki z 2008 roku

:D

Odnośnik do komentarza
  • 2 tygodnie później...

Witam Szanowną administrację & Moderatorów tego działu mpc forum =).!

 

Cały proces postaram się opisać w kilku prostych & zrozumiałych krokach =) . Zaczynamy ! =).

 

Wstęp -- czyli od czego musimy zacząć by odpowiednio skonfigurować & skompilować IP.filter =) .

 

 

1) -- Logujemy się po przez SSH (Secure Shell) do naszej maszyny wirtualnej / dedyka -- polecam do tego program putty (DL w osobnym spoilerze) =).

 

2) -- Wchodzimy do :

 sysinstall --> configure --> distributions --> src --> sys --> wybieramy --> przechodzimy do FTP --> wybieramy main site --> czekamy aż się pobierze . 

 

3) -- Wpisujemy następującą komendę :

 ee /usr/src/sys/conf/NOTES .

.

 

4) -- W otwartym unixowym edytorze na samym końcu dopisujemy następujące linijki jedna pod drugą . :

options IPFILTER   options IPFILTER_LOG   options IPFILTER_DEFAULT_BLOCK

 

5) -- Wychodzimy po przez użycie klawisza "Esc" i zapisujemy po przez "save chalangers" .

 

6) -- Edytujemy plik /etc/rc.conf po przez następującą komendę : .

ee /etc/rc.conf

 

7) -- Dopisujemy tam następujące linijki :

 ipfilter_enable="YES" & ipfilter_flags=""

 

To na tyle, jeśli chodzi o wstęp -- lecimy dalej .! =) .

 

 

Konfiguracja reguł firewalla IPF aka IP.filter -- czyli jak użyć go poprawnie by mógł robić swoje =) - początkujący .

 

 

1) -- Stworzymy plik z regułami tego pięknego modułu, po przez wpisanie następującej komendy. :

ee /etc/ipf.rules

 

2) -- Dostosowujemy go sobie pod swoje potrzeby, dam Wam kilka przykładów jak i niezbędnych reguł =) .

 

a ) -- puszczamy cały ruch sieciowy na swojej karcie w unixie (sprawdzić ją możecie w sysinstall --> configure --> networking) -- ja dam na przykładzie swojej =)

 

pass out quick on rl0 proto tcp from any to any keep state
pass out quick on rl0 proto udp from any to any keep state
pass out quick on rl0 proto icmp from any to any keep state
block out quick on rl0 all

 

legenda : rl0 -- moja karta sieciowa (Wy możecie mieć inną) , tcp -- protokół sieciowy IPv4 , udp -- protokół sieciowy IPv4, icmp -- protokół sieciowy IPv4

 

B ) -- Puszczamy cały ruch wejściowy na interfejsie wewnętrznym xl0 -- jest to nie zbędne, by unix poprawnie łączył się z siecią internetową .

 

pass in quick on ep0 proto tcp from any to any keep state
pass in quick on ep0 proto udp from any to any keep state
pass in quick on ep0 proto icmp from any to any keep state
block in quick on ep0 all 

 

c ) -- Puszczamy cały ruch wyjściowy na interfejsie wewnętrznym xl0 -- jest to nie zbędne, by unix poprawnie łączył się z siecią internetową

pass out quick on xl0 proto tcp from any to any keep state
pass out quick on xl0 proto udp from any to any keep state
pass out quick on xl0 proto icmp from any to any keep state
block out quick on xl0 all 

 

d ) -- Na koniec puszczamy wszystko na interfejsie pętli zwrotnej czyli lo0 - również niezbędna operacja.

 

pass in quick on lo0 all
pass out quick on lo0 all 

 

e ) -- Do naszych regułek dopisujemy podstawowe usługi : - jest to potrzebne by prawidłowo połączyć się przez ssh etc

 

 pass in quick on rl0 proto tcp from any to twoje IP z ipconfig port = ssh flags S keep state keep frags
pass in quick on rl0 proto tcp from any to twoje IP z ipconfig port = smtp flags S keep state keep frags
pass in quick on rl0 proto tcp from any to twoje IP z ipconfig port = domain flags S keep state keep frags
pass in quick on rl0 proto udp from any to twoje IP z ipconfig port = domain keep state keep frags
pass in quick on rl0 proto tcp from any to twoje IP z ipconfig port = http flags S keep state keep frags
pass in quick on rl0 proto tcp from any to twoje IP z ipconfig port = pop3 flags S keep state keep frags

 

Po tych operacjach zapisujemy nasz plik z regułami i restartujemy maszynę komendą shutdown -r now .

 

 

Konfiguracja reguł firewalla IPF aka IP.filter -- czyli jak użyć go poprawnie by mógł robić swoje =) - zaawansowany .

 

 

1) -- Do pliku /etc/rc.conf dopisujemy następujące linijki -- by umożliwić logowanie przez syslogd

ipmon_enable="YES" & ipmon_flags="-Dsvn"

2) -- Wracamy do edycji naszego pliczku z regułami IPF

 

3) -- Uniemożliwiamy skanowanie portów -- by to uczynić dopisujemy następujące reguły :

net.inet.tcp.blackhole=2 & net.inet.udp.blackhole=1

4) -- Tworzymy plik monitorujący i zapisujący logowane pakiety syslogd, po przez następującą komendę :

ee /etc/syslog.conf

5) -- Dopisujemy tam następujące linijki jedna pod drugą jak zawsze -- w ten sposób logowane pakiety pojawią się w owym pliku :

 local0.* /var/log/firewall/firewall_logs & /var/log/firewall/firewall_logs 600 14 1000 * Z 

6) -- Do regułek naszego IPF dopisujemy następujące adresy IP, które nie powinny się pojawić na naszym unixie :

block in quick on rl0 from 192.168.0.0/16 to any #RFC 1918 private IP
block in quick on rl0 from 172.16.0.0/12 to any #RFC 1918 private IP
block in quick on rl0 from 10.0.0.0/8 to any #RFC 1918 private IP
block in quick on rl0 from 127.0.0.0/8 to any #loopback
block in quick on rl0 from 0.0.0.0/8 to any #loopback
block in quick on rl0 from 169.254.0.0/16 to any #DHCP auto- config
block in quick on rl0 from 192.0.2.0/24 to any #reserved for doc's
block in quick on rl0 from 204.152.64.0/23 to any #Sun cluster interconnect
block in quick on rl0 from 224.0.0.0/3 to any #Class D & E multicast

7) -- Do naszych regułek dopisujemy podstawowe usługi : -- jeżeli zrobiliśmy to w części dla początkujących, to pomijamy ten punkt

 pass in quick on rl0 proto tcp from any to twoje IP z ipconfig port = ssh flags S keep state keep frags
pass in quick on rl0 proto tcp from any to twoje IP z ipconfig port = smtp flags S keep state keep frags
pass in quick on rl0 proto tcp from any to twoje IP z ipconfig port = domain flags S keep state keep frags
pass in quick on rl0 proto udp from any to twoje IP z ipconfig port = domain keep state keep frags
pass in quick on rl0 proto tcp from any to twoje IP z ipconfig port = http flags S keep state keep frags
pass in quick on rl0 proto tcp from any to twoje IP z ipconfig port = pop3 flags S keep state keep frags

 

8) -- Dla pozostałych połaczeń tcp zwracamy RST :

block return-rst in log quick on rl0 proto tcp from any to any
# Dla udp zwracamy komunikat o nieosiągalności portu i logujemy
block return-icmp-as-dest(port-unr) in log quick on rl0 proto udp from any to any
# Reszcze blokujemy i logujemy
block in log quick on rl0 all 

 

 

 

 

Ipnat -- czyli translacja adresów, by móc korzystać z łącza internetowego =)

 

 

1) -- Do pliku /etc/rc.conf dopisujemy następującą linijkę :

ipnat_enable="YES"

2) -- Do naszych regułek dopisujemy następującą linijkę : twoje IP z ipconfig/32 (w Tych IP wpisujecie swoje IP z sysinstall / ifconfig -- to tylko przykład)

map rl0 169.255.0.0/16 

 

tłumaczenie : 169.255.0.0/16 - 169 - pierwsze trzy cyfry IPv4, reszta to maska podsieci, /16 - pierwsze 2 cyfry IPv4 adress

 

 

 

Własne drobne konfiguracje -- Czyli jak dodać swoje porty etc =) - średnio zaawansowany (tego nie ogarniesz - nie bierz się za resztę .

 

 

 

1) -- Jak do regułek dodać nowy port --

 pass in quick on rl0 proto tcp from any to twoje IP z ifconfig port = NR portu flags S keep state keep frags

 

2) -- Jak zablokować nie chciane IP --

block in quick on twoja karta sieciowa from IP delikwenta to any #RFC 1918 private IP

 

 

 

Jak działa IPF i z czym współpracuje =) -- czyli co to wgl jest i po co jest ;d.

 

 

IPF czyli IP filter, jest jednym z 3 firewalli . Współpracuje np z IPFW .

 

Definicja wg twórcy :

 Nie pisany pod konkretny system. Można go znaleźć również w NetBSD, OpenBSD, 
SunOS™, HP/UX, oraz Solaris™. Pierwotnie pisany jako bezstanowy, obecnie zawiera 
również reguły stanowe. Bardziej zaawansowane funkcje są defaultowo są
dezaktywowane co pociąga za sobą wysokie bezpieczeństwo.

 

Jest to świetne zabezpieczenie, które wymaga nie lada pracy, ale opłaca się to . Dlaczego ? Gdyż bezpieczeństwo przede wszystkim .! =)

 

 

 

To w sumie na tyle, Pozdrawiam Was gorąco i życzę sukcesów -- Wasz Badarek ; ) .

 

P.S : Kompilacja tego wymaga skupienia i odrobiny myślenia =).! - mam nadzieję, iż się przyda .! =) .

Tak dla potomnych =)

A btw, to dodaj, że na Jailu tego nie skompilujesz, chyba, że z poziomu głównego :)

1314471493-U382249.png

Odnośnik do komentarza

No ja również, ale tak dla pewności.

Znam niektórych, co po instalacji pythona nie mogli serwera odpalić xD

 

 

No co Ty ? xD .

 

Lol, to już mistrze są xD.

 

Ogarnij to xD.

 

http://screenshooter.net/2941521/wnfrnby

 

http://screenshooter.net/2941521/uhqydtx

 

Ten to master..;d

Odnośnik do komentarza
  • 1 miesiąc temu...

Dobra Firewall czy cos sie dowiedzialem nie jak bym był Zielony to nawet nie umial bym napisac regulki nie dodales nawet zabezpieczenia przed DDOS ale to twoja sprawa po 2 Wystarczy 1 Wpis do IPFW + Dobry PF i to styka w całosci ale jesli wolisz albo wolicie nawalic sobie smieci to wasza sprawa dogrywanie czegos co sie nie przydaje jest smieszne. Lepiej miec najebane huj wie czego i myslec ze jest wszystko dobrze.to na tyle

Wiem kto jest swój, a kto zwykły pedał
Intel Xeon E5 1650 v2 16GB Ram 1 TB SSD 2x D500 3GB

 

Odnośnik do komentarza

Dobra Firewall czy cos sie dowiedzialem nie jak bym był Zielony to nawet nie umial bym napisac regulki nie dodales nawet zabezpieczenia przed DDOS ale to twoja sprawa po 2 Wystarczy 1 Wpis do IPFW + Dobry PF i to styka w całosci ale jesli wolisz albo wolicie nawalic sobie smieci to wasza sprawa dogrywanie czegos co sie nie przydaje jest smieszne. Lepiej miec najebane huj wie czego i myslec ze jest wszystko dobrze.to na tyle

 

Konradzie, wiem, że źle to wtedy opisałem, mogłem się bardziej wysilić, ale wtedy chciałem robić za "karierowicza" . W wolnym czasie to od nowa napisze, ale znacznie porządniej : > .

 

Masz rację, ale nie którzy wolą być bardziej przezorni =). Nawet przy okazji dam tutka o PF ;p .

 

To na tyle ;)).

Odnośnik do komentarza
  • 2 tygodnie później...
  • 2 tygodnie później...
  • 1 miesiąc temu...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający forum [BSD] Kompilacja & konfiguracja IPF aka IP.filter   0 użytkowników
    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...