przyk

Masz problemy z siecią bądź internetem? Zapytaj tu
Hypnos
Posty: 66
Rejestracja: 07 kwietnia 2014, 15:08

przykładowe iptables dla laptopa

Post autor: Hypnos »

Witam.Użyłem dziś nc do przeskanowania własnych portów i okazuje się że domyślnie po instalacji kilka portów jest otwartych i widocznych a na dodatek cały ruch jest dozwolony. Zainstalowałem iptables-persistent i przyszła pora na skrypt konfiguracyjny. Moją intencją jest sklecenie kilku skryptów dostępnych w zasobach sieci i stworzenie zapory dla komputera typu desktop. W domyśle cały ruch przychodzący ma być blokowany, poza przypadkami gdy nasz komputer sam inicjuje połączenie. Dodatkowo w logach ma pojawiać się informacja o skanowaniu portów. Proszę o sprawdzenie i ew. doradzenie co jeszcze zrobić? :)

Kod: Zaznacz cały

#!/bin/sh
#stała ścieżka iptables
#f="/usr/sbin/iptables"
f="iptables"
echo "Dodaje Reguły dla IPtables"

echo "Czyszczenie starych reguł"
# CZYSZCZENIE STARYCH REGUŁ
$f -F
$f -X
$f -F -t nat
$f -X -t nat
$f -F -t filter
$f -X -t filter

echo "Ustawienie polityki działania"
# USTAWIENIE POLITYKI DZIAŁANIA
$f -P INPUT DROP
$f -P FORWARD DROP
$f -P OUTPUT DROP

echo "Dopuszczenie localhostu"
# Odblokowanie / Dopuszczenie localhostu
$f -A INPUT -i lo -j ACCEPT
$f -A FORWARD -o lo -j ACCEPT
$f -A OUTPUT -o lo -j ACCEPT

# Protokół SMB

#$f -A INPUT -p tcp --dport 137:139 -j ACCEPT
#$f -A INPUT -p tcp --dport 445 -j ACCEPT
#$f -A INPUT -p udp --dport 137:139 -j ACCEPT
#$f -A INPUT -p udp --dport 445 -j ACCEPT

# SSH

#$f -A INPUT -p tcp --dport 22 -j ACCEPT
#$f -A INPUT -p tcp --dport 10025 -j ACCEPT

echo "Nawiązanie połączenia"
# NAWIĄZANIE POŁĄCZENIA
$f -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$f -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
$f -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

echo "Blokada skanowania portów..."

# Skanowanie SYN (nmap -sS)
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH SYN -m limit --limit 2/min -j LOG --log-prefix " $LOG skanowanie SYN"
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH SYN -m limit --limit 2/min -j DROP

# Metoda ACK (nmap -sA)
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -m limit --limit 2/min -j LOG --log-prefix " $LOG skanowanie ACK"
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -m limit --limit 2/min -j DROP

# Skanowanie FIN (nmap -sF)
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -m limit --limit 2/min -j LOG --log-prefix " $LOG skanowanie FIn"
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -m limit --limit 2/min -j DROP

# Metoda Xmas Tree (nmap -sX)
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -m limit --limit 2/min -j LOG --log-prefix " $LOG skanowanie Xmas Tre"
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -m limit --limit 2/min -j DROP

# Skanowanie Null (nmap -sN)
iptables -A INPUT -m conntrack --ctstate INVALID -p tcp ! --tcp-flags SYN,RST,ACK,FIN,PSH,URG SYN,RST,ACK,FIN,PSH,URG -m limit --limit 2/min -j LOG --log-prefix " $LOG skanowanie Null"
iptables -A INPUT -m conntrack --ctstate INVALID -p tcp ! --tcp-flags SYN,RST,ACK,FIN,PSH,URG SYN,RST,ACK,FIN,PSH,URG -m limit --limit 2/min -j DROP

echo "Reguła SSH"
# SSH
#$f -A OUTPUT -p tcp --dport 22 -j ACCEPT
#$f -A OUTPUT -p tcp --dport 10025 -j ACCEPT

fz="/etc/iptables/rules.v4"
if [[ -n $fz ]] && [[ -w $fz ]]
 then iptables-save > $fz
      echo "-Konfiguracja zastosowana i zapamiętana"
 else 
      echo "-Konfiguracja zastosowana lecz nie zapamiętana. Brak uprawnień do zapisu lub brak pakietu iptables-persistent"
      exit 1
fi

exit 0;
Awatar użytkownika
Yampress
Administrator
Posty: 6422
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

Ale kloc. A gdybym Ci powiedział, że wystarczy jedynie 5 linijek, aby zrobić firewall dla desktopa...

entries/162-Prosty-firewall-dla-desktop ... i-roboczej
Awatar użytkownika
Menel
Member
Posty: 1117
Rejestracja: 24 sierpnia 2013, 19:58
Lokalizacja: doktor informoparalityki

Post autor: Menel »

a nie prościej na desktopie ufw sobie zaaplikować i nie cudować?

