Kaip apsaugoti FreeBSD naudojant PF ugniasienę

Kaip apsaugoti FreeBSD naudojant PF ugniasienę

Ši pamoka parodys, kaip apsaugoti FreeBSD serverį naudojant OpenBSD PF ugniasienę. Darysime prielaidą, kad turite švarų „FreeBSD“ diegimą, kurį įdiegė „Vultr“, nepridėjus jokių vartotojų. Be ugniasienės konfigūravimo atliksime ir kitų dalykų, kurie taip pat sustiprins mūsų FreeBSD serverio saugumą. Prieš konfigūruodami ugniasienę, įdiegsime kai kuriuos paketus, nes numatytasis FreeBSD diegimas pateikiamas su minimaliu įrankių ir paketų rinkiniu (tai yra teisinga), kad mums būtų lengviau dirbti.

Numatytasis FreeBSD apvalkalas yra /bin/sh. Tai pagrindinis apvalkalas be automatinio užbaigimo funkcijų. Naudosime ką nors geresnio. Mes įdiegsime zsh.

Pirmiausia įdiekite šiuos paketus:

# 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 yra „ lsLinux “ programa. Mes tiesiog norime turėti tą pačią lskomandą Linux ir FreeBSD.

Pridėti įprastą vartotoją prie sistemos: (pakeiskite john savo vartotojo vardu ir nepamirškite įtraukti vartotojo į ratų grupę)

# 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!

Sukurkite zsh konfigūracijos failą:

# ee /home/your-username/.zshrc

Nukopijuokite tai į savo .zshrc failą:

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

Vykdykite šią komandą: (pakeiskite john savo vartotojo vardu)

chown john:john /home/john/.zshrc

Dabar prisijunkite prie FreeBSD serverio naudodami savo vartotojo vardą ir pakeiskite numatytąjį root slaptažodį:

<vultr>[~]$ su
Password:
<vultr>[~]# passwd 
Changing local password for root
New Password:
Retype New Password:
<vultr>[~]# 

Mums nereikia siuntimo pašto. Sustabdykite ir išjunkite šią paslaugą:

<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.

Tada pakeisime rc.conf failą, kad jis atrodytų natūraliau:

# ee /etc/rc.conf

Pakeiskite, kad atrodytų taip:

#----------- 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"

Redaguoti /etc/hostsfailą:

# ee /etc/hosts

Pridėkite savo IP adresą ir pagrindinio kompiuterio pavadinimą:

::1                     localhost localhost.ceph ceph
127.0.0.1               localhost localhost.ceph ceph
108.61.178.110          ceph.domain1.com       ceph

Nustatyti laiko juostą:

# bsdconfig

Kai tik galite, išjunkite pagrindinio vartotojo nuotolinę prieigą. Dauguma SSH atakų bandys pasiekti per root vartotojo abonementą. Visada prisijunkite naudodami savo vartotojo vardą ir tada suprie root. Tik wheelgrupės vartotojai gali prisijungti suprie root. Štai kodėl mes įtraukėme savo vartotoją į ratų grupę.

Išjungti root prisijungimą:

# ee /etc/ssh/sshd_config

Atšaukti šios eilutės komentarą:

PermitRootLogin no

Perkraukite:

# reboot

Pasibaigus perkrovimui, „Vultr“ konsolėje pamatysite tokį pranešimą:

time correction of 3600 seconds exceeds sanity limit (1000); set clock manually to
correct UTC time.

Štai kodėl mums reikia rankiniu būdu pataisyti laikrodį. Vykdykite šias komandas, pirmiausia sunorėdami root:

$ su
Password:
# ntpdate 0.europe.pool.ntp.org

Dabar mes sukonfigūruosime ugniasienę. OpenBSD PF yra įtrauktas į FreeBSD branduolį, todėl jums nereikia diegti jokių paketų.

Su eeredaktoriumi sukurkite failą /etc/firewall:

# ee /etc/firewall

Įdėkite tai: (pakeiskite bet kokius IP adresus savo)

#######################################################################
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

Sukurti /etc/trustedfailą. Šiame faile įdėsime IP adresus, kuriais „pasitikime“.

# ee /etc/trusted

Pridėkite keletą IP:

# Hosting
1.2.0.0/16

# My friends
1.2.4.0/24

Dabar šiek tiek paaiškinimo. Nepageidaujami prievadai ir nepageidaujami IP yra tik keletas prievadų / IP, kurių nenorime matyti žurnaluose. Mes tai padarėme pagal šią taisyklę:

# ---- 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

Tai tik numatytieji nustatymai ir jums nereikia dėl to jaudintis:

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

