Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2009-05-14 15:24:02

  redelek - Członek DUG

redelek
Członek DUG
Skąd: Warszawa
Zarejestrowany: 2008-07-17

Zapora dla jednego hosta iptables

Hej,

Uczę się iptables i blokowania portów. Niestety mam kilka pytań i prosił bym o pomoc

Kod:

#!/bin/bash
F="/sbin/iptables"
M="/sbin/modprobe"
LOG="ipt#"
L="listaon"
#interfejs globalny - dla sieci zewnetrznej
G_NET_NAME="eth0"
G_NET_IP="192.168.1.246"

# No spoofing
#ignorowanie ICMP echo request wysylanych na adres rozgloszeniowy
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

#ochrona przed SYN flood
echo "1" > /proc/sys/net/ipv4/tcp_syncookies

#refuse source routed packets
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route

echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects

#walidacja zrodla za pomoca reversed path (RFC1812).
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter

#logowanie pakietow z nieprawidlowych adresow
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

#Blokada ICMP
#cho 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
#cho 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
#ICM ODPORNE NA ATAK
$F -A INPUT -p ICMP -s 0/0 --icmp-type 8 -j DROP
$F -A INPUT -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
#WGRYWAMY MODULY
$M ip_tables
$M ip_nat_ftp
$M iptable_filter
$M ip_conntrack_ftp

# CZYSZCZENIE REGOL
$F -F
# first set the default behaviour => accept connections
$F -P INPUT DROP
$F -P OUTPUT ACCEPT
$F -P FORWARD ACCEPT
$F -A INPUT -j LOG -m limit --limit 15/h --log-prefix '**IPTAB**' --log-level 4            # 15 logów na godzine
$F -A OUTPUT -j LOG -m limit --limit 15/h --log-prefix '**IPTAB**' --log-level 4
$F -A FORWARD -j LOG -m limit --limit 15/h --log-prefix '**IPTAB**' --log-level 4

# ZESTAWIONE POLACZENIA PODTRZYMUJEMY
$F -A INPUT -i $G_NET_NAME -m state --state ESTABLISHED,RELATED -j ACCEPT
# PETLA ZWROTNA LO DOPUSZCZONA
$F -A INPUT -i lo -j ACCEPT

# DOPUSZCZONE SERWISY
# HTTP HTTPCACHE
$F -A INPUT -s 0/0 -p tcp --dport 80:8080 -j ACCEPT
#HTTPS
$F -A INPUT -s 0/0 -p tcp --dport 443 -j ACCEPT
#SSH Z BLOKOWANIEM PO 3 PROBACH NA 60 sek
$F -A INPUT -s 0/0 -p tcp --dport 22 -j ACCEPT
$F -I INPUT -p tcp --dport 22 -i $G_NET_NAME -m state --state NEW -m recent --set
$F -I INPUT -p tcp --dport 22 -i $G_NET_NAME -m state --state NEW -m recent --update --second 60 --hitcount 3 -j DROP
$F -I INPUT -p tcp --dport 22 -i $G_NET_NAME -m state --state NEW -m recent --update --second 60 --hitcount 3 -j LOG --log-prefix '**SSH HACK **'
#MYSQL DOPUSZCZ JESLI BYL W PLIKU
for i in `cat $L |cut -d ' ' -f 1`; do
       $F -A INPUT -s $i -p tcp --dport 3306 -j ACCEPT
done;
#POSTGRESQL
for i in `cat $L |cut -d ' ' -f 1`; do
       $F -A INPUT -s $i -p tcp --dport 5432 -j ACCEPT
done;
#FTP
#$F -A INPUT -p tcp -s 0/0 --source-port 20:21 -j ACCEPT
#FTP PASSIV
#F -A INPUT -p tcp -s 0/0 --destination-port 62000:64000 -j ACCEPT
# End message
echo "Firewall .... OK"

Problem jest w tym, że jeśli host który ma mieć dostęp do MySQL lub postgreSQL usunę z pliku listaon i przeładuję wczytam jeszcze raz mój plik ma nadal dostęp.
Prawdopodobnie jest to z tą regułką związane

Kod:

$F -A INPUT -i $G_NET_NAME -m state --state ESTABLISHED,RELATED -j ACCEPT

Co muszę zrobić, żeby jednak zrywał takie połączenie ?

Drugie moje pytanie dotyczy, czy warto coś jeszcze dodać, do blokady np. Blastera lub Sasla ? jeśli tak to jak ?

Będę bardzo wdzięczny za pomoc


Pozdrawiam
Redelek
--------------------------------------------------------
Polecam hosting ViPower https://vipower.pl/panel/aff.php?aff=208, TikTalik https://tiktalik.com/pl/

Offline

 

#2  2009-05-14 16:08:52

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Zapora dla jednego hosta iptables

