Ganicjusz 0 Zgłoś post Napisano Kwiecień 24, 2012 (edytowany) No więc tak - na razie oto co zrobiłem (wirtualizacja OpenVZ): 1. zrobiłem nowego usera i ustawiłem logowanie przez klucze (czy to nie będzie się jakoś gryzło z przyszłym ftp? Ftp jeszcze nie ogarnąłem). 2. zablokowałem logowanie się na root 3. "ustawiłem" firewalla - z tego niezbyt jestem zadowolony bo jeszcze nie dodałem portów 21 i 20, ogólnie nie wiem czy dobrze to zrobiłem i...czy w ogóle firewall jest potrzebny. Na koniec podam swoją konfigurację. 4. zainstalowałem fail2ban. 5. myślę nad zmianą portu ssh jeszcze ale gdzieś przeczytałem, że to jest dość problemowe bo trzeba grzebać w ustawieniach jakiś aplikacji, które chcą korzystać z portu 22 właśnie - jeśli tak jest to jakie to są aplikacje? To są moje regułki firewalla *filter # Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0 -A INPUT -i lo -j ACCEPT -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT # Accept all established inbound connections -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Allow all outbound traffic - you can modify this to only allow certain traffic -A OUTPUT -j ACCEPT # Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL). -A INPUT -p tcp --dport 80 -j ACCEPT -A INPUT -p tcp --dport 443 -j ACCEPT # Allow SSH connections # # The -dport number should be the same port number you set in sshd_config # -A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT # Allow ping -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT # Log iptables denied calls -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 # Reject all other inbound - default deny unless explicitly allowed policy -A INPUT -j REJECT -A FORWARD -j REJECT COMMIT A to wynik polecenia iptables -L : Chain INPUT (policy ACCEPT) target prot opt source destination fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh ACCEPT all -- anywhere anywhere REJECT all -- anywhere loopback/8 reject-with icmp-port-unreachable ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere tcp dpt:www ACCEPT tcp -- anywhere anywhere tcp dpt:https ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh ACCEPT icmp -- anywhere anywhere icmp echo-request LOG all -- anywhere anywhere limit: avg 5/min burst 5 LOG level debug prefix `iptables denied: ' REJECT all -- anywhere anywhere reject-with icmp-port-unreachable Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- anywhere anywhere reject-with icmp-port-unreachable Chain OUTPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere Chain fail2ban-ssh (1 references) target prot opt source destination RETURN all -- anywhere anywhere I tu znowu kilka pytań - jak to dla was wygląda? Czy jak sobie zrestartuje firewalla na domyślne ustawienia bądź w ogóle zmienie ustawienia to nie popsuje ustawień fail2ban? To są tymczasowe ustawienia fail2ban więc chyba powinno być ok? W Panelu intovps (Hypanel czy jakoś tak) jakieś błędy się pojawiły - error loading tooltips oraz error loading status - może to związane z tym firewallem właśnie? Co byście jeszcze dodali lub usuneli? Porty 21 i 20 zamierzam dodać poleceniem: iptables -I input 2 -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT iptables -I input 2 -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT Czy w ogóle firewall jest potrzebny? Nie wystarczyłoby logowanie przez klucz jako user + fail2ban? Albo dodac tylko niektóre reguły, bez blokowania portów? Edytowano Kwiecień 24, 2012 przez Ganicjusz (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
HaPe 242 Zgłoś post Napisano Kwiecień 24, 2012 Nie stosuj reject, tylko drop. Żadne zabezpieczenia nie są najlepsze. Udostępnij ten post Link to postu Udostępnij na innych stronach
Syndrom 95 Zgłoś post Napisano Kwiecień 24, 2012 1. zrobiłem nowego usera i ustawiłem logowanie przez klucze (czy to nie będzie się jakoś gryzło z przyszłym ftp? Ftp jeszcze nie ogarnąłem). W przypadku FTP user nie musi mieć ustawionego shella bash, wystarczy /sbin/nologin albo /bin/false. Należy tylko pamiętać by te powłoki były wymienione w /etc/shells PS. Dla ssha możesz dodatkowo wprowadzić użytkowników, którzy mają pozwolenie na dostęp ssha: AllowUsers Udostępnij ten post Link to postu Udostępnij na innych stronach
furek 37 Zgłoś post Napisano Kwiecień 24, 2012 Zastosuj też fail2ban, który będzie pilnował, aby żaden inny nie próbował odpytywać masowo SSH i zgadywał loginy i hasła. Udostępnij ten post Link to postu Udostępnij na innych stronach
crazyluki 114 Zgłoś post Napisano Kwiecień 24, 2012 Na początek nie jest źle. Jak korzystasz ze stałego IP to możesz zblokować połączenia przychodzące na port ssh i ograniczyć tylko do jednego IP. W innym wypadku możesz np wykupić vps/inną usługę z dostępem ssh za pomocą którego będziesz logować się do swojego serwera. Dodatkowo nie zapominaj o najważniejszym - aktualizuj wykorzystywane aplikacje na serwerze. Jak korzystasz z CMSów do serwowania stron - dodaj się do Google Webmaster Tools - ostatnio zaczęli przysyłać powiadomienia "Twoja aplikacja jest stara, zaktualizuj ją". Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość dmho Zgłoś post Napisano Kwiecień 24, 2012 Chain INPUT (policy ACCEPT) target prot opt source destination fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh ACCEPT all -- anywhere anywhere REJECT all -- anywhere loopback/8 reject-with icmp-port-unreachable Tego raczej nie powinno być Udostępnij ten post Link to postu Udostępnij na innych stronach
Syndrom 95 Zgłoś post Napisano Kwiecień 24, 2012 Tego raczej nie powinno być To się prawdopodobnie dotyczy lo interfejsu. iptables -L -n -v wyświetli dokładniej Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość dmho Zgłoś post Napisano Kwiecień 24, 2012 (edytowany) Faktycznie Pośpieszyłem się za bardzo Edytowano Kwiecień 24, 2012 przez dmho (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość pzebracki Zgłoś post Napisano Maj 3, 2012 Jeszcze IPS'a Tobie brakuje i IDS'a + Tokeny Udostępnij ten post Link to postu Udostępnij na innych stronach
HaPe 242 Zgłoś post Napisano Maj 3, 2012 A gdzie IPsec? Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość pzebracki Zgłoś post Napisano Maj 3, 2012 A gdzie IPsec? Co masz na mysli ? Udostępnij ten post Link to postu Udostępnij na innych stronach
Ganicjusz 0 Zgłoś post Napisano Maj 3, 2012 W przypadku gdybyś chciał wykonać tą operację w połączeniu ze zmianą portu SSH (którą polecam wykonać, więcej o tym niżej) to w konfiguracji fail2ban ustaw sobie: [ssh] enabled = true port = NowyPort filter = sshd logpath = /var/log/auth.log maxretry = 5 [ssh-ddos] enabled = true port = NowyPort,sftp filter = sshd-ddos logpath = /var/log/auth.log maxretry = 6 W kwestii zmiany portu to jak najbardziej polecam, gdyż za czasów gdy miałem port 22, co chwilę logi puchły mi od nadmiernej ilości botów i innych script kiddies... Teraz gdy port mam wyrzucony powyżej 5000, dawno nie widziałem nic podejrzanego w logach. Na koniec pytanie, które powinno pojawić się na początku: czym ma się ten serwer zajmować (jakie usługi będą na nim stały)? O to ciekawe...czyli port zmieniam w /etc/ssh/sshd_config tak? I gdzie jeszcze oprócz fail2ban? A mój stacjonarny komp będzie się wtedy normalnie łączył przez ssh? Wiesz co ja mam 2 VPS na tym akurat się uczę i ma być tylko forum phpbb3 i kilka statycznych stron. Ale powiem Ci ze ataki mam często patrząc na logi fail2ban. Udostępnij ten post Link to postu Udostępnij na innych stronach
Piotrek Mazurkiewicz 19 Zgłoś post Napisano Maj 3, 2012 Tak, będzie się łączył normalnie ale musisz też zmienić port w putty, bo jak zmienisz np. na 5555 w sshd_config na serwerze, a zapomnisz o zmianie portu w putty, to się nie połączysz, choć to chyba oczywiste. Udostępnij ten post Link to postu Udostępnij na innych stronach
Ganicjusz 0 Zgłoś post Napisano Maj 3, 2012 (edytowany) Zależy z czego korzystasz. Przykładowo u mnie musiałem tylko skonfigurować sobie fail2ban i monit, bo one monitorują tę usługę. Co do kompa z którego łączysz się, jedyną zmianą jest parametr "-p port" czyli łączysz się wtedy: ssh login@domena.pl -p XXXX, gdzie XXXX to numer portu. EDIT - wszystko działa ok, musiałem zrestartować maszynę z panelu bo w firewalu miałem regułę dla starego portu Edytowano Maj 3, 2012 przez Ganicjusz (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Grz3chu 22 Zgłoś post Napisano Maj 4, 2012 (edytowany) Co do zabezpieczania SSH to zapraszam do siebie Dzisiaj napisałem mały poradnik. Moim zdaniem ciekawy jest punk 12. Jakoś nie spotykałem go na polskich serwisach. Rozwiązanie trochę dla opętanych bezpieczeństwem. http://centos.linux....zpieczanie-ssh/ (komentujcie i polecajcie na FB, głupio tak pisać nie widząc efektów) Edytowano Maj 4, 2012 przez Grz3chu (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Kamikadze Zgłoś post Napisano Maj 4, 2012 Zmiana portu ssh to pikuś Ja korzystam na niektórych maszynach z 4 cyfrowych adresów i powiem ci że sporo się zmieniło. Na początku na standardowym miałem kilkadziesiąt prób logowania dziennie na root / ssh z chin, rosji, korei i innych okolicznych wiosek Teraz cisza i spokój Udostępnij ten post Link to postu Udostępnij na innych stronach
Piotrek Mazurkiewicz 19 Zgłoś post Napisano Maj 5, 2012 @Grz3chu Ładnie piszesz, przejrzyście i składnie. Dobrze poszerzać swoją wiedzę dzięki takim poradnikom (zwłaszcza ten Port Knocking). Udostępnij ten post Link to postu Udostępnij na innych stronach