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.
Ten samouczek pokaże, jak chronić serwer FreeBSD za pomocą zapory ogniowej OpenBSD PF. Zakładamy, że masz czystą instalację FreeBSD wdrożoną przez Vultr bez dodanych użytkowników. Oprócz konfiguracji zapory zrobimy też inne rzeczy, które zwiększą bezpieczeństwo naszego serwera FreeBSD. Przed konfiguracją firewalla zainstalujemy niektóre pakiety, ponieważ domyślna instalacja FreeBSD zawiera minimalny zestaw narzędzi i pakietów (co jest poprawne), aby ułatwić nam pracę.
Domyślna powłoka w FreeBSD to /bin/sh
. Jest to podstawowa powłoka bez funkcji autouzupełniania. Użyjemy czegoś lepszego. Zainstalujemy zsh
.
Najpierw zainstaluj te pakiety:
# pkg install zsh gnuls
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Bootstrapping pkg from pkg+http://pkg.FreeBSD.org/freebsd:10:x86:64/latest, please wait...
...
GNULS to ls
program z Linuksa. Chcemy tylko mieć to samo ls
polecenie w Linuksie i FreeBSD.
Dodaj normalnego użytkownika do systemu: (zamień John na swoją nazwę użytkownika i nie zapomnij dodać użytkownika do grupy kół)
# adduser
Username: john
Full name: John Doe
Uid (Leave empty for default):
Login group [john]:
Login group is john. Invite john into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh zsh rzsh nologin) [sh]: zsh
Home directory [/home/john]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : john
Password : *****
Full Name : John Doe
Uid : 1001
Class :
Groups : john wheel
Home : /home/john
Home Mode :
Shell : /usr/local/bin/zsh
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (john) to the user database.
Add another user? (yes/no): no
Goodbye!
Utwórz plik konfiguracyjny zsh:
# ee /home/your-username/.zshrc
Skopiuj to do pliku .zshrc:
PS1="<%U%m%u>$[%B%1~%b]%(#.#.$) "
bindkey -e
alias su='su -m'
alias du='du -h -d0'
alias df='df -h'
alias l=less
alias ll='gnuls --color=always -l'
alias ls='gnuls --color=always'
alias pkg_ver='pkg version -v -l "<" | > upgrade'
export EDITOR=ee
autoload -U colors && colors
autoload -U promptinit && promptinit
autoload -U compinit && compinit
# History settings
SAVEHIST=1000
HISTSIZE=1000
HISTFILE=~/.history
setopt histignoredups appendhistory
Uruchom to polecenie: (zamień John na swoją nazwę użytkownika)
chown john:john /home/john/.zshrc
Teraz zaloguj się do serwera FreeBSD przy użyciu swojej nazwy użytkownika i zmień domyślne hasło roota:
<vultr>[~]$ su
Password:
<vultr>[~]# passwd
Changing local password for root
New Password:
Retype New Password:
<vultr>[~]#
Nie potrzebujemy sendmaila. Zatrzymaj i wyłącz tę usługę:
<vultr>[~]# /etc/rc.d/sendmail stop
Stopping sendmail.
Waiting for PIDS: 7843.
sendmail_submit not running? (check /var/run/sendmail.pid).
Stopping sendmail_msp_queue.
Waiting for PIDS: 7846.
Następnie zmienimy nasz plik rc.conf, aby wyglądał bardziej naturalnie:
# ee /etc/rc.conf
Zmień go, aby wyglądał następująco:
#----------- NETWORKING ------------------------------------------------#
hostname="ceph.domain1.com" # replace ceph.domain1.com with your domain
ifconfig_vtnet0="dhcp"
static_routes=linklocal
route_linklocal="-net 169.254.0.0/16 -interface vtnet0"
#--------- SERVICES BSD LOCAL ----------------------------------------#
sshd_enable="YES"
ntpd_enable="YES"
#pf_enable="YES"
#pf_rules="/etc/firewall"
#pf_flags=""
#pflog_enable="YES"
#pflog_logfile="/var/log/pflog"
#pflog_flags=""
sendmail_enable="NONE"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
Edytuj /etc/hosts
plik:
# ee /etc/hosts
Dodaj swój adres IP i nazwę hosta:
::1 localhost localhost.ceph ceph
127.0.0.1 localhost localhost.ceph ceph
108.61.178.110 ceph.domain1.com ceph
Ustaw strefę czasową:
# bsdconfig
Gdy tylko możesz, wyłącz dostęp zdalny dla użytkownika root. Większość ataków na SSH próbuje uzyskać dostęp za pośrednictwem konta użytkownika root. Zawsze łącz się ze swoją nazwą użytkownika, a następnie su
zrootuj. Tylko użytkownicy z wheel
grupy mogą su
rootować. Dlatego dodaliśmy naszego użytkownika do grupy kół.
Wyłącz logowanie roota:
# ee /etc/ssh/sshd_config
Odkomentuj tę linię:
PermitRootLogin no
Restart:
# reboot
Po zakończeniu ponownego uruchomienia w konsoli Vultr zobaczysz taki komunikat:
time correction of 3600 seconds exceeds sanity limit (1000); set clock manually to
correct UTC time.
Dlatego musimy ręcznie skorygować zegar. Wykonaj następujące polecenia, su
aby najpierw zrootować:
$ su
Password:
# ntpdate 0.europe.pool.ntp.org
Teraz skonfigurujemy zaporę ogniową. OpenBSD PF jest zawarty w jądrze FreeBSD, więc nie musisz instalować żadnych pakietów.
Za pomocą ee
edytora utwórz plik /etc/firewall
:
# ee /etc/firewall
Wstaw to: (zamień adresy IP na swoje)
#######################################################################
me="vtnet0"
table <bruteforcers> persist
table <trusted> persist file "/etc/trusted"
icmp_types = "echoreq"
junk_ports="{ 135,137,138,139,445,68,67,3222 }"
junk_ip="224.0.0.0/4"
set loginterface vtnet0
scrub on vtnet0 reassemble tcp no-df random-id
# ---- First rule obligatory "Pass all on loopback"
pass quick on lo0 all
# ---- Block junk logs
block quick proto { tcp, udp } from any to $junk_ip
block quick proto { tcp, udp } from any to any port $junk_ports
# ---- Second rule "Block all in and pass all out"
block in log all
pass out all keep state
############### FIREWALL ###############################################
# ---- Allow all traffic from my Home
pass quick proto {tcp, udp} from 1.2.3.4 to $me keep state
# ---- block SMTP out
block quick proto tcp from $me to any port 25
# ---- Allow incoming Web traffic
pass quick proto tcp from any to $me port { 80, 443 } flags S/SA keep state
# ---- Allow my team member SSH access
pass quick proto tcp from 1.2.3.5 to $me port ssh flags S/SA keep state
# ---- Block bruteforcers
block log quick from <bruteforcers>
# ---- Allow SSH from trusted sources, but block bruteforcers
pass quick proto tcp from <trusted> to $me port ssh \
flags S/SA keep state \
(max-src-conn 10, max-src-conn-rate 20/60, \
overload <bruteforcers> flush global)
# ---- Allow ICMP
pass in inet proto icmp all icmp-type $icmp_types keep state
pass out inet proto icmp all icmp-type $icmp_types keep state
Utwórz /etc/trusted
plik. W tym pliku umieścimy adresy IP, którym „ufamy”.
# ee /etc/trusted
Dodaj kilka adresów IP:
# Hosting
1.2.0.0/16
# My friends
1.2.4.0/24
Teraz jakieś wyjaśnienie. Niepotrzebne porty i niepotrzebne adresy IP to tylko niektóre porty / adresy IP, których nie chcemy widzieć w logach. Zrobiliśmy to z tą regułą:
# ---- Block junk logs
block quick proto { tcp, udp } from any to $junk_ip
block quick proto { tcp, udp } from any to any port $junk_ports
Są to tylko wartości domyślne i nie musisz się o to martwić:
icmp_types = "echoreq"
set loginterface vtnet0
scrub on vtnet0 reassemble tcp no-df random-id
pass quick on lo0 all
block in log all
pass out all keep state
Ta reguła blokuje wychodzący ruch SMTP z twojego serwera (który jest domyślny w Vultr).
# ---- block SMTP out
block quick proto tcp from $me to any port 25
Tyle bruteforcers
że reszta jest dość prosta.
# ---- Allow SSH from trusted sources, but block bruteforcers
pass quick proto tcp from <trusted> to $me port ssh \
flags S/SA keep state \
(max-src-conn 10, max-src-conn-rate 20/60, \
overload <bruteforcers> flush global)
Bruteforcers mówi po prostu: Zezwól z <zaufanych> adresów IP na port 22, ale tylko 10 jednoczesnych połączeń może być nawiązanych z jednego źródłowego adresu IP. Jeśli jest więcej niż 10, zablokuj ten adres IP i umieść go w tabeli bruteforcers. To samo dotyczy reguły 20/60. Oznacza to maksymalnie 20 połączeń w 60 sekund.
Włącz Firewall:
# ee /etc/rc.conf
Odkomentuj te linie:
pf_enable="YES"
pf_rules="/etc/firewall"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""
Restart:
# reboot
Jeśli zrobiłeś wszystko dobrze, będziesz mógł się zalogować i zapora zostanie włączona. Nie musisz restartować się przy każdej zmianie /etc/firewall
pliku. Po prostu zrób:
# /etc/rc.d/pf reload
Zobacz, kto próbuje połączyć się z Twoim serwerem w czasie rzeczywistym:
# tcpdump -n -e -ttt -i pflog0
Pokaż historię:
# tcpdump -n -e -ttt -r /var/log/pflog
Sprawdź, czy masz kogoś w tabeli bruteforcers:
# pfctl -t bruteforcers -T show
I to wszystko. Udało Ci się zaimplementować zaporę PF na serwerze FreeBSD!
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.