dac regulki w kolejnosci:
* zezwalamy na mysql hostom podanym w pliku
* blokujemy mysql wszystkim
* zezwalamy na nawiazane polaczenia


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#3  2009-05-14 16:39:11

  redelek - Członek DUG

redelek
Członek DUG
Skąd: Warszawa
Zarejestrowany: 2008-07-17

Re: Zapora dla jednego hosta iptables

zmieniłem jak poleciłeś
Dałem na końcu tą regułkę
$F -A INPUT -i $G_NET_NAME -m state --state ESTABLISHED,RELATED -j ACCEPT

Wydaje mi się że mam dobrze
1. UWALAM wszystko INPUT -P DROP
2. Wpuszczam to co chcę
3. Zostawiam nawiązane połączenia

Obiaw jest taki sam nie odcina hosta który nie powinien mieć dostępu do 3306 :(


Pozdrawiam
Redelek
--------------------------------------------------------
Polecam hosting ViPower https://vipower.pl/panel/aff.php?aff=208, TikTalik https://tiktalik.com/pl/

Offline

 

#4  2009-05-14 16:43:41

  janosik - Członek DUG

janosik
Członek DUG
Zarejestrowany: 2009-05-06

Re: Zapora dla jednego hosta iptables

nie wiem czy nie palne jakiejs glupoty, ale dlaczego dales czyszczenie regul w srodku?
a jakbys zaczal od czyszczenia regul zanim cokolwiek wpuscisz ...
dopiero raczkuje w temacie, wiec jak glupote palnalem to przepraszam

Offline

 

#5  2009-05-14 16:50:50

  redelek - Członek DUG

redelek
Członek DUG
Skąd: Warszawa
Zarejestrowany: 2008-07-17

Re: Zapora dla jednego hosta iptables

początek to ustawianie modułów i wpisów do kernela,
więc nie jest w środku :). Ale spoko już poprawiam i sprawdzam


Pozdrawiam
Redelek
--------------------------------------------------------
Polecam hosting ViPower https://vipower.pl/panel/aff.php?aff=208, TikTalik https://tiktalik.com/pl/

Offline

 

#6  2009-05-15 11:39:59

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Zapora dla jednego hosta iptables

INPUT -P DROP nie jest na poczatku ... to ustawia polityke domyslna czyli regula uwalenia wszystkiego jest dopiero nakoncu ... wiec jezeli pomiedzy wpuszczeniem wybranych mysql a wpuszczeniem nawiazanych nie masz jawnego DROP wszystkich pozostalymch mysql to masz zle ...

btw. pokaz aktualny kod


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#7  2009-05-15 16:46:27

  redelek - Członek DUG

redelek
Członek DUG
Skąd: Warszawa
Zarejestrowany: 2008-07-17

Re: Zapora dla jednego hosta iptables

Myślałem że jak dam cały INPUT -P DROP to zablokuję wszystkie porty.
Potem będę odblokowywał te które mi są potrzebne. Ale wyciągając wnioski z tego co Ty piszesz to tak nie działa :(

To jak zrobić żeby uciąć wszystkie porty i wpuszczać wybrane ?


Pozdrawiam
Redelek
--------------------------------------------------------
Polecam hosting ViPower https://vipower.pl/panel/aff.php?aff=208, TikTalik https://tiktalik.com/pl/

Offline

 

#8  2009-05-15 19:24:07

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Zapora dla jednego hosta iptables

to dziala tak ze blokuje wszystko ... ale jako ze reguly sa przetwarzane po koleji a polityka domyslna jest ostatnia regula (gdy przetwarzanie nie zostalo zakonczone DROP lub ACEPT przez wczesniejsze reguly stosujemy polityke domyslna)

tak jak pisalem:
* zezwalamy na mysql hostom podanym w pliku

Kod:

for i in `cat $L |cut -d ' ' -f 1`; do
       $F -A INPUT -s $i -p tcp --dport 3306 -j ACCEPT
done;

* blokujemy mysql wszystkim

Kod:

$F -A INPUT -p tcp --dport 3306 -j DROP

* zezwalamy na nawiazane polaczenia

Kod:

$F -A INPUT -i $G_NET_NAME -m state --state ESTABLISHED,RELATED -j ACCEPT

"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#9  2009-05-18 10:06:28

  redelek - Członek DUG

redelek
Członek DUG
Skąd: Warszawa
Zarejestrowany: 2008-07-17

Re: Zapora dla jednego hosta iptables

Oki bardzo dziękuję za pomoc. Potestuję to co podałeś.
Chyba doszedłem gdzie miałem problem. Niestety wszystko testowałem na VirtualBox i chyba dlatego on wpuszcza wszystkich.
Zaraz odpalę to na zewnątrz :)

Ale dzięki za poradę


Pozdrawiam
Redelek
--------------------------------------------------------
Polecam hosting ViPower https://vipower.pl/panel/aff.php?aff=208, TikTalik https://tiktalik.com/pl/

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)