O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
Acest tutorial vă va arăta cum să vă protejați serverul FreeBSD folosind firewall-ul OpenBSD PF. Vom presupune că aveți o instalare curată FreeBSD desfășurată de Vultr fără utilizatori adăugați. Vom face și alte lucruri pe lângă configurația Firewall, care va întări și securitatea serverului nostru FreeBSD. Înainte de configurarea firewall-ului, vom instala câteva pachete, deoarece instalarea implicită a FreeBSD vine cu un set minim de instrumente și pachete (ceea ce este corect), pentru a ne ușura munca.
Stocul implicit din FreeBSD este /bin/sh. Acesta este un shell de bază fără funcții automate. Vom folosi ceva mai bun. Vom instala zsh.
Mai întâi, instalați aceste pachete:
# 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 este lsprogramul de la Linux. Vrem doar să avem aceeași lscomandă în Linux și FreeBSD.
Adăugați un utilizator normal în sistem: (înlocuiți John cu numele dvs. de utilizator și nu uitați să adăugați utilizator la grupul de roți)
# 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!
Creați fișierul de configurare zsh:
# ee /home/your-username/.zshrc
Copiați acest lucru în fișierul dvs. .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
Rulați această comandă: (înlocuiți John cu numele dvs. de utilizator)
chown john:john /home/john/.zshrc
Acum, conectați-vă la serverul FreeBSD cu numele dvs. de utilizator și modificați parola root implicită:
<vultr>[~]$ su
Password:
<vultr>[~]# passwd
Changing local password for root
New Password:
Retype New Password:
<vultr>[~]#
Nu avem nevoie de sendmail. Opriți și dezactivați acest serviciu:
<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.
În continuare, vom schimba fișierul nostru rc.conf pentru a părea mai natural:
# ee /etc/rc.conf
Schimbă-l pentru a arăta astfel:
#----------- 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"
Editați /etc/hostsfișierul:
# ee /etc/hosts
Adăugați adresa dvs. IP și numele de gazdă:
::1 localhost localhost.ceph ceph
127.0.0.1 localhost localhost.ceph ceph
108.61.178.110 ceph.domain1.com ceph
Setați fusul orar:
# bsdconfig
Ori de câte ori puteți, dezactivați accesul la distanță pentru utilizatorul root. Majoritatea atacurilor asupra SSH vor încerca să acceseze prin contul de utilizator root. Conectați-vă întotdeauna cu numele de utilizator și apoi sula root. Doar utilizatorii wheelgrupului pot suface root. De aceea, am adăugat utilizatorul nostru la grupul de roți.
Dezactivați conectarea la root:
# ee /etc/ssh/sshd_config
Nu respectați această linie:
PermitRootLogin no
reboot:
# reboot
După terminarea repornirii, veți vedea un mesaj ca acesta în consola Vultr:
time correction of 3600 seconds exceeds sanity limit (1000); set clock manually to
correct UTC time.
De aceea, trebuie să corectăm manual ceasul. Urmați aceste comenzi, mai întâi supentru a roota:
$ su
Password:
# ntpdate 0.europe.pool.ntp.org
Acum, urmează să configurăm firewallul. OpenBSD PF este inclus în nucleul FreeBSD, deci nu trebuie să instalați niciun pachet.
Cu eeeditor, creați fișier /etc/firewall:
# ee /etc/firewall
Introduceți acest lucru: (înlocuiți orice adresă IP cu a ta)
#######################################################################
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
Creați /etc/trustedfișier. În acest fișier, vom pune IP-uri în care „avem încredere”.
# ee /etc/trusted
Adăugați câteva IP-uri:
# Hosting
1.2.0.0/16
# My friends
1.2.4.0/24
Acum niște explicații. Porturile junk și IP-urile junk sunt doar niște porturi / IP-uri pe care nu vrem să le vedem în jurnalele. Am făcut acest lucru cu această regulă:
# ---- 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
Acestea sunt doar setări implicite și nu trebuie să vă faceți griji în acest sens:
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
Această regulă blochează traficul SMTP ieșit de pe serverul dvs. (care este implicit pe Vultr).
# ---- block SMTP out
block quick proto tcp from $me to any port 25
Cu excepția bruteforcersrestului este destul de direct înainte.
# ---- 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 spune doar: Permiteți de la IP-uri de încredere la portul 22, dar numai 10 conexiuni concomitente pot fi realizate dintr-un IP sursă. Dacă are mai mult de 10, blocați acest IP și puneți-l în bruteforcers. Același lucru este valabil și pentru regula 20/60. Înseamnă un maxim de 20 de conexiuni în 60 de secunde.
Activați firewall-ul:
# ee /etc/rc.conf
Nu respectați aceste linii:
pf_enable="YES"
pf_rules="/etc/firewall"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""
reboot:
# reboot
Dacă ați făcut totul bine, atunci veți putea să vă autentificați și firewallul va fi activat. Nu trebuie să reporniți de fiecare dată când schimbați /etc/firewallfișierul. Doar fa-o:
# /etc/rc.d/pf reload
Vedeți cine încearcă să se conecteze la serverul dvs. în timp real:
# tcpdump -n -e -ttt -i pflog0
Afișați istoricul:
# tcpdump -n -e -ttt -r /var/log/pflog
Vedeți dacă aveți pe cineva în tabelul bruteforcers:
# pfctl -t bruteforcers -T show
Si asta e. Ați implementat cu succes firewallul PF pe serverul FreeBSD!
O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.
Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.
Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.
Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.
Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.
CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?
Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!
Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.
Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe