Jeśli chcesz uruchomić jakieś oprogramowanie serwerowe na swoim Raspberry Pi (ja.mi., Serwer WWW, serwer bazy danych, serwer Minecraft) i udostępnianie ich publicznie w Internecie (hosting), a następnie zabezpieczenie serwera Raspberry Pi za pomocą programu zapory jest bardzo ważne.
Istnieje wiele bezpłatnych i otwartych programów zapory ogniowej dostępnych w Raspberry Pi OS (oficjalny system operacyjny komputerów Raspberry Pi). Wśród tych programów UFW i Firewalld są najczęstszymi programami zapory.
W tym artykule użyję programu UFW Firewall, aby pokazać, jak zabezpieczyć swoje Raspberry Pi. Więc zacznijmy.
Rzeczy, których będziesz potrzebować:
Aby śledzić ten artykuł, będziesz potrzebować następujących rzeczy, aby skonfigurować Raspberry Pi w trybie bezgłowym:
Jeśli nie chcesz skonfigurować Raspberry Pi 4 w trybie bezgłowym, potrzebujesz również:
Jeśli potrzebujesz pomocy w flashowaniu obrazu Raspberry Pi OS na karcie MicroSD, sprawdź mój artykuł, jak zainstalować i używać Raspberry Pi Imager.
Jeśli jesteś początkującym Raspberry Pi i potrzebujesz pomocy w instalacji Raspberry Pi OS na Raspberry Pi, sprawdź mój artykuł, jak zainstalować Raspberry Pi OS na Raspberry Pi 4.
Jeśli potrzebujesz pomocy w konfiguracji Raspberry Pi, sprawdź mój artykuł, jak zainstalować i skonfigurować Raspberry Pi OS na Raspberry Pi 4 bez monitora zewnętrznego.
Aktualizacja Raspberry Pi OS:
Gdy staramy się zabezpieczyć nasz Raspberry Pi, dobrym pomysłem jest aktualizacja wszystkich istniejących pakietów Raspberry Pi OS. To sprawi, że Twój system Raspberry Pi jest bardziej bezpieczny, ponieważ zainstalowałby wszystkie najnowsze aktualizacje bezpieczeństwa i poprawki błędów.
Najpierw zaktualizuj pamięć podręczną repozytorium pakietów Apt za pomocą następującego polecenia:
Aktualizacja $ sudo apt
Aby zaktualizować wszystkie istniejące pakiety systemu operacyjnego Raspberry Pi, uruchom następujące polecenie:
$ sudo apt pełne upgrade
Aby potwierdzić instalację aktualizacji, naciśnij Y a następnie naciśnij <Wchodzić>.
Menedżer pakietów Apt pobranie wszystkich wymaganych pakietów z Internetu. Ukończenie może potrwać trochę czasu.
Po pobraniu pakietów menedżer pakietów Apt zainstaluje je jeden po drugim. Ukończenie może potrwać trochę czasu.
W tym momencie należy zainstalować wszystkie aktualizacje.
Aby zmiany uwzględniają, ponownie uruchom swoje Raspberry Pi za pomocą następującego polecenia:
$ sudo restart
Instalowanie UFW - nieskomplikowana zapora:
Po butach Raspberry Pi możesz zainstalować program zapory UFW z następującym poleceniem:
$ sudo apt instal UFW -y
UFW należy zainstalować.
Aby zmiany uwzględniają, ponownie uruchom swoje Raspberry Pi za pomocą następującego polecenia:
$ sudo restart
Gdy twoje raspberry pi buty, UFW Usługa systemu powinna być aktywna, jak widać na zrzucie ekranu poniżej.
$ sudo systemCtl status UFW
Możesz sprawdzić, czy UFW jest włączone za pomocą następującego polecenia:
Status $ sudo UFW
Jak widać, UFW nie jest domyślnie włączone.
Aby włączyć UFW, uruchom następujące polecenie:
$ sudo ufw
Jak widać, UFW jest teraz włączone.
Status $ sudo UFW
Umożliwienie dostępu do portów za pomocą profili aplikacji:
UFW ma pewne domyślne profile aplikacji. Każdy z profili aplikacji ma kilka predefiniowanych portów, na które możesz umożliwić/odmówić dostępu.
Aby wymienić wszystkie dostępne profile aplikacji, uruchom następujące polecenie:
Lista aplikacji $ sudo UFW
Wszystkie zainstalowane profile aplikacji powinny być wymienione.
Jeśli jesteś podłączony do swojego Raspberry Pi przez SSH lub VNC (jak ja), musisz umożliwić dostęp do OpenSsh I VNC Profile aplikacji. W przeciwnym razie następnym razem, gdy uruchomisz Raspberry Pi, nie będziesz mógł uzyskać do niego dostępu, ponieważ zapora będzie blokować wszystkie porty, w tym porty SSH i VNC. To jest bardzo ważne.
Możesz zobaczyć, jakie porty są zdefiniowane w profilu aplikacji (i.mi., OpenSsh) Z następującym poleceniem:
$ sudo UFW Informacje o aplikacji OpenSsh
Jak widzisz, Port TCP 22 jest zdefiniowany w profilu aplikacji OpenSsh.
W ten sam sposób, Port TCP 5900 jest zdefiniowane w VNC Profil aplikacji.
$ sudo ufw info aplikacji vnc
Aby umożliwić dostęp do portów zdefiniowanych w VNC Profil aplikacji, uruchom następujące polecenie:
$ sudo ufw zezwalaj na vnc
Jak widać, VNC Profil aplikacji jest dozwolony za pośrednictwem zapory.
$ sudo UFW numerowany
W ten sam sposób, zezwól na dostęp do portów zdefiniowanych w OpenSsh Profil aplikacji z następującym poleceniem:
$ sudo ufw pozwól openSsh
Jak widać, OpenSsh Profil aplikacji jest dozwolony za pośrednictwem zapory.
$ sudo UFW numerowany
Umożliwiając dostęp do portów za pomocą numeru portu:
Czasami port, na który chcesz umożliwić/odmówić dostępu, nie zostanie zdefiniowany w żadnych dostępnych profilach aplikacji. Musisz więc umożliwić/odmówić dostępu do tych portów za pomocą numeru portu.
Na przykład możesz umożliwić dostęp do Port TCP 8080 Z następującym poleceniem:
$ sudo ufw zezwala na 8080/tcp
Jak widać, Port TCP 8080 ma dostęp do zapory.
$ sudo UFW numerowany
W ten sam sposób możesz pozwolić na dostęp do Port UDP 8888 Z następującym poleceniem:
$ sudo ufw pozwól 8888/udp
Jak widać, Port UDP 8888 ma dostęp do zapory.
$ sudo UFW numerowany
Odmawianie dostępu do portów:
Domyślnym zachowaniem programu zapory UFW jest zaprzeczenie wszystkiego, co nie jest dozwolone. Więc nie musisz nic robić, aby odmówić dostępu do jakichkolwiek portów.
Ze względu na konkurencję pokażę ci, jak zaprzeczyć portom w UFW.
Na przykład, aby odmówić dostępu do Port TCP 9900, Uruchom następujące polecenie:
$ sudo ufw odmów 9900/tcp
Jak widać, Port TCP 9900 odmawia się dostępu za pośrednictwem zapory.
$ sudo UFW numerowany
W ten sam sposób możesz odmówić portów zdefiniowanych w profilu aplikacji (i.mi., Www) Jak następuje:
$ sudo ufw odmów www
Odmawianie określonych adresów IP dostęp do serwera:
Czasami może być konieczne zaprzeczenie dostępu do konkretnego adresu IP lub podsieci IP, aby chronić serwer Raspberry Pi przed atakami DDOS (rozproszone zaprzeczenie usługi). Możesz to zrobić z UFW.
Aby eksperymentować z odmową adresów IP, użyję serwera Apache.
Za pomocą następującego polecenia możesz zainstalować Webserver Apache na swoim Raspberry Pi:
$ sudo apt Zainstaluj apache2
Aby potwierdzić instalację, naciśnij Y a następnie naciśnij <Wchodzić>.
APT Pakiet Manager pobiera wszystkie pakiety z Internetu i zainstaluje je jeden po drugim. Ukończenie może potrwać trochę czasu.
W tym momencie powinien zostać zainstalowany serwera Apache.
Po zainstalowaniu serwera Apache, utwórz prostą stronę indeksu za pomocą następującego polecenia:
$ echo "Witamy w Linuxhint
"| sudo tee/var/www/html/index.html
Apache2 Usługa SystemD powinna być uruchomiona, jak widać na zrzucie ekranu poniżej.
$ sudo Systemctl Status Apache2
Zezwalaj na dostęp do portu Apache Webserver (Port TCP 80) Korzystanie z profilu aplikacji Www następująco:
$ sudo ufw pozwól www
Jak widać, porty zdefiniowane w profilu aplikacji Www ma dostęp do zapory.
Znajdź adres IP swojego Raspberry Pi za pomocą następującego polecenia:
$ hostName -i
Jak widać, adres IP mojego Raspberry Pi 192.168.0.106. Będzie dla Ciebie inaczej. Więc upewnij się, że odtąd zastąp go swoim.
Powinieneś uzyskać dostęp do serwera Apache z innych urządzeń, jak widać na zrzucie ekranu poniżej.
Komputer, którego używam do dostępu do serwera Apache, ma adres IP 192.168.0.109.
Zaprzeczyć adresowi IP 192.168.0.109 Dostęp do serwera Raspberry Pi, musisz dodać regułę zapory u góry (pozycja 1). Kolejność zasad UFW ma duże znaczenie. Najbardziej restrykcyjne zasady powinny przejść pierwsze.
$ sudo UFW numerowany
Zaprzeczyć adresowi IP 192.168.0.109 Dostęp do serwera Raspberry Pi, uruchom następujące polecenie:
$ sudo ufw wstaw 1 Odmowa z 192.168.0.109 do dowolnego
Zasada UFW, aby odmówić adresu IP 192.168.0.109 Dostęp do serwera Raspberry Pi powinien być najwyższą regułą, jak pokazano na zrzucie ekranu poniżej.
$ sudo UFW numerowany
Nie będziesz mógł uzyskać dostępu do serwera Apache działającego na Raspberry Pi z komputera z adresem IP 192.168.0.109 już, jak widać na zrzucie ekranu poniżej.
Ale możesz uzyskać dostęp do serwera Apache działającego na Raspberry Pi z innych komputerów.
Jeśli chcesz odmówić dostępu do podsieci IP, musisz dodać wymaganą regułę UFW przed dodaną wcześniejszą regułą, ponieważ jest to bardziej restrykcyjna zasada.
$ sudo UFW numerowany
Na przykład, aby odmówić dostępu do każdego komputera w podsieci IP 192.168.20.0/24, Uruchom następujące polecenie:
$ sudo ufw wstaw 1 Odmowa z 192.168.20.0/24 do dowolnego
Reguła UFW powinna być dodana we właściwej pozycji, jak pokazano na zrzucie ekranu poniżej. Teraz brak komputera z podsieci IP 192.168.20.0/24 powinien mieć dostęp do serwera Raspberry Pi.
$ sudo UFW numerowany
Usuwanie zasad UFW:
Czasami może być konieczne usunięcie niektórych zasad UFW. Jest to bardzo łatwe.
Możesz wymienić wszystkie dostępne reguły UFW za pomocą następującego polecenia:
$ sudo UFW numerowany
Wszystkie dostępne reguły UFW powinny być wymienione. Powiedzmy, że chcesz usunąć numer 10 reguły UFW (zasada na 10. pozycji).
Aby usunąć numer 10 reguły UFW, uruchom następujące polecenie:
$ sudo ufw usuń 10
Aby potwierdzić operację usuwania, naciśnij Y a następnie naciśnij <Wchodzić>.
Numer 10 reguły UFW należy usunąć.
Jak widać, reguła UFW jest usuwana, a reguły są ponownie uporządkowane (reguła UFW, która była w pozycji 11, jest teraz na pozycji 10).
$ sudo UFW numerowany
Wniosek:
W tym artykule pokazałem, jak zainstalować program zapory UFW na Raspberry Pi (uruchamiając Raspberry Pi OS). Pokazałem również, jak pozwolić/odmówić portów za pomocą programu zapory UFW. Pokazałem ci, jak odmówić określonego adresu IP lub podsieci IP od dostępu do Raspberry Pi za pomocą programu zapory UFW.