Si të sigurojmë FreeBSD me Firewall PF

Si të sigurojmë FreeBSD me Firewall PF

Ky tutorial do t'ju tregojë se si të mbroni serverin tuaj FreeBSD duke përdorur firewall-in OpenBSD PF. Ne do të supozojmë se ju keni një instalim të pastër FreeBSD të vendosur nga Vultr pa asnjë përdorues të shtuar. Ne do të bëjmë disa gjëra të tjera përveç konfigurimit të Firewall-it, të cilat gjithashtu do të forcojnë sigurinë e serverit tonë FreeBSD. Përpara konfigurimit të murit të zjarrit, ne do të instalojmë disa paketa pasi instalimi i parazgjedhur i FreeBSD vjen me një grup minimal mjetesh dhe paketash (që është e saktë), për ta bërë më të lehtë punën për ne.

Predha e paracaktuar në FreeBSD është /bin/sh. Kjo është një guaskë bazë pa funksione të plotësimit automatik. Do të përdorim diçka më të mirë. Ne do të instalojmë zsh.

Së pari, instaloni këto paketa:

# 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 është lsprogrami nga Linux. Thjesht duam të kemi të njëjtën lskomandë në Linux dhe FreeBSD.

Shtoni një përdorues normal në sistem: (zëvendësoni John me emrin tuaj të përdoruesit dhe mos harroni të shtoni përdorues në grupin e rrotave)

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

Krijoni skedarin e konfigurimit zsh:

# ee /home/your-username/.zshrc

Kopjojeni këtë në skedarin tuaj .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

Ekzekutoni këtë komandë: (zëvendësoni John me emrin tuaj të përdoruesit)

chown john:john /home/john/.zshrc

Tani, identifikohuni në serverin FreeBSD me emrin tuaj të përdoruesit dhe ndryshoni fjalëkalimin e paracaktuar të rrënjës:

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

Nuk kemi nevojë për postë elektronike. Ndaloni dhe çaktivizoni këtë shërbim:

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

Më pas, ne do të ndryshojmë skedarin tonë rc.conf që të duket më i natyrshëm:

# ee /etc/rc.conf

Ndryshojeni që të duket kështu:

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

Redakto /etc/hostsskedarin:

# ee /etc/hosts

Shtoni adresën tuaj IP dhe emrin e hostit:

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

Cakto zonën kohore:

# bsdconfig

Sa herë që mundeni, çaktivizoni aksesin në distancë për përdoruesin rrënjë. Shumica e sulmeve në SSH do të përpiqen të hyjnë përmes llogarisë së përdoruesit rrënjë. Gjithmonë lidheni me emrin tuaj të përdoruesit dhe më pas sume root. Vetëm përdoruesit nga wheelgrupi mund sutë rrënjë. Kjo është arsyeja pse ne shtuam përdoruesin tonë në grupin e rrotave.

Çaktivizo hyrjen në rrënjë:

# ee /etc/ssh/sshd_config

Zhkomentoni këtë rresht:

PermitRootLogin no

Rinisja:

# reboot

Pasi të përfundojë rindezja, do të shihni një mesazh si ky në tastierën Vultr:

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

Kjo është arsyeja pse ne duhet të korrigjojmë orën me dorë. Ndiqni këto komanda, së pari supër të root:

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

Tani, ne do të konfigurojmë murin e zjarrit. OpenBSD PF përfshihet në kernelin FreeBSD, kështu që nuk keni nevojë të instaloni asnjë paketë.

Me eeredaktuesin, krijoni skedarin /etc/firewall:

# ee /etc/firewall

Fusni këtë: (zëvendësoni çdo adresë IP me tuajën)

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

Krijo /etc/trustedskedar. Në këtë skedar do të vendosim IP-të që i “besojmë”.

# ee /etc/trusted

Shtoni disa IP:

# Hosting
1.2.0.0/16

# My friends
1.2.4.0/24