Ši taisyklė blokuoja išeinantį SMTP srautą iš jūsų serverio (kuris yra numatytasis Vultr).

# ---- block SMTP out 
block quick proto tcp from $me to any port 25

Išskyrus tai, bruteforcerskad visa kita yra gana paprasta.

# ---- 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 tiesiog sako: Leisti nuo <patikimų> IP iki 22 prievado, bet iš vieno šaltinio IP galima užmegzti tik 10 lygiagrečių ryšių. Jei daugiau nei 10, užblokuokite šį IP ir įdėkite į stalo bruteforcers. Tas pats pasakytina apie 20/60 taisyklę. Tai reiškia ne daugiau kaip 20 jungčių per 60 sekundžių.

Įjungti ugniasienę:

# ee /etc/rc.conf

Atšaukti šių eilučių komentarus:

pf_enable="YES"
pf_rules="/etc/firewall"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""

Perkraukite:

# reboot 

Jei viską padarėte teisingai, galėsite prisijungti ir ugniasienė bus įjungta. Nereikia perkrauti kiekvieną kartą, kai keičiate /etc/firewallfailą. Tiesiog daryk:

# /etc/rc.d/pf reload

Pažiūrėkite, kas bando prisijungti prie jūsų serverio realiuoju laiku:

# tcpdump -n -e -ttt -i pflog0

Rodyti istoriją:

# tcpdump -n -e -ttt -r /var/log/pflog

Pažiūrėkite, ar turite ką nors bruteforcers lentelėje:

# pfctl -t bruteforcers -T show

Štai ir viskas. Jūs sėkmingai įdiegėte PF ugniasienę FreeBSD serveryje!

Tags: #BSD

Kaip įdiegti Tiny Tiny RSS skaitytuvą „FreeBSD 11 FAMP VPS“.

Kaip įdiegti Tiny Tiny RSS skaitytuvą „FreeBSD 11 FAMP VPS“.

Naudojate kitą sistemą? Tiny Tiny RSS Reader yra nemokama ir atviro kodo savarankiškai priglobta žiniatinklio naujienų kanalo (RSS/Atom) skaitytuvas ir kaupiklis, skirtas

Kaip įdiegti Wiki.js FreeBSD 11

Kaip įdiegti Wiki.js FreeBSD 11

Naudojate kitą sistemą? Wiki.js yra nemokama atvirojo kodo moderni wiki programa, sukurta naudojant Node.js, MongoDB, Git ir Markdown. Wiki.js šaltinio kodas yra viešas

Kaip įdiegti Pagekit 1.0 TVS FreeBSD 11 FAMP VPS

Kaip įdiegti Pagekit 1.0 TVS FreeBSD 11 FAMP VPS

Naudojate kitą sistemą? Pagekit 1.0 TVS yra graži, modulinė, išplečiama ir lengva, nemokama ir atviro kodo turinio valdymo sistema (TVS) su

Kaip įdiegti MODX Revolution FreeBSD 11 FAMP VPS

Kaip įdiegti MODX Revolution FreeBSD 11 FAMP VPS

Naudojate kitą sistemą? MODX Revolution yra greita, lanksti, keičiamo dydžio atvirojo kodo, įmonės lygio turinio valdymo sistema (TVS), parašyta PHP. Tai i

Nustatyti OpenBSD 5.5 64 bitų

Nustatyti OpenBSD 5.5 64 bitų

Šiame straipsnyje paaiškinama, kaip nustatyti OpenBSD 5.5 (64 bitų) KVM naudojant Vultr VPS. 1 veiksmas. Prisijunkite prie Vultr valdymo pulto. 2 veiksmas. Spustelėkite DEPLOY

Kaip įdiegti „osTicket“ „FreeBSD 12“.

Kaip įdiegti „osTicket“ „FreeBSD 12“.

Naudojate kitą sistemą? osTicket yra atvirojo kodo klientų aptarnavimo bilietų pardavimo sistema. „osTicket“ šaltinio kodas viešai priglobtas „Github“. Šioje pamokoje

How to Install Flarum Forum on FreeBSD 12

How to Install Flarum Forum on FreeBSD 12

Using a Different System? Flarum is a free and open-source next-generation forum software that makes online discussion fun. Flarum source code is hosted o

Kaip įjungti TLS 1.3 „Nginx“, naudojant „FreeBSD 12“.

Kaip įjungti TLS 1.3 „Nginx“, naudojant „FreeBSD 12“.

Naudojate kitą sistemą? TLS 1.3 yra Transport Layer Security (TLS) protokolo versija, kuri buvo paskelbta 2018 m. kaip siūlomas standartas RFC 8446.

Įdiekite „WordPress“ „OpenBSD 6.2“.

