Vzpon strojev: aplikacije AI v resničnem svetu
Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.
Ta vadnica vam bo pokazala, kako zaščitite svoj strežnik FreeBSD s požarnim zidom OpenBSD PF. Predvidevamo, da imate čisto namestitev FreeBSD, ki jo je namestil Vultr, brez dodanih uporabnikov. Poleg konfiguracije požarnega zidu bomo naredili še nekaj drugih stvari, ki bodo okrepile tudi varnost našega strežnika FreeBSD. Pred konfiguracijo požarnega zidu bomo namestili nekaj paketov, saj je privzeta namestitev FreeBSD opremljena z minimalnim naborom orodij in paketov (kar je pravilno), da nam olajša delo.
Privzeta lupina v FreeBSD je /bin/sh. To je osnovna lupina brez funkcij samodokončanja. Uporabili bomo nekaj boljšega. Namestili bomo zsh.
Najprej namestite te pakete:
# 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 je lsprogram iz Linuxa. Želimo le imeti enak lsukaz v Linuxu in FreeBSD.
Dodajte običajnega uporabnika v sistem: (zamenjajte john s svojim uporabniškim imenom in ne pozabite dodati uporabnika v skupino koles)
# 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!
Ustvarite konfiguracijsko datoteko zsh:
# ee /home/your-username/.zshrc
Kopirajte to v svojo datoteko .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
Zaženite ta ukaz: (zamenjajte john s svojim uporabniškim imenom)
chown john:john /home/john/.zshrc
Zdaj se prijavite v strežnik FreeBSD s svojim uporabniškim imenom in spremenite privzeto root geslo:
<vultr>[~]$ su
Password:
<vultr>[~]# passwd
Changing local password for root
New Password:
Retype New Password:
<vultr>[~]#
Ne potrebujemo sendmaila. Ustavite in onemogočite to storitev:
<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.
Nato bomo spremenili našo datoteko rc.conf, da bo videti bolj naravno:
# ee /etc/rc.conf
Spremenite, da bo videti takole:
#----------- 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"
Uredi /etc/hostsdatoteko:
# ee /etc/hosts
Dodajte svoj IP naslov in ime gostitelja:
::1 localhost localhost.ceph ceph
127.0.0.1 localhost localhost.ceph ceph
108.61.178.110 ceph.domain1.com ceph
Nastavi časovni pas:
# bsdconfig
Kadar koli lahko, onemogočite oddaljeni dostop za root uporabnika. Večina napadov na SSH bo poskušala dostopati prek uporabniškega računa root. Vedno se povežite s svojim uporabniškim imenom in nato suz root. Samo uporabniki iz wheelskupine lahko surootajo. Zato smo v skupino koles dodali našega uporabnika.
Onemogoči root prijavo:
# ee /etc/ssh/sshd_config
Odkomentiraj to vrstico:
PermitRootLogin no
Ponovni zagon:
# reboot
Ko se vnovični zagon konča, boste v konzoli Vultr videli takšno sporočilo:
time correction of 3600 seconds exceeds sanity limit (1000); set clock manually to
correct UTC time.
Zato moramo uro popravljati ročno. Sledite tem ukazom, najprej suza root:
$ su
Password:
# ntpdate 0.europe.pool.ntp.org
Zdaj bomo konfigurirali požarni zid. OpenBSD PF je vključen v jedro FreeBSD, tako da vam ni treba namestiti nobenih paketov.
Z eeurejevalnikom ustvarite datoteko /etc/firewall:
# ee /etc/firewall
Vstavite to: (zamenjajte vse naslove IP s svojimi)
#######################################################################
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
Ustvari /etc/trusteddatoteko. V to datoteko bomo dali IP-je, ki jim "zaupamo".
# ee /etc/trusted
Dodajte nekaj IP-jev:
# Hosting
1.2.0.0/16
# My friends
1.2.4.0/24
Zdaj pa nekaj pojasnil. Neželena vrata in neželeni naslovi so le nekatera vrata/IP-ji, ki jih ne želimo videti v dnevnikih. To smo naredili s tem pravilom:
# ---- 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
To so samo privzete nastavitve in za to vam ni treba skrbeti:
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
To pravilo blokira odhodni promet SMTP iz vašega strežnika (kar je privzeto na Vultru).
# ---- block SMTP out
block quick proto tcp from $me to any port 25
Razen bruteforcersostalo je precej naravnost.
# ---- 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 samo pravi: Dovoli od <zaupanja vrednih> IP-jev do vrat 22, vendar je z enega izvornega IP-ja mogoče vzpostaviti samo 10 sočasnih povezav. Če je več kot 10, blokirajte ta IP in ga vstavite v tabele bruteforcer. Enako velja za pravilo 20/60. To pomeni največ 20 povezav v 60 sekundah.
Omogoči požarni zid:
# ee /etc/rc.conf
Odkomentiraj te vrstice:
pf_enable="YES"
pf_rules="/etc/firewall"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""
Ponovni zagon:
# reboot
Če ste vse naredili pravilno, se boste lahko prijavili in požarni zid bo omogočen. Ni vam treba znova zagnati vsakič, ko spremenite /etc/firewalldatoteko. Samo naredi:
# /etc/rc.d/pf reload
Oglejte si, kdo se poskuša povezati z vašim strežnikom v realnem času:
# tcpdump -n -e -ttt -i pflog0
Pokaži zgodovino:
# tcpdump -n -e -ttt -r /var/log/pflog
Poglejte, če imate koga v mizi bruteforcerjev:
# pfctl -t bruteforcers -T show
In to je to. Uspešno ste implementirali požarni zid PF na strežniku FreeBSD!
Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.
Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.
Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.
Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.
Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…
Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.
Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.
Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.
V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.
Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več