Tani disa shpjegime. Portat e padëshiruara dhe IP-të e padëshiruara janë vetëm disa porte/IP që ne nuk duam t'i shohim në regjistra. Ne e kemi bërë këtë me këtë rregull:

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

Këto janë vetëm parazgjedhje dhe nuk keni pse të shqetësoheni për këtë:

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

Ky rregull bllokon trafikun dalës SMTP nga serveri juaj (i cili është i paracaktuar në Vultr).

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

Përveçse bruteforcerspjesa tjetër është mjaft e drejtpërdrejtë.

# ---- 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 thjesht thotë: Lejo nga IP <trusted> në portin 22 por vetëm 10 lidhje të njëkohshme mund të bëhen nga një IP burimi. Nëse është më shumë se 10, bllokoni këtë IP dhe vendoseni në tabelën bruteforcers. E njëjta gjë vlen edhe për rregullin 20/60. Do të thotë maksimumi 20 lidhje në 60 sekonda.

Aktivizo murin e zjarrit:

# ee /etc/rc.conf

Zhkomentoni këto rreshta:

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

Rinisja:

# reboot 

Nëse keni bërë gjithçka siç duhet, atëherë do të jeni në gjendje të identifikoheni dhe muri i zjarrit do të aktivizohet. Ju nuk keni nevojë të rindizni çdo herë që ndryshoni /etc/firewallskedarin. Vetëm Bëje:

# /etc/rc.d/pf reload

Shihni kush po përpiqet të lidhet me serverin tuaj në kohë reale:

# tcpdump -n -e -ttt -i pflog0

Shfaq historikun:

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

Shihni nëse keni dikë në tabelën e bruteforcers:

# pfctl -t bruteforcers -T show

Dhe kjo eshte. Ju keni implementuar me sukses murin e zjarrit PF në serverin FreeBSD!

Tags: #BSD

Si të instaloni Tiny Tiny RSS Reader në një FreeBSD 11 FAMP VPS

Si të instaloni Tiny Tiny RSS Reader në një FreeBSD 11 FAMP VPS

Përdorimi i një sistemi të ndryshëm? Tiny Tiny RSS Reader është një lexues dhe grumbullues i lajmeve të bazuara në ueb (RSS/Atom), falas dhe me burim të hapur, i krijuar për të dhënë

Si të instaloni Wiki.js në FreeBSD 11

Si të instaloni Wiki.js në FreeBSD 11

Përdorimi i një sistemi të ndryshëm? Wiki.js është një aplikacion modern wiki falas dhe me burim të hapur i ndërtuar në Node.js, MongoDB, Git dhe Markdown. Kodi burimor i Wiki.js është publik

Si të instaloni Pagekit 1.0 CMS në një FreeBSD 11 FAMP VPS

Si të instaloni Pagekit 1.0 CMS në një FreeBSD 11 FAMP VPS

Përdorimi i një sistemi të ndryshëm? Pagekit 1.0 CMS është një Sistem i Menaxhimit të Përmbajtjes (CMS) i bukur, modular, i zgjatshëm dhe i lehtë, pa pagesë dhe me burim të hapur me

Si të instaloni MODX Revolution në një FreeBSD 11 FAMP VPS

Si të instaloni MODX Revolution në një FreeBSD 11 FAMP VPS

Përdorimi i një sistemi të ndryshëm? MODX Revolution është një Sistem i Menaxhimit të Përmbajtjes (CMS) i shpejtë, fleksibël, i shkallëzuar, me burim të hapur, i shkallës së ndërmarrjes, i shkruar në PHP. Ajo i

Konfiguro OpenBSD 5.5 64-bit

Konfiguro OpenBSD 5.5 64-bit

Ky artikull ju udhëzon në konfigurimin e OpenBSD 5.5 (64-bit) në KVM me një Vultr VPS. Hapi 1. Hyni në panelin e kontrollit Vultr. Hapi 2. Klikoni DEPLOY

Si të instaloni osTicket në FreeBSD 12

Si të instaloni osTicket në FreeBSD 12

