Kuidas kaitsta FreeBSD-d PF-i tulemüüriga

Kuidas kaitsta FreeBSD-d PF-i tulemüüriga

See õpetus näitab, kuidas kaitsta oma FreeBSD serverit OpenBSD PF tulemüüri abil. Eeldame, et teil on Vultr juurutatud puhas FreeBSD install, kuhu pole lisatud ühtegi kasutajat. Lisaks tulemüüri seadistamisele teeme ka muid asju, mis tugevdavad ka meie FreeBSD serveri turvalisust. Enne tulemüüri seadistamist installime mõned paketid, kuna FreeBSD vaikeinstalliga on kaasas minimaalne komplekt tööriistu ja pakette (mis on õige), et meil oleks lihtsam töötada.

FreeBSD vaikeshell on /bin/sh. See on põhikest, millel puuduvad automaatse täitmise funktsioonid. Kasutame midagi paremat. Paigaldame zsh.

Esmalt installige järgmised paketid:

# 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 on lsLinuxi programm. Tahame lihtsalt, et lsLinuxis ja FreeBSD-s oleks sama käsk.

Lisa tavakasutaja süsteemi: (asenda john oma kasutajanimega ja ära unusta kasutajat rattagruppi lisada)

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

Looge zsh konfiguratsioonifail:

# ee /home/your-username/.zshrc

Kopeerige see oma .zshrc-faili:

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

Käivitage see käsk: (asenda john oma kasutajanimega)

chown john:john /home/john/.zshrc

Nüüd logige oma kasutajanimega FreeBSD serverisse sisse ja muutke vaikimisi juurparooli:

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

Me ei vaja sendmaili. Peatage ja keelake see teenus:

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

Järgmisena muudame oma rc.conf faili loomulikumaks:

# ee /etc/rc.conf

Muutke see selliseks:

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

Redigeeri /etc/hostsfaili:

# ee /etc/hosts

Lisage oma IP-aadress ja hostinimi:

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

Määra ajavöönd:

# bsdconfig

Kui saate, keelake juurkasutaja kaugjuurdepääs. Enamik SSH-vastaseid rünnakuid üritab juurde pääseda juurkasutajakonto kaudu. Ühendage alati oma kasutajanimega ja seejärel surootiga. Ainult wheelgrupi kasutajad saavad sujuurutada. Seetõttu lisasime oma kasutaja rattagruppi.

Keela juurlogimine:

# ee /etc/ssh/sshd_config

Tühista selle rea kommentaarid:

PermitRootLogin no

Taaskäivitage:

# reboot

Pärast taaskäivitamise lõppu näete Vultri konsoolis sellist teadet:

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

Sellepärast peame kella käsitsi korrigeerima. Järgige neid käske, kõigepealt sujuurutamiseks:

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

Nüüd hakkame tulemüüri konfigureerima. OpenBSD PF sisaldub FreeBSD kernelis, seega ei pea te ühtegi paketti installima.

Mis eetoimetaja luua faili /etc/firewall:

# ee /etc/firewall

Sisesta see: (asenda kõik IP-aadressid enda omadega)

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

Loo /etc/trustedfail. Sellesse faili paneme IP-d, mida me "usaldame".

# ee /etc/trusted

Lisage mõned IP-d:

# Hosting
1.2.0.0/16

# My friends
1.2.4.0/24

Nüüd natuke selgitust. Rämpspordid ja rämps-IP-d on vaid mõned pordid/IP-d, mida me ei soovi logides näha. Oleme seda teinud järgmise reegliga:

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

Need on vaid vaikeväärtused ja te ei pea selle pärast muretsema:

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

See reegel blokeerib teie serverist väljuva SMTP-liikluse (mis on Vultri vaikeseade).

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

Välja arvatud see, bruteforcerset ülejäänud on üsna sirgjoonelised.

# ---- 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 ütleb lihtsalt: Luba <usaldusväärsetest> IP-dest pordini 22, kuid ühest allika IP-st saab luua ainult 10 samaaegset ühendust. Kui see on üle 10, blokeerige see IP ja pange see bruteforcersi tabelisse. Sama kehtib 20/60 reegli kohta. See tähendab maksimaalselt 20 ühendust 60 sekundi jooksul.

Tulemüüri lubamine:

# ee /etc/rc.conf

Tühista need read:

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

Taaskäivitage:

# reboot 

Kui olete kõik õigesti teinud, saate sisse logida ja tulemüür on lubatud. Te ei pea iga kord /etc/firewallfaili muutmisel taaskäivitama . Lihtsalt tee:

# /etc/rc.d/pf reload

Vaadake, kes proovib teie serveriga reaalajas ühendust luua:

# tcpdump -n -e -ttt -i pflog0

Näita ajalugu:

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

Vaadake, kas teil on bruteforcersi tabelis keegi:

# pfctl -t bruteforcers -T show

