MC' Napisano Marzec 8, 2013 Zgłoszenie Share Napisano Marzec 8, 2013 Witam, Mój skrypt iptables wygląda tak: ---------------------------------------- # ZMIENNE #---------------------------------------- IPT="/sbin/iptables" MDP="/sbin/modprobe" SSH_PORT="2345" WWW="8008" #----------------------------------------- # Ladowanie Modulow #----------------------------------------- #$MDP ip_conntrack #$MDP ip_conntrack_ftp #----------------------------------------- # Flush all current rules from iptables #---------------------------------------- $IPT -F #------------------------------------------ # Set default policies for INPUT, FORWARD and OUTPUT chains #------------------------------------------ $IPT -P INPUT DROP $IPT -P FORWARD DROP $IPT -P OUTPUT DROP #------------------------------------------- # Set access for localhost #------------------------------------------ $IPT -A INPUT -i lo -j ACCEPT $IPT -A OUTPUT -o lo -j ACCEPT #------------------------------------------ # Allow SSH connections on tcp port 2345 # This is essential when working on remote servers via SSH to prevent locking yourself out of the system #------------------------------------------ # Tylko logowanie ssh na server z serwera juz nie da sie nigdzie logowac $IPT -A INPUT -p tcp --dport $SSH_PORT -m state --state NEW,ESTABLISHED -j ACCEPT $IPT -A OUTPUT -p tcp --sport $SSH_PORT -m state --state ESTABLISHED -j ACCEPT #------------------------------------------ # PING (8- echo-request; 0 - echo-reply) #------------------------------------------ # Incoming Ping $IPT -A INPUT -p icmp --icmp-type 8 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT $IPT -A OUTPUT -p icmp --icmp-type 0 -m state --state ESTABLISHED,RELATED -j ACCEPT # Outgoing Ping $IPT -A OUTPUT -p icmp --icmp-type 8 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT $IPT -A INPUT -p icmp --icmp-type 0 -m state --state ESTABLISHED,RELATED -j ACCEPT #-------------------------------------- # NTP clients #-------------------------------------- $IPT -A INPUT -p udp --dport 123 -m state --state NEW -j ACCEPT #------------------------------------------- # YUM port 80 bo yum uzywa http do laczenie sie z repozytoriami #------------------------------------------- #initaiating yum conection $IPT -A OUTPUT -p tcp --dport 80 -j ACCEPT $IPT -A INPUT -p tcp --sport 80 -j ACCEPT #------------------------------------------ # DNS - needed for ping domins and yum resolving the domain names #------------------------------------------ $IPT -A OUTPUT -p udp --sport 1024:65535 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT #!!!!!! $IPT -A INPUT -p udp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT W takiej konfiguracji nie działą mi ssh. Gdy jednak zakomentuję wpis DNS z wyrzyknikami: $IPT -A OUTPUT -p udp --sport 1024:65535 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT i zastosuje reguły ze skryptu to mogę się podłączyć na ssh. W przeciwnym razie ssh nie łaczy się. Jak to możliwe ? Czy to problem z tym że port 2345 jest w zakresie DNS i STATE się gryzą? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Gość Napisano Marzec 10, 2013 Zgłoszenie Share Napisano Marzec 10, 2013 (edytowane) Czy SSH na pewno nie działa,czy po chwili cię wpuszcza (poczekaj i sprawdź)? Załadowałem regułki twojego FW u mnie na stacji i... działa jak trzeba. Dodaj regułki logujące na sam koniec: IPTABLES -A INPUT -j LOG IPTABLES -A OUTPUT -j LOG a potem pokaż nam /var/log/messages podczas próby łączenia się na ssh. Pozdrawiam Edytowane Marzec 10, 2013 przez Gość Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
MC' Napisano Marzec 13, 2013 Autor Zgłoszenie Share Napisano Marzec 13, 2013 Dziwne jest to, że wpuszcza mnie wtedy gdy nie jestem w firmie: neostrada, plus. Z firmowego mnie nie puszcza mimo, że puszczało. Dziś po wpisaniu ssh user@IP -p 2345 Connection closed by 212.182.24.34 Połączenie zamknięte po jakiś 5 min. Ale fakt masz rację. Z domu jak się łączę to muszę poczekać dobre 30 sek na prompt pytający o hasło. Logi z moim IP są takie: cat /var/log/messages | grep 213.25.123 //moje ip Mar 13 17:16:23 host kernel: IN=eth0 OUT= MAC=ff:ff:ff:ff...... SRC=213.182.25.123 DST=213.182.25.255 LEN=161 TOS=0x00 PREC=0x00 T=64 ID=0 DF PROTO=UDP SPT=17500 LEN=141 Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
MC' Napisano Marzec 25, 2013 Autor Zgłoszenie Share Napisano Marzec 25, 2013 Dobra a teraz zagadka. Jeśli wpiszę linie DNS w tej kolejności: $IPT -A OUTPUT -p udp --sport 1024:65535 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT $IPT -A INPUT -p udp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT SSH z pracy nie działa z innych IP działa. Gdy zamienie je kolejnoscią SSH działa również z lokalnej sieci serwera w pracy.. WTF to jest dla mnie zagadka. Czy ktoś jest w stanie mi to wyjaśnić jaki drobny szczegół jest zmieniony zamieniając kolejność tych reguł? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Mentat Napisano Marzec 25, 2013 Zgłoszenie Share Napisano Marzec 25, 2013 Wątpię żebo komus się chciało dumać. Zrób może dla kazdego przypadku iptables -S > przypadekX.txt I zapodaj oba pliki wynikowe bo coś dziwne to jest. Jest jakiś konkretny powód dla którego ograniczasz porty (i upewniłeś się że pakiety zapytań zawsze przychodzą/wychodzą z portu >1024)? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
MC' Napisano Marzec 25, 2013 Autor Zgłoszenie Share Napisano Marzec 25, 2013 Dla przypadku NIEdziałajacego z lokalnych IP: iptables -S -P INPUT DROP -P FORWARD DROP -P OUTPUT DROP -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m tcp --dport 2345 -m state --state NEW,ESTABLISHED -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 8 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 0 -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p udp -m udp --dport 123 -m state --state NEW -j ACCEPT -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT -A INPUT -p udp -m udp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 8008 -j ACCEPT -A OUTPUT -o lo -j ACCEPT -A OUTPUT -p tcp -m tcp --sport 2345 -m state --state ESTABLISHED -j ACCEPT -A OUTPUT -p icmp -m icmp --icmp-type 0 -m state --state RELATED,ESTABLISHED -j ACCEPT -A OUTPUT -p icmp -m icmp --icmp-type 8 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT -A OUTPUT -p udp -m udp --sport 1024:65535 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT -A OUTPUT -p tcp -m tcp --sport 8008 -j ACCEPT Dla przypadku działającego SSH ze wszystkich IP czyli po zamianie kolejnosci wpisów DNS (tyle że DNS wtedy leży): iptables -S -P INPUT DROP -P FORWARD DROP -P OUTPUT DROP -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m tcp --dport 2345 -m state --state NEW,ESTABLISHED -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 8 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 0 -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p udp -m udp --dport 123 -m state --state NEW -j ACCEPT -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT -A INPUT -p udp -m udp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 8008 -j ACCEPT -A OUTPUT -o lo -j ACCEPT -A OUTPUT -p tcp -m tcp --sport 2345 -m state --state ESTABLISHED -j ACCEPT -A OUTPUT -p icmp -m icmp --icmp-type 0 -m state --state RELATED,ESTABLISHED -j ACCEPT -A OUTPUT -p icmp -m icmp --icmp-type 8 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT -A OUTPUT -p tcp -m tcp --sport 8008 -j ACCEPT Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Mentat Napisano Marzec 25, 2013 Zgłoszenie Share Napisano Marzec 25, 2013 Jeśli to powstało jedynie przez zmianę kolejności linii w pliku to znaczy że coś źle kopiujesz, wstawiasz niedozwolony znak albo coś. Różnica jest tylko w dodatkowej linii w pierwszym przypadku. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
MC' Napisano Marzec 26, 2013 Autor Zgłoszenie Share Napisano Marzec 26, 2013 Tak przedostatnia linia. Ale jednak druga wersja obsługuje połączenia z sieci zewnętrznej. dziwne Obsługuje na serwerze pliki VIMem. Jak najszybciej mógłbym sprawdzić niewidoczne znaki w tym pliku? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Mentat Napisano Marzec 26, 2013 Zgłoszenie Share Napisano Marzec 26, 2013 Takie coś znalazłem http://stupidunixlinuxtricks.blogspot.com/2008/03/show-non-printable-characters-in-vi.html. Czyli aby włączyć :set list a wyłaczyć :set nolist Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
mateczek Napisano Czerwiec 13, 2013 Zgłoszenie Share Napisano Czerwiec 13, 2013 przecież skrypt nie bierze pod uwagę interfejsów (zewnętrzny - z domu czy wewnętrzny - z pracy) Oba traktuje tak samo. Dziwna rzecz albo problem gdzieś indziej Czy nie jest czasami tak iż w przypadku ssh połączenie jest nawiązywane na porcie 22 (lub innym wybranym porcie nasłuchowym) a potem sesja już na innym dowolnym porcie jest kontynuowana?? czy nie jest potrzebny taki wpis?? iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT Czy zawsze trzeba blokować pakiety wychodzące z komputera ?? bo przecież sami siebie nie będziemy atakować ?? iptables -P OUTPUT ACCEPT ja kiedyś używałem taki skrypcik na domowym serwerku echo "Startowanie firewall-a..." iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT #akceptujemy sesję które nasz komputer zainicjował iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #ssh wraz z zabezpieczeniem przed brutalnym atakiem - 3 błędne hasła w ciągu 21s i disconnect iptables -A INPUT -p tcp --dport ssh -m state --state NEW -m recent --update --second 21 --hitcount 3 -j DROP iptables -A INPUT -p tcp --dport ssh -m state --state NEW -m recent --set #jeśli poprzednie reguły nie odwaliły ssh to akceptuj iptables -A INPUT -p tcp --dport ssh -j ACCEPT #wpuść na stronę www iptables -A INPUT -p tcp --dport http -j ACCEPT # Explicitly disable ECN if [ -e /proc/sys/net/ipv4/tcp_ecn ] then echo 0 > /proc/sys/net/ipv4/tcp_ecn fi # Disable spoofing on all interfaces for x in ${INTERFACES} do echo 1 > /proc/sys/net/ipv4/conf/${x}/rp_filter done Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Czerwiec 14, 2013 Zgłoszenie Share Napisano Czerwiec 14, 2013 Czy zawsze trzeba blokować pakiety wychodzące z komputera ?? bo przecież sami siebie nie będziemy atakować ??Ale jak Ciebie ktoś zaatakuje (np. przez nieuwagę ściągniesz coś do siebie), to nie będzie np. wysyłał spamu z twojego komputera. Blokować nie trzeba, ale jeśli firewall ma mieć jakiś sens to warto. W sumie ludzie jadą na domyślnych ustawieniach i też jakoś z tym żyją. Nawet z INPUT na ACCEPT. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się