Përdorimi i një sistemi të ndryshëm? osTicket është një sistem biletash për mbështetjen e klientit me burim të hapur. Kodi burimor i osTicket është i pritur publikisht në Github. Në këtë tutorial

Si të instaloni Flarum Forum në FreeBSD 12

Si të instaloni Flarum Forum në FreeBSD 12

Përdorimi i një sistemi të ndryshëm? Flarum është një softuer forumi i gjeneratës së ardhshme pa pagesë dhe me burim të hapur që e bën diskutimin në internet argëtues. Kodi burimor i Flarum është pritur o

Si të aktivizoni TLS 1.3 në Nginx në FreeBSD 12

Si të aktivizoni TLS 1.3 në Nginx në FreeBSD 12

Përdorimi i një sistemi të ndryshëm? TLS 1.3 është një version i protokollit të Sigurisë së Shtresës së Transportit (TLS) që u publikua në 2018 si një standard i propozuar në RFC 8446

Instaloni WordPress në OpenBSD 6.2

Instaloni WordPress në OpenBSD 6.2

Hyrje WordPress është sistemi dominues i menaxhimit të përmbajtjes në internet. Ai fuqizon gjithçka, nga blogjet tek faqet e internetit komplekse me përmbajtje dinamike

Si të instaloni Subrion 4.1 CMS në një FreeBSD 11 FAMP VPS

Si të instaloni Subrion 4.1 CMS në një FreeBSD 11 FAMP VPS

Përdorimi i një sistemi të ndryshëm? Subrion 4.1 CMS është një sistem i fuqishëm dhe fleksibël i menaxhimit të përmbajtjes me burim të hapur (CMS) që sjell një përmbajtje intuitive dhe të qartë

Si të konfiguroni DJBDNS në FreeBSD

Si të konfiguroni DJBDNS në FreeBSD

Ky tutorial do t'ju tregojë se si të konfiguroni një shërbim DNS që është i lehtë për t'u mirëmbajtur, i lehtë për t'u konfiguruar dhe që në përgjithësi është më i sigurt se BIN klasik.

Si të instaloni Nginx, MySQL dhe PHP (FEMP) Stack në FreeBSD 12.0

Si të instaloni Nginx, MySQL dhe PHP (FEMP) Stack në FreeBSD 12.0

Një grumbull FEMP, i cili është i krahasueshëm me një pirg LEMP në Linux, është një koleksion softuerësh me burim të hapur që zakonisht instalohet së bashku për të mundësuar një FreeBS

Instalimi i MongoDB në FreeBSD 10

Instalimi i MongoDB në FreeBSD 10

MongoDB është një bazë të dhënash NoSQL e klasit botëror që përdoret shpesh në aplikacionet më të reja në internet. Ai siguron pyetje, ndarje dhe përsëritje me performancë të lartë

Si të instaloni Monica në FreeBSD 12

Si të instaloni Monica në FreeBSD 12