Ja see ongi kõik. Olete FreeBSD serveris edukalt rakendanud PF tulemüüri!

Tags: #BSD

Kuidas installida väike väike RSS-lugeja FreeBSD 11 FAMP VPS-i

Kuidas installida väike väike RSS-lugeja FreeBSD 11 FAMP VPS-i

Kas kasutate teistsugust süsteemi? Tiny Tiny RSS Reader on tasuta ja avatud lähtekoodiga isehostitav veebipõhine uudistevoo (RSS/Atom) lugeja ja koondaja, mis on loodud

Kuidas installida Wiki.jsi FreeBSD 11-sse

Kuidas installida Wiki.jsi FreeBSD 11-sse

Kas kasutate teistsugust süsteemi? Wiki.js on tasuta avatud lähtekoodiga kaasaegne vikirakendus, mis on üles ehitatud Node.js-ile, MongoDB-le, Gitile ja Markdownile. Wiki.js lähtekood on avalik

Kuidas installida Pagekit 1.0 CMS FreeBSD 11 FAMP VPS-i

Kuidas installida Pagekit 1.0 CMS FreeBSD 11 FAMP VPS-i

Kas kasutate teistsugust süsteemi? Pagekit 1.0 CMS on ilus, modulaarne, laiendatav ja kerge, tasuta ja avatud lähtekoodiga sisuhaldussüsteem (CMS).

Kuidas installida MODX Revolution FreeBSD 11 FAMP VPS-i

Kuidas installida MODX Revolution FreeBSD 11 FAMP VPS-i

Kas kasutate teistsugust süsteemi? MODX Revolution on kiire, paindlik, skaleeritav avatud lähtekoodiga ettevõttetasemel sisuhaldussüsteem (CMS), mis on kirjutatud PHP-s. See i

Seadistage OpenBSD 5.5 64-bitine

Seadistage OpenBSD 5.5 64-bitine

See artikkel juhendab teid OpenBSD 5.5 (64-bitise) seadistamise kaudu KVM-is Vultr VPS-iga. Samm 1. Logige Vultri juhtpaneelile sisse. Samm 2. Klõpsake nuppu DEPLOY

Kuidas installida osTicket FreeBSD 12-sse

Kuidas installida osTicket FreeBSD 12-sse

Kas kasutate teistsugust süsteemi? osTicket on avatud lähtekoodiga klienditoe piletimüügisüsteem. osTicketi lähtekoodi majutatakse avalikult Githubis. Selles õpetuses

Kuidas installida Flarum Forum FreeBSD 12-sse

Kuidas installida Flarum Forum FreeBSD 12-sse

Kas kasutate teistsugust süsteemi? Flarum on tasuta ja avatud lähtekoodiga järgmise põlvkonna foorumitarkvara, mis muudab veebiarutelu lõbusaks. Flarum lähtekoodi majutatakse o

Kuidas lubada TLS 1.3 Nginxis FreeBSD 12-s

Kuidas lubada TLS 1.3 Nginxis FreeBSD 12-s

Kas kasutate teistsugust süsteemi? TLS 1.3 on transpordikihi turvalisuse (TLS) protokolli versioon, mis avaldati 2018. aastal RFC 8446 pakutud standardina.

Installige WordPress OpenBSD 6.2-le

Installige WordPress OpenBSD 6.2-le

Sissejuhatus WordPress on Internetis domineeriv sisuhaldussüsteem. See võimaldab kõike alates ajaveebidest kuni keeruliste dünaamilise sisuga veebisaitideni

Kuidas installida Subrion 4.1 CMS FreeBSD 11 FAMP VPS-ile

Kuidas installida Subrion 4.1 CMS FreeBSD 11 FAMP VPS-ile

Kas kasutate teistsugust süsteemi? Subrion 4.1 CMS on võimas ja paindlik avatud lähtekoodiga sisuhaldussüsteem (CMS), mis pakub intuitiivset ja selget sisu

Kuidas konfigureerida DJBDNS-i FreeBSD-s

Kuidas konfigureerida DJBDNS-i FreeBSD-s

See õpetus näitab teile, kuidas konfigureerida DNS-teenust, mida on lihtne hooldada, lihtne konfigureerida ja mis on üldiselt turvalisem kui klassikaline BIN.

Kuidas installida Nginxi, MySQL-i ja PHP (FEMP) pinu FreeBSD 12.0-sse

Kuidas installida Nginxi, MySQL-i ja PHP (FEMP) pinu FreeBSD 12.0-sse

FEMP-pinn, mis on võrreldav LEMP-pinuga Linuxis, on avatud lähtekoodiga tarkvara kogum, mis tavaliselt installitakse koos FreeBS-i lubamiseks.

MongoDB installimine FreeBSD 10-sse

MongoDB installimine FreeBSD 10-sse

MongoDB on maailmatasemel NoSQL-i andmebaas, mida kasutatakse sageli uuemates veebirakendustes. See pakub suure jõudlusega päringuid, jagamist ja replikatsiooni

