Strona 1 z 2

przykładowe iptables dla laptopa

: 10 maja 2014, 15:50
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;

: 10 maja 2014, 17:46
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

: 10 maja 2014, 17:48
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...

: 10 maja 2014, 18:43
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

: 10 maja 2014, 18:46
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.

: 10 maja 2014, 18:54
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'

: 10 maja 2014, 18:59
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

: 10 maja 2014, 19:06
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)

: 10 maja 2014, 19:12
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.. ;)

: 10 maja 2014, 19:15
autor: Rafal_F
Propozycja Yampressa wygląda OK, a porty powinno się skanować z innej maszyny.