Kod: Zaznacz cały

apt-get install ufw
ufw enable
efekt:

Kod: Zaznacz cały

root@shodan:~# nmap -p 1-65535 192.168.1.101 

Starting Nmap 6.40 ( http://nmap.org ) at 2014-05-10 17:45 CEST
Nmap scan report for shodan.lan (192.168.1.101)
Host is up (0.000019s latency).
All 65535 scanned ports on shodan.lan (192.168.1.101) are closed

Nmap done: 1 IP address (1 host up) scanned in 9.38 seconds
jest to wygodna i łatwa w obsłudze nakładka ma swoje ograniczenia ale na desktopa starczy a trzeba sobie życie ułatwiać ;) ...

obsługa się sprowadza do wydania prostych w składni poleceń typu
ufw deny 80, ufw allow 80 itp...
Hypnos
Posty: 66
Rejestracja: 07 kwietnia 2014, 15:08

Post autor: Hypnos »

No ok. Zaaplikowałem sobie zestaw reguł podany przez @Yampress'a, odpalam zwykłe skanowanie

Kod: Zaznacz cały

nmap -T4 -A -v 127.0.0.1
i porty nadal otwarte.
Tak się zastanawiam czy nie jest to wina tego, że skanuje sam siebie?

@Menel, wolę się pomęczyć i czegoś przy okazji nauczyć. Iptables zawsze się przyda
Awatar użytkownika
Rafal_F
Moderator
Posty: 2350
Rejestracja: 29 sierpnia 2008, 16:45

Post autor: Rafal_F »

Jakie porty? Skoro masz otwarte porty, a nie powinieneś ich mieć to znajdź usługę która je otworzyła i ją wyłącza lub zmień konfiguracje.
Hypnos
Posty: 66
Rejestracja: 07 kwietnia 2014, 15:08

Post autor: Hypnos »

Kod: Zaznacz cały

Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 111/tcp on 127.0.0.1
Discovered open port 25/tcp on 127.0.0.1
Discovered open port 631/tcp on 127.0.0.1
Completed Connect Scan at 18:44, 0.03s elapsed (1000 total ports)
źle się wyraziłem. Mogą być otwarte, natomiast chcę żeby były 'stealth'
Awatar użytkownika
Menel
Member
Posty: 1117
Rejestracja: 24 sierpnia 2013, 19:58
Lokalizacja: doktor informoparalityki

Post autor: Menel »

Hypnos bez obrazy Panie ale czego się w tym momencie uczysz jak wklejasz gotowe regułki Yampressa ?? chodziło mi o wygodę ale jak chcesz wałkować iptables to porządnie a nie wklejając gotowe regułki wmawiasz mi, że chcesz się czegoś nauczyć ;)

pS
masz na górze jak się skanuje podane... na localhost mogą sobie nasłuchiwać pewne usługi, przykładowo żeby dostarczać komunikaty logów w niczym to nie przeszkadza i nie grozi. Skanuj podając swój ip a nie localhosta..xD
Hypnos
Posty: 66
Rejestracja: 07 kwietnia 2014, 15:08

Post autor: Hypnos »

Menel pisze:Hypnos bez obrazy Panie ale czego się w tym momencie uczysz jak wklejasz gotowe regułki Yampressa ?? chodziło mi o wygodę ale jak chcesz wałkować iptables to porządnie a nie wklejając gotowe regułki wmawiasz mi, że chcesz się czegoś nauczyć ;) pSmasz na górze jak się skanuje podane... na localhost mogą sobie nasłuchiwać w niczym to nie przeszkadza i nie grozi. Skanuj swój ip a nie localhosta..xD
Ale ja się nie gniewam, to że użyłem podanych przez @yampressa reguł nie oznacza, że wklejam je bezmyślnie. Masz rację pcflank podaje że w/w porty są "stealthed"

Czy np taka reguła jest poprawna?

Kod: Zaznacz cały

iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH SYN -m limit --limit 2/min -j LOG --log-prefix " $LOG skanowanie SYN"
chodzi mi o podwójne użycie parametra -m (conntrack,limit)
Awatar użytkownika
Menel
Member
Posty: 1117
Rejestracja: 24 sierpnia 2013, 19:58
Lokalizacja: doktor informoparalityki

Post autor: Menel »

fakt ufw jest okrojone o sporo funkcjonalności iptables, ale przecież nie konfigurujesz tego na serwerze dlatego ja wychodzę z założenia że ma być prosto i skutecznie Mogę sobie przykładowo odpalić port czy zamknąć prościutką składnią z konsoli nie babrząc się w zawiłych regułach iptablesa po prostu. Ale oczywiście każdy używa co mu pasuje i jak najbardziej szanuję twoje zdanie w tej kwestii.. ;)
Awatar użytkownika
Rafal_F
Moderator
Posty: 2350
Rejestracja: 29 sierpnia 2008, 16:45

Post autor: Rafal_F »

Propozycja Yampressa wygląda OK, a porty powinno się skanować z innej maszyny.
ODPOWIEDZ