Įdiekite „WordPress“ „OpenBSD 6.2“.

Įvadas WordPress yra dominuojanti turinio valdymo sistema internete. Tai suteikia viską nuo tinklaraščių iki sudėtingų svetainių su dinamišku turiniu

Kaip įdiegti Subrion 4.1 TVS FreeBSD 11 FAMP VPS

Kaip įdiegti Subrion 4.1 TVS FreeBSD 11 FAMP VPS

Naudojate kitą sistemą? Subrion 4.1 TVS yra galinga ir lanksti atvirojo kodo turinio valdymo sistema (TVS), kuri suteikia intuityvų ir aiškų turinį

Kaip sukonfigūruoti DJBDNS „FreeBSD“.

Kaip sukonfigūruoti DJBDNS „FreeBSD“.

Ši pamoka parodys, kaip sukonfigūruoti DNS paslaugą, kurią būtų lengva prižiūrėti, lengva konfigūruoti ir kuri paprastai yra saugesnė nei klasikinis BIN.

Kaip įdiegti Nginx, MySQL ir PHP (FEMP) Stack FreeBSD 12.0

Kaip įdiegti Nginx, MySQL ir PHP (FEMP) Stack FreeBSD 12.0

FEMP stekas, panašus į LEMP steką Linux sistemoje, yra atvirojo kodo programinės įrangos rinkinys, kuris paprastai įdiegiamas kartu, kad įgalintų FreeBS.

„MongoDB“ diegimas „FreeBSD 10“.

„MongoDB“ diegimas „FreeBSD 10“.

MongoDB yra pasaulinės klasės NoSQL duomenų bazė, kuri dažnai naudojama naujesnėse žiniatinklio programose. Jis teikia didelio našumo užklausas, dalijimąsi ir replikaciją

Kaip įdiegti Monica FreeBSD 12

Kaip įdiegti Monica FreeBSD 12

Naudojate kitą sistemą? Monica yra atviro kodo asmeninių santykių valdymo sistema. Pagalvokite apie tai kaip apie CRM (populiarų įrankį, kurį naudoja pardavimų komandos th

OpenBSD kaip elektroninės komercijos sprendimas su PrestaShop ir Apache

OpenBSD kaip elektroninės komercijos sprendimas su PrestaShop ir Apache

Įvadas Ši pamoka parodo OpenBSD kaip el. prekybos sprendimą naudojant PrestaShop ir Apache. Apache reikalinga, nes PrestaShop turi sudėtingą UR

„Fork CMS“ diegimas „FreeBSD 12“.

„Fork CMS“ diegimas „FreeBSD 12“.

Naudojate kitą sistemą? Fork yra atvirojo kodo TVS, parašyta PHP. „Forks“ šaltinio kodas yra „GitHub“. Šis vadovas parodys, kaip įdiegti Fork CM

Kaip įdiegti „Directus 6.4 CMS“ „FreeBSD 11 FAMP VPS“.

Kaip įdiegti „Directus 6.4 CMS“ „FreeBSD 11 FAMP VPS“.

Naudojate kitą sistemą? „Directus 6.4 CMS“ yra galinga ir lanksti, nemokama ir atvirojo kodo turinio valdymo sistema (TVS), kuri suteikia kūrėjams

FreeBSD saugumo padidinimas naudojant IPFW ir SSHGuard

FreeBSD saugumo padidinimas naudojant IPFW ir SSHGuard

Į VPS serverius dažnai nusitaiko įsibrovėliai. Įprastas atakų tipas rodomas sistemos žurnaluose kaip šimtai neteisėtų ssh prisijungimo bandymų. Nustatyti

Nustatyti httpd OpenBSD

Nustatyti httpd OpenBSD

Įvadas OpenBSD 5.6 pristatė naują demoną pavadinimu httpd, kuris palaiko CGI (per FastCGI) ir TLS. Norint įdiegti naują http, nereikia jokių papildomų darbų

„FreeBSD 10“ nustatykite „iRedMail“.

„FreeBSD 10“ nustatykite „iRedMail“.

Ši pamoka parodys, kaip įdiegti grupinę programą iRedMail naujai įdiegus FreeBSD 10. Turėtumėte naudoti serverį, turintį bent vieną gigabaitą.

Mašinų augimas: AI pritaikymas realiame pasaulyje

Mašinų augimas: AI pritaikymas realiame pasaulyje

Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.

DDOS atakos: trumpa apžvalga

DDOS atakos: trumpa apžvalga

Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.

Duomenų saugojimo raida – infografika

Duomenų saugojimo raida – infografika

Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.

6 nuostabūs išmaniųjų namų įrenginių privalumai

6 nuostabūs išmaniųjų namų įrenginių privalumai

Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį