Funkcjonalności warstw architektury referencyjnej Big Data
Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.
iptables
jest potężnym narzędziem używanym do konfigurowania zintegrowanej zapory jądra Linux. Jest on fabrycznie zainstalowany w większości dystrybucji Ubuntu, jednak jeśli używasz dostosowanej wersji Ubuntu lub działasz w kontenerze, najprawdopodobniej będziesz musiał zainstalować ją ręcznie.
sudo apt-get install iptables iptables-persistent
Jeśli po instalacji pojawi się pytanie, czy zapisać bieżące reguły, w tej chwili nie ma to znaczenia, ponieważ zamierzasz usunąć lub utworzyć nowe reguły później.
Możesz użyć netcat
polecenia (na innym komputerze niż serwer), aby sprawdzić, który z portów jest otwarty, czy zamknięty.
nc -z -w5 -v SERVER_IP PORT
nc
to polecenie netcat.-z
po prostu wyślij pakiet bez ładunku.-w5
poczekaj do 5 sekund na odpowiedź.-v
tryb pełny.SERVER_IP
swój adres serwera.PORT
port, który chcesz przetestować, jeśli jest otwarty (np 22
.).Na serwerze możesz użyć netstat
polecenia, aby zobaczyć, które porty nasłuchują połączeń.
sudo netstat -tulpn
Uwaga: Chociaż netstat
przydatne jest znalezienie portów, z którymi chcesz pracować, powinieneś być świadomy aplikacji, które obecnie zainstalowałeś na serwerze i które porty nasłuchują, nie musisz zezwalać na każdy port, który znajdziesz na netstat
wyjściu .
sudo iptables -A INPUT -p tcp -m tcp --dport 22 --m geoip --src-cc PE -j ACCEPT
-A INPUT
dodaj regułę do INPUT
łańcucha, łańcuch to grupa reguł, z których najczęściej korzystamy w tym przewodniku INPUT
, OUTPUT
i PREROUTING
.-p tcp
ustaw tcp
jako protokół, do którego będzie miała zastosowanie ta reguła, możesz także użyć innych protokołów, takich jak udp
, icmp
lub all
.-m tcp
użyj tcp
modułu. iptables
obsługuje dodatkowe funkcje za pośrednictwem modułów, z których niektóre są już fabrycznie zainstalowane, iptables
a inne, takie jak geoip
moduł.--dport 22
polecenia zaczynające się od --
wskazują dodatkowe opcje dla wcześniej używanego modułu, w tym przypadku powiemy tcp
modułowi, aby zastosował się tylko do portu 22
.-m geoip
użyj geoip
modułu. Ograniczy to pakiety dla poszczególnych krajów (więcej informacji w kroku 5).--src-cc PE
powiedz geoip
modułowi, aby ograniczył przychodzące pakiety do tych, które pochodzą z Peru. Aby wyszukać więcej kodów krajów ISO 3166 country codes
w Internecie.-j ACCEPT
-j
teza mówi iptables
, co zrobić, jeśli pakiet pasuje ograniczeń określonych w poprzednich argumentów. W tym przypadku będzie to ACCEPT
te pakiety, są inne opcje REJECT
, DROP
i wiele innych. Możesz znaleźć więcej opcji, wyszukując iptables jump targets
w Internecie.Wymień wszystkie reguły.
sudo iptables -L
Wymień wszystkie polecenia, które zostały użyte do utworzenia aktualnie używanych reguł, przydatne do edycji lub usuwania reguł.
sudo iptables -S
Aby usunąć określoną regułę, wybierz regułę sudo iptables -S
i zastąp -A
ją -D
.
# -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
sudo iptables -D INPUT -p tcp -m tcp --dport 22 -j ACCEPT
Wyświetl wszystkie numerowane reguły w INPUT
łańcuchu.
sudo iptables -L INPUT --line-numbers
Usuń regułę numerowaną.
sudo iptables -D INPUT 2
Aby wyczyścić wszystkie zasady.
sudo iptables -F
Ostrzeżenie: możesz stracić połączenie, jeśli jest połączone przez SSH .
Wyczyść tylko reguły w OUTPUT
łańcuchu.
sudo iptables -F OUTPUT
Zezwalaj SSH
na eth0
interfejs
sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-i eth0
zastosuj regułę do określonego interfejsu, aby zezwolić na dowolny interfejs, usuń to polecenie.Aby ograniczyć przychodzące pakiety do określonego adresu IP (tj 10.0.3.1/32
.).
sudo iptables -A INPUT -i eth0 -s 10.0.3.1/32 -p tcp -m tcp --dport 22 -j ACCEPT
-s 10.0.3.1/32
określa adres IP / podsieć, z której można nawiązywać połączenia.Ustaw domyślne reguły łańcucha.
Ostrzeżenie: przed kontynuowaniem upewnij się, że zastosowałeś poprawne reguły SSH, jeśli pracujesz na zdalnym serwerze .
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
-P INPUT DROP
odrzuca wszystkie przychodzące pakiety (tzn. nikt nie będzie mógł połączyć się z twoimi działającymi serwerami, takimi jak Apache, SQL itp.).-P FORWARD DROP
odrzuca wszystkie przekazane pakiety (tj. gdy używasz swojego systemu jako routera).-P OUTPUT ACCEPT
zezwala na wszystkie pakiety wychodzące (tj. podczas wykonywania HTTP
żądania).Zezwól na cały ruch na interfejsie sprzężenia zwrotnego ( zalecane ).
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
Zapisz aktualne iptables
zasady.
sudo netfilter-persistent save
sudo netfilter-persistent reload
Jeśli działasz w kontenerze, netfilter-persistent
polecenie najprawdopodobniej nie zadziała, więc musisz ponownie skonfigurować iptables-persistent
pakiet.
sudo dpkg-reconfigure iptables-persistent
Zezwalaj na zapytania DNS.
sudo iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
sudo iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
Użyj state
modułu, aby zezwolić na pakiety wychodzące RELATED
i je ESTABLISHED
wychodzić.
sudo iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Zezwól na pożądane porty; w tym przypadku HTTP
porty.
sudo iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
Więcej portów, których możesz użyć.
FTP
: tcp na porcie 21HTTPS
: tcp na porcie 443DHCP
: udp w porcie 67NTP
: udp na porcie 123Uwaga: jeśli chcesz zezwolić, apt-get
konieczne może być zezwolenie FTP
iHTTPS
.
Zezwalaj na zwracany ruch tylko dla połączeń RELATED
już ESTABLISHED
nawiązanych ( zalecane, ponieważ czasami wymagana jest komunikacja dwukierunkowa).
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Zezwalaj na żądania ping z zewnątrz.
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
Przekaż ruch do eth0
portu 2200
do 10.0.3.21:22
(przydatne, jeśli chcesz udostępnić serwer SSH działający w kontenerze).
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2200 -j DNAT --to-destination 10.0.3.21:22
Jeśli pomyślnie zalogujesz się na serwerze za pomocą SSH, zostanie utworzone trwałe połączenie (tzn. Nie będzie żadnych nowych połączeń, nawet jeśli jesteś połączony przez ponad 1 godzinę). Jeśli się nie powiedzie i spróbujesz zalogować się ponownie, zostanie utworzone nowe połączenie. Spowoduje to zablokowanie ciągłych prób logowania SSH poprzez ograniczenie nowych połączeń na godzinę.
sudo iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
sudo iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 3600 --hitcount 4 -j DROP
Przekieruj wszystkie żądania z portu 443
do portu 4430
(przydatne, jeśli chcesz połączyć się z portem 443
bez root
).
sudo iptables -t nat -A PREROUTING -i ens3 -p tcp --dport 443 -j REDIRECT --to-port 4430
sudo iptables -A INPUT -p tcp -m tcp --dport 4430 -m geoip --src-cc PE -j ACCEPT
ens3
interfejs sieciowy.-m geoip
moduł blokowy kraju (patrz krok 5).Ostrzeżenie: nie używaj lo
, system operacyjny odrzuci wszystkie pakiety przekierowane do interfejsu pętli zwrotnej .
xtables-addons
Możesz zainstalować xtables-addons
moduł różnymi metodami, skorzystaj z metody instalacji, która najbardziej Ci odpowiada.
Zainstaluj za pomocą apt-get
.
sudo apt-get install xtables-addons-common
Zainstaluj za pomocą module-assistant
.
sudo apt-get install module-assistant xtables-addons-source
sudo module-assistant --verbose --text-mode auto-install xtables-addons
Zainstaluj ze źródła.
sudo apt-get install git bc libncurses5-dev libtext-csv-xs-perl autoconf automake libtool xutils-dev iptables-dev
git clone git://git.code.sf.net/p/xtables-addons/xtables-addons
cd xtables-addons
./autogen.sh
./configure
make
sudo make install
Zbuduj bazę danych „krajów”.
sudo apt-get install libtext-csv-xs-perl unzip
sudo mkdir /usr/share/xt_geoip
sudo /usr/lib/xtables-addons/xt_geoip_dl
sudo /usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv
sudo rm GeoIPCountryCSV.zip GeoIPCountryWhois.csv GeoIPv6.csv
Uruchom ponownie system.
sudo reboot
Po xtables-addons
pomyślnym zainstalowaniu, po pierwszym ponownym uruchomieniu, uruchom, w depmod
przeciwnym razie blokowanie kraju nie będzie działać poprawnie (jest to wymagane tylko po raz pierwszy).
sudo depmod
Utwórz skrypt w, /etc/cron.monthly/geoip-updater
aby co geoip
miesiąc aktualizować bazę danych.
#!/usr/bin/env bash
# this script is intended to run with sudo privileges
echo 'Removing old database---------------------------------------------------'
rm -rf /usr/share/xt_geoip/*
mkdir -p /usr/share/xt_geoip
echo 'Downloading country databases-------------------------------------------'
mkdir /tmp/geoip-updater
cd /tmp/geoip-updater
/usr/lib/xtables-addons/xt_geoip_dl
echo 'Building geoip database-------------------------------------------------'
/usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv
echo 'Removing temporary files------------------------------------------------'
cd /tmp
rm -rf /tmp/geoip-updater
Uczyń /etc/cron.monthly/geoip-updater
plik wykonywalny.
sudo chmod +x /etc/cron.monthly/geoip-updater
_Uwaga: Jeśli pojawia się iptables: No chain/target/match by that name
błąd podczas próby zastosowania geoip
reguły, możliwe, że xtables-addons
nie została poprawnie zainstalowana. Wypróbuj inną metodę instalacji.
Blokuj wszystkie przychodzące pakiety z Chin, Hongkongu, Rosji i Korei.
sudo iptables -A INPUT -m geoip --src-cc CN,HK,RU,KR -j DROP
Zezwól na przychodzące pakiety do portu 80
z dowolnego miejsca z wyjątkiem powyższych krajów.
sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
Zezwalaj na przychodzące pakiety w ens3
interfejsie na porcie 22
tylko z Peru (możesz wybrać kod kraju, z którego chcesz akceptować pakiety, na przykład US
dla Stanów Zjednoczonych).
sudo iptables -A INPUT -i ens3 -p tcp -m tcp --dport 22 -m geoip --src-cc PE -j ACCEPT
Zezwalaj na przychodzące pakiety 443
tylko do portu z Peru.
sudo iptables -A INPUT -p tcp -m tcp --dport 443 -m geoip --src-cc PE -j ACCEPT
Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.
Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.
13 komercyjnych narzędzi do ekstrakcji danych z Big Data
Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+
Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.
Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…
Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą
Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.
Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.
Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.