Përdorimi i një sistemi të ndryshëm? Monica është një sistem i menaxhimit të marrëdhënieve personale me burim të hapur. Mendoni për atë si një CRM (një mjet popullor i përdorur nga ekipet e shitjeve në th

OpenBSD si një zgjidhje për tregtinë elektronike me PrestaShop dhe Apache

OpenBSD si një zgjidhje për tregtinë elektronike me PrestaShop dhe Apache

Hyrje Ky tutorial demonstron OpenBSD si një zgjidhje e-commerce duke përdorur PrestaShop dhe Apache. Kërkohet Apache sepse PrestaShop ka UR komplekse

Instalimi i Fork CMS në FreeBSD 12

Instalimi i Fork CMS në FreeBSD 12

Përdorimi i një sistemi të ndryshëm? Fork është një CMS me burim të hapur i shkruar në PHP. Kodi burimor i Forks është pritur në GitHub. Ky udhëzues do t'ju tregojë se si të instaloni Fork CM

Si të instaloni Directus 6.4 CMS në një FreeBSD 11 FAMP VPS

Si të instaloni Directus 6.4 CMS në një FreeBSD 11 FAMP VPS

Përdorimi i një sistemi të ndryshëm? Directus 6.4 CMS është një sistem i fuqishëm dhe fleksibël, pa pagesë dhe me burim të hapur Headless Content Management System (CMS) që ofron zhvillues

Rritja e sigurisë për FreeBSD duke përdorur IPFW dhe SSHGuard

Rritja e sigurisë për FreeBSD duke përdorur IPFW dhe SSHGuard

Serverët VPS janë shpesh në shënjestër nga ndërhyrës. Një lloj i zakonshëm sulmi shfaqet në regjistrat e sistemit si qindra përpjekje të paautorizuara për hyrje ssh. Vendosja

Konfiguro httpd në OpenBSD

Konfiguro httpd në OpenBSD

Hyrje OpenBSD 5.6 prezantoi një daemon të ri të quajtur httpd, i cili mbështet CGI (nëpërmjet FastCGI) dhe TLS. Nuk nevojitet punë shtesë për të instaluar http-in e ri

Konfiguro iRedMail në FreeBSD 10

Konfiguro iRedMail në FreeBSD 10

Ky tutorial do t'ju tregojë se si të instaloni grupin iRedMail në një instalim të ri të FreeBSD 10. Ju duhet të përdorni një server me të paktën një gigabajt o

Ngritja e makinave: Aplikimet në botën reale të AI

Ngritja e makinave: Aplikimet në botën reale të AI

Inteligjenca Artificiale nuk është në të ardhmen, është këtu në të tashmen Në këtë blog Lexoni se si aplikacionet e inteligjencës artificiale kanë ndikuar në sektorë të ndryshëm.

Sulmet DDOS: Një përmbledhje e shkurtër

Sulmet DDOS: Një përmbledhje e shkurtër

A jeni edhe ju viktimë e Sulmeve DDOS dhe jeni konfuz në lidhje me metodat e parandalimit? Lexoni këtë artikull për të zgjidhur pyetjet tuaja.

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

Ju mund të keni dëgjuar se hakerët fitojnë shumë para, por a keni menduar ndonjëherë se si i fitojnë ato para? Le te diskutojme.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Dëshironi të shihni shpikjet revolucionare nga Google dhe se si këto shpikje ndryshuan jetën e çdo njeriu sot? Më pas lexoni në blog për të parë shpikjet nga Google.

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

Koncepti i makinave vetë-drejtuese për të dalë në rrugë me ndihmën e inteligjencës artificiale është një ëndërr që e kemi prej kohësh. Por, pavarësisht nga disa premtime, ato nuk shihen askund. Lexoni këtë blog për të mësuar më shumë…

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Ndërsa Shkenca evoluon me një ritëm të shpejtë, duke marrë përsipër shumë nga përpjekjet tona, rriten edhe rreziqet për t'iu nënshtruar një Singulariteti të pashpjegueshëm. Lexoni, çfarë mund të thotë singulariteti për ne.

Evolucioni i ruajtjes së të dhënave - Infografik

Evolucioni i ruajtjes së të dhënave - Infografik

Metodat e ruajtjes së të dhënave kanë evoluar mund të jenë që nga lindja e të dhënave. Ky blog mbulon evolucionin e ruajtjes së të dhënave në bazë të një infografike.

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Lexoni blogun për të njohur shtresat e ndryshme në arkitekturën e të dhënave të mëdha dhe funksionalitetet e tyre në mënyrën më të thjeshtë.

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

Në këtë botë të drejtuar nga dixhitali, pajisjet inteligjente të shtëpisë janë bërë një pjesë thelbësore e jetës. Këtu janë disa përfitime të mahnitshme të pajisjeve shtëpiake inteligjente se si ato e bëjnë jetën tonë të vlefshme dhe më të thjeshtë.

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Së fundmi Apple lëshoi ​​macOS Catalina 10.15.4 një përditësim shtesë për të rregulluar problemet, por duket se përditësimi po shkakton më shumë probleme që çojnë në bricking të makinerive mac. Lexoni këtë artikull për të mësuar më shumë