Jak zabezpieczyć stronę przed atakami brute force?
Usługi sieciowe wymagające od użytkownika podania loginu i hasła mogą stać się łatwym celem botów internetowych lub osób chcących włamać się do systemu. . Zazwyczaj jest to atak słownikowy. Atakujący zasypuje serwer próbami logowania się do danej usługi pobierając hasła ze słownika często używanych haseł. Dlatego ważne jest, aby używać haseł składających się z przypadkowych znaków alfanumerycznych i znaków specjalnych.
Aby odciąć atakującego od systemu, najlepiej jest utworzyć odpowiednią regułę na firewallu. Jeżeli atak jest przeprowadzany przez botnet, wprowadzanie reguł blokujących ręcznie jest wręcz niemożliwe. Dlatego z pomocą przychodzi nam program Fail2Ban.
Na Ubuntu/Debian Instalujemy go poleceniem:
$ sudo apt-get install fail2ban
Na Fedorze
$ sudo dnf install fail2ban
Na Centos/Redhat musimy wcześniej dodać repozytorium Fedory, aby móc zainstalować Fail2Ban.
$ rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-1.noarch.rpm
$ yum check-update
$ yum install fail2ban
Powyższe polecenia instalują serwer i klienta, który służy do podglądania stanu Fail2Ban oraz wprowadzania zmian w "locie".
Konfiguracja Fail2Ban jest rozłożona pomiędzy wiele różnych plików konfiguracyjnych. Główny plik /etc/fail2ban/fail2ban.conf zawiera miejsce, gdzie mają być odkładane logi z działania programu, poziom logowania i miejsce trzymania plików pid i socket.
W katalogu /etc/fail2ban/action.d znajdują się pliki konfiguracyjne określające akcje jakie mają być wykonane po wykryciu błędnego logowania. Znajdują się już tam predefiniowane konfiguracje dla iptables oraz różnych jego nakładek (shorewall, apf, bsd-ipfw, osx firewall). Jest również możliwość wysłania powiadomień email o błędnej próbie logowania i zablokowaniu adresu IP.
W katalogu /etc/fail2ban/filter.d są pliki odpowiedzialne za wyszukiwanie informacji o próbach logowania w logach systemowych i aplikacji. Opierają się one na dopasowywaniu wyrażeń regularnych w logach. Tak jak w przypadku plików akcji, tak i tutaj są już gotowe filtry do wykorzystania do takich usług jak ssh, apache, asterisk, różnych daemonów ftp, poczty czy aplikacji webowych (roundcube). Ich składnia jest w miarę prosta i umożliwia nam pisanie własnych filtrów.
W pliku /etc/fail2ban/jail.conf możemy włączać poszczególne akcje i filtry oraz konfigurować zachowanie Fail2Ban. Parametrem ignoreip możemy zdecydować, które z adresów IP mają być ignorowane przez Fail2Ban. Domyślnie jest to tylko 127.0.0.1. Parametr bantime określa ilość sekund na jakie zostanie zablokowany podejrzany host. Jeżeli chcemy dać możliwość podjęcia kilku prób logowania dla uprawnionych użytkowników, którzy przez przypadek źle wpisali hasło, robimy to za pomocą opcji maxretry i findtime. Pierwszy określa ilość prób zanim host zostanie zablokowany, a drugi określa czas badania kolejnych nieudanych prób logowania. Domyślne wartości to maxretry=3 i findtime=600, czyli jeżeli w ciągu 10 minut będąpodjęte 3 błędne próby logowania to host zostanie zablokowany.
Opcja destemail określa adres email do powiadomień, a sendername określa nazwę nadawcy wysyłanych powiadomień. Są przydatne jeżeli chcemy skonfigurować reguły klienta poczty tak, aby powiadomienia wpadały do odpowiednich folderów.
Domyślną akcją jest blokowanie adresu IP przez polecenie iptables. Jeżeli chcemy to zmienić ustawiamy parametr banaction. Odpowiada on nazwom plików w katalogu /etc/fail2ban/action.d.
Plik /etc/fail2ban/jail.conf może być modyfikowany przez aktualizację systemu, więc autorzy zalecają zrobienie jego kopii do pliku /etc/fail2ban/jail.local.
$ cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Aby włączyć wykrywanie podejrzanych akcji w danej usłudze np. ssh znajdujemy sekcję odpowiedzialną za daną usługę.
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
Opcja enabled określa czy usługa ma być monitorowana. Parametr port określa numer portu tcp (numer portu pobierany jest z /etc/services). Z kolei filter wskazuje nazwę pliku filtra, który znajduje się w katalogu /etc/fail2ban/filter.d. logpath to oczywiście ścieżka dostępu do pliku logu systemowego bądź aplikacji, który ma być badany pod kątem podejrzanych zachowań.
Konfiguracja obserwowania usługi może nadpisywać ustawienia ogólne. Możemy zmienić ilość dozwolonych prób logowania przez opcję maxretry czy zmienić akcję podjętą przez Fail2Ban. W ten sposób możemy skonfigurować Fail2Ban tak, aby nie blokował połączeń, ale wysyłał powiadomienia o błędnych próbach.
Ciekawą opcją konfiguracyjną jest opcja recydywy.
[recidive]
enabled = true
filter = recidive
logpath = /var/log/fail2ban.log
action = iptables-allports[name=recidive]
sendmail-whois-lines[name=recidive, logpath=/var/log/fail2ban.log]
bantime = 604800 ; 1 week
findtime = 86400 ; 1 day
maxretry = 5
Fail2Ban obserwuje swój własny log i jeżeli było podjętych 5 akcji przez Fail2Ban, host zostanie zablokowany na tydzień.
Stan Fail2Ban możemy podglądać przez program klienta.
$ fail2ban-client status
Status
|- Number of jail: 3
`- Jail list: apache, ssh, ssh-ddos
Jeżeli chcemy podejrzeć stan konkretnej usługi wpisujemy polecenie:
$ fail2ban-client status ssh
Status for the jail: ssh
|- filter
| |- File list: /var/log/auth.log
| |- Currently failed: 1
| `- Total failed: 7
`- action
|- Currently banned: 1
| `- IP list: 62.244.147.78
`- Total banned: 1
Czasem może zdarzyć się, że zostanie zablokowany użytkownik, który po prostu zapomniał hasła i kilkukrotnie podał błędne. W takim przypadku również używamy klienta, aby odblokować hosta.
$ fail2ban-client set ssh unbanip 62.244.147.78
Dzięki modułowej budowie Fail2Ban możemy dodawać nowe filtry i akcje. Dobrym przykładem jest wtyczka wp-fail2ban, którą możemy pobrać z https://wordpress.org/plugins/wp-fail2ban/.
Plik wp-fail2ban.php kopiujemy do katalogu (główny katalog wordpressa)/wp-content/plugins/wp-fail2ban/. Włączamy wtyczkę w kokpicie Wordpressa.
Plik wordpress.conf kopiujemy do katalogu filtrów /etc/fail2ban/filter.d/
Następnie w pliku /etc/fail2ban/jail.local dopisujemy następujące liniki:
[wordpress]
enabled = true
filter = wordpress
logpath = /var/log/auth.log
maxretry = 3
Po trzech próbach błędnego logowania się do kokpitu Wordpressa nastąpi zablokowanie hosta.
Fail2Ban to nie tylko ochrona przed próbami zgadnięcia hasła, ale również przed atakami DDoS. Dzięki zablokowaniu podejrzanego ruchu z sieci zaoszczędzamy moc obliczeniową i pamięć. Własny plik logowania akcji pozwala łatwo wyłowić zagrożenia. Jak zabezpieczyc strone WWW? Modułowa budowa oraz możliwość wykorzystania wyrażeń regularnych w filtrach powoduje, że możemy stworzyć własne filtry np. do sklepów internetowych czy systemów zarządzania treścią.
Nasza firma od 2002 roku dba o rozwój technologiczny i bezpieczeństwo klientów. Oferujemy kompleksowe uslugi informatyczne, oparte na długoletnim doświadczeniu i wiedzy. Przeprowadzimy audyt bezpieczeństwa i zaproponujemy indywidualne rozwiązanie do twojej firmy. IT support to nasza specjalność!
our
support.
An IT company, or IT firm, deals with information technology in a broad sense. This includes, among other things:
- Software design and development: An IT company can create custom applications for other companies or software products for the mass market. Depending on their specialization, these can include mobile applications, desktop applications, web applications, or embedded systems.
- Consulting services: An IT company often provides experts to advise on implementing new technologies, optimizing business processes, or selecting appropriate technological solutions.
- Cloud solutions: Many IT companies specialize in implementing and managing cloud solutions, such as data storage, application hosting, and data analysis platforms.
- IT security: Protection against cyberattacks, security audits, implementing security policies, and network monitoring are just some of the IT companies' responsibilities in this area.
- IT infrastructure management: In this area, a company may manage servers, databases, networks, and endpoints.
- Technical Support and Service: An IT company may provide support for its own products or general IT support for other companies, managing their technology on a daily basis.
- Training: Many IT providers also offer training in software use and secure technology use.
- Hardware Solutions: Some IT companies may also provide and configure computer, server, or network hardware.
Depending on their specialization and size, an IT company may offer one, several, or all of the above solutions. When choosing a provider, it's important to thoroughly understand their services and tailor them to your individual needs.
At Support Online, we have been supporting companies for years with
- comprehensive user support (both on-site and remotely),
- we service computers, phones, tablets, and related network issues,
- we specialize in server administration: Windows, Linux/Unix,
- we support virtualizers such as KVM, Hyper-V, VMWare, and Proxmox,
- we support cloud services, particularly solutions such as Azure, Microsoft 365, and AWS,
- we monitor servers and devices on the internet,
- we consult on development, DRP, and support the stability of your business in the IT layer.
If you're looking for a good IT company, Support Online is the right place to grow your business.
It's worth using an IT company like Support Online when:
- You plan to implement new technologies or software in your company.
- You need specialized technology consulting.
- You want to optimize existing IT processes.
- You struggle with digital security issues.
- You need support in managing your IT infrastructure.
- You lack internal resources or expertise to implement certain technology projects.
Using external IT experts can bring benefits in terms of saving time and resources, and ensuring high-quality solutions.
Hiring an IT company like Support Online offers several key benefits over an IT freelancer:
- Support from the entire team: An IT company has a full team of specialists, from DevOps specialists and Cyber Security Specialists to IT Helpdesk Specialists, who possess diverse skills and experience, enabling faster problem resolution and the implementation of more complex projects.
- Reliability and stability: IT companies have an established reputation and track record, which can translate into greater reliability and stability of services.
- Maintenance and support: An IT company can offer service contracts, warranties, and after-sales support, which may be more difficult to obtain from an individual freelancer.
- Resources: Companies have access to more resources, tools, and technologies that can accelerate and improve project execution.
- Long-term availability: The risk of a freelancer disappearing or changing careers is greater than the risk of a well-established company going out of business.
However, it's worth noting that the choice between a company and a freelancer depends on your specific needs and situation. If you value peace of mind and a quick response to unexpected problems, it is worth choosing an IT company such as Support Online.
Partnering with IT Support Online offers the following advantages:
- Professional IT outsourcing: The company guarantees high-quality IT outsourcing services for businesses of all sizes.
- Comprehensive IT support: IT Support Online provides comprehensive IT support that meets the diverse needs of businesses.
- Saves time and money: With our support, clients can focus on their core business activities while reducing the costs associated with information technology management.
- Serving a diverse range of businesses: The company specializes in serving both small and medium-sized enterprises and large corporations, demonstrating its flexibility and ability to adapt to diverse client needs.
- Leadership in IT outsourcing: The company is recognized as a leader in IT outsourcing, particularly in the Poznań and Warsaw regions.
By partnering with our company, IT Support Online, businesses can count on a high standard of service and professionalism at every stage of the relationship.