Kuidas installida Monicat FreeBSD 12-sse

Kuidas installida Monicat FreeBSD 12-sse

Kas kasutate teistsugust süsteemi? Monica on avatud lähtekoodiga isiklike suhete haldussüsteem. Mõelge sellele kui CRM-ile (populaarne tööriist, mida kasutavad müügimeeskonnad th

OpenBSD as an E-Commerce Solution With PrestaShop and Apache

OpenBSD as an E-Commerce Solution With PrestaShop and Apache

Introduction This tutorial demonstrates OpenBSD as an e-commerce solution using PrestaShop and Apache. Apache is required because PrestaShop has complex UR

Fork CMS-i installimine FreeBSD 12-sse

Fork CMS-i installimine FreeBSD 12-sse

Kas kasutate teistsugust süsteemi? Fork on avatud lähtekoodiga CMS, mis on kirjutatud PHP-s. Forksi lähtekoodi hostitakse GitHubis. See juhend näitab teile, kuidas Fork CM-i installida

Directus 6.4 CMS installimine FreeBSD 11 FAMP VPS-i

Directus 6.4 CMS installimine FreeBSD 11 FAMP VPS-i

Kas kasutate teistsugust süsteemi? Directus 6.4 CMS on võimas ja paindlik, tasuta ja avatud lähtekoodiga sisuhaldussüsteem (CMS), mis pakub arendajatele

FreeBSD turvalisuse suurendamine IPFW ja SSHGuardi abil

FreeBSD turvalisuse suurendamine IPFW ja SSHGuardi abil

VPS-serverid on sageli sissetungijate sihikule. Levinud ründetüüp kuvatakse süsteemilogides sadade volitamata ssh-i sisselogimiskatsetena. Seadistan

httpd seadistamine OpenBSD-s

httpd seadistamine OpenBSD-s

Sissejuhatus OpenBSD 5.6 tutvustas uut deemonit nimega httpd, mis toetab CGI-d (FastCGI kaudu) ja TLS-i. Uue http installimiseks pole vaja täiendavat tööd teha

Seadistage iRedMail FreeBSD 10-s

Seadistage iRedMail FreeBSD 10-s

See õpetus näitab teile, kuidas installida grupitöö iRedMail värskele FreeBSD 10 installile. Peaksite kasutama serverit, millel on vähemalt üks gigabaid

Masinate tõus: AI tegelikud rakendused

Masinate tõus: AI tegelikud rakendused

Tehisintellekt ei ole tulevik, see on siin, olevikus. Sellest blogist loe, kuidas tehisintellekti rakendused on mõjutanud erinevaid sektoreid.

DDOS-i rünnakud: lühike ülevaade

DDOS-i rünnakud: lühike ülevaade

Kas olete ka DDOS-i rünnakute ohver ja olete segaduses ennetusmeetodite osas? Oma päringute lahendamiseks lugege seda artiklit.

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Võib-olla olete kuulnud, et häkkerid teenivad palju raha, kuid kas olete kunagi mõelnud, kuidas nad sellist raha teenivad? arutleme.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Kas soovite näha Google'i revolutsioonilisi leiutisi ja seda, kuidas need leiutised muutsid iga inimese elu tänapäeval? Seejärel lugege ajaveebi, et näha Google'i leiutisi.

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Isejuhtivate autode kontseptsioon tehisintellekti abil teedele jõudmiseks on meil juba mõnda aega unistus. Kuid vaatamata mitmele lubadusele pole neid kusagil näha. Lisateabe saamiseks lugege seda ajaveebi…

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Kuna teadus areneb kiiresti, võttes üle suure osa meie jõupingutustest, suureneb ka oht, et allume seletamatule singulaarsusele. Loe, mida singulaarsus meie jaoks tähendada võiks.

Andmesalvestuse areng – infograafik

Andmesalvestuse areng – infograafik

Andmete säilitamise meetodid on arenenud alates andmete sünnist. See ajaveeb käsitleb infograafiku alusel andmete salvestamise arengut.

Suurandmete viitearhitektuuri kihtide funktsioonid

Suurandmete viitearhitektuuri kihtide funktsioonid

Lugege ajaveebi, et kõige lihtsamal viisil teada saada Big Data Architecture'i erinevaid kihte ja nende funktsioone.

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

Selles digipõhises maailmas on nutikad koduseadmed muutunud elu oluliseks osaks. Siin on mõned nutikate koduseadmete hämmastavad eelised, mis muudavad meie elu elamisväärseks ja lihtsamaks.

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

Hiljuti andis Apple välja macOS Catalina 10.15.4 täiendusvärskenduse probleemide lahendamiseks, kuid tundub, et värskendus põhjustab rohkem probleeme, mille tulemuseks on Maci masinate tellimine. Lisateabe saamiseks lugege seda artiklit