Kā nodrošināt FreeBSD drošību, izmantojot PF ugunsmūri

Kā nodrošināt FreeBSD drošību, izmantojot PF ugunsmūri

Šī apmācība parādīs, kā aizsargāt savu FreeBSD serveri, izmantojot OpenBSD PF ugunsmūri. Mēs pieņemsim, ka jums ir tīra FreeBSD instalācija, ko izvietojis Vultr bez pievienotiem lietotājiem. Papildus ugunsmūra konfigurēšanai mēs darīsim dažas citas darbības, kas arī pastiprinās mūsu FreeBSD servera drošību. Pirms ugunsmūra konfigurēšanas mēs instalēsim dažas pakotnes, jo noklusējuma FreeBSD instalācijai ir minimāls rīku un pakotņu komplekts (kas ir pareizi), lai mums būtu vieglāk strādāt.

FreeBSD noklusējuma apvalks ir /bin/sh. Šis ir pamata apvalks bez automātiskās pabeigšanas funkcijām. Mēs izmantosim kaut ko labāku. Mēs uzstādīsim zsh.

Vispirms instalējiet šīs pakotnes:

# 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 ir lsprogramma no Linux. Mēs vienkārši vēlamies, lai lsLinux un FreeBSD būtu viena un tā pati komanda.

Pievienojiet sistēmai parastu lietotāju: (aizstādiet Jāni ar savu lietotājvārdu un neaizmirstiet pievienot lietotāju riteņu grupai)

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

Izveidojiet zsh konfigurācijas failu:

# ee /home/your-username/.zshrc

Kopējiet to savā .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

Palaidiet šo komandu: (aizstāt john ar savu lietotājvārdu)

chown john:john /home/john/.zshrc

Tagad piesakieties FreeBSD serverī ar savu lietotājvārdu un mainiet noklusējuma root paroli:

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

Mums nevajag sendmail. Apturiet un atspējojiet šo pakalpojumu:

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

Tālāk mēs mainīsim savu rc.conf failu, lai tas izskatītos dabiskāk:

# ee /etc/rc.conf

Mainiet to, lai tas izskatītos šādi:

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

Rediģēt /etc/hostsfailu:

# ee /etc/hosts

Pievienojiet savu IP adresi un resursdatora nosaukumu:

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

Iestatīt laika joslu:

# bsdconfig

Kad vien iespējams, atspējojiet attālo piekļuvi root lietotājam. Lielākajai daļai SSH uzbrukumu mēģinās piekļūt, izmantojot root lietotāja kontu. Vienmēr izveidojiet savienojumu ar savu lietotājvārdu un pēc tam suar root. Tikai lietotāji no wheelgrupas var suizveidot saknes tiesības. Tāpēc mēs pievienojām savu lietotāju riteņu grupai.

Atspējot root pieteikšanos:

# ee /etc/ssh/sshd_config

Atceliet šīs rindas komentārus:

PermitRootLogin no

Atsāknēšana:

# reboot

Pēc atsāknēšanas Vultr konsolē tiks parādīts šāds ziņojums:

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

Tāpēc pulkstenis ir jākoriģē manuāli. Izpildiet šīs komandas, vispirms sulai sakņotu:

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

Tagad mēs konfigurēsim ugunsmūri. OpenBSD PF ir iekļauts FreeBSD kodolā, tāpēc jums nav jāinstalē nekādas pakotnes.

Izmantojot eeredaktoru, izveidojiet failu /etc/firewall:

# ee /etc/firewall

Ievietojiet šo: (aizstāt visas IP adreses ar savējām)

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

Izveidot /etc/trustedfailu. Šajā failā mēs ievietosim IP, kuriem mēs "uzticamies".

# ee /etc/trusted

Pievienojiet dažus IP:

# Hosting
1.2.0.0/16

# My friends
1.2.4.0/24

Tagad daži paskaidrojumi. Nevēlamie porti un nevēlamie IP ir tikai daži porti/IP, kurus mēs nevēlamies redzēt žurnālos. Mēs to izdarījām ar šo noteikumu:

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

Šie ir tikai noklusējuma iestatījumi, un jums par to nav jāuztraucas:

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

Šis noteikums bloķē izejošo SMTP trafiku no jūsu servera (kas ir noklusējuma Vultr).

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

Izņemot to, bruteforcerska pārējais ir diezgan vienkāršs.

# ---- 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 vienkārši saka: Atļaut no <uzticamiem> IP adresēm līdz 22. portam, taču no viena avota IP var izveidot tikai 10 vienlaicīgus savienojumus. Ja tas ir vairāk nekā 10, bloķējiet šo IP un ievietojiet to tabulā bruteforcers. Tas pats attiecas uz 20/60 noteikumu. Tas nozīmē ne vairāk kā 20 savienojumus 60 sekundēs.

Iespējot ugunsmūri:

# ee /etc/rc.conf

Atceliet šīs rindas komentārus:

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

Atsāknēšana:

# reboot 

Ja esat izdarījis visu pareizi, tad varēsiet pieteikties un ugunsmūris tiks iespējots. Jums nav jārestartē katru reizi, kad maināt /etc/firewallfailu. Vienkārši dari:

# /etc/rc.d/pf reload

Skatiet, kas mēģina izveidot savienojumu ar jūsu serveri reāllaikā:

# tcpdump -n -e -ttt -i pflog0

Rādīt vēsturi:

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

Skatiet, vai jums ir kāds bruteforcers tabulā:

# pfctl -t bruteforcers -T show

Un viss. Jūs esat veiksmīgi ieviesis PF ugunsmūri FreeBSD serverī!

Tags: #BSD

Kā instalēt Tiny Tiny RSS lasītāju FreeBSD 11 FAMP VPS

Kā instalēt Tiny Tiny RSS lasītāju FreeBSD 11 FAMP VPS

Vai izmantojat citu sistēmu? Tiny Tiny RSS Reader ir bezmaksas un atvērtā koda pašmitināts tīmekļa ziņu plūsmas (RSS/Atom) lasītājs un apkopotājs, kas paredzēts

Kā instalēt Wiki.js uz FreeBSD 11

Kā instalēt Wiki.js uz FreeBSD 11

Vai izmantojat citu sistēmu? Wiki.js ir bezmaksas atvērtā pirmkoda moderna wiki lietotne, kas veidota uz Node.js, MongoDB, Git un Markdown. Wiki.js pirmkods ir publisks

Kā instalēt Pagekit 1.0 CMS uz FreeBSD 11 FAMP VPS

Kā instalēt Pagekit 1.0 CMS uz FreeBSD 11 FAMP VPS

Vai izmantojat citu sistēmu? Pagekit 1.0 CMS ir skaista, modulāra, paplašināma un viegla, bezmaksas un atvērtā koda satura pārvaldības sistēma (CMS) ar

Kā instalēt MODX Revolution uz FreeBSD 11 FAMP VPS

Kā instalēt MODX Revolution uz FreeBSD 11 FAMP VPS

Vai izmantojat citu sistēmu? MODX Revolution ir ātra, elastīga, mērogojama, atvērtā koda, uzņēmuma līmeņa satura pārvaldības sistēma (CMS), kas rakstīta PHP. Tas i

Iestatiet OpenBSD 5.5 64 bitu versiju

Iestatiet OpenBSD 5.5 64 bitu versiju

Šajā rakstā ir sniegti norādījumi par OpenBSD 5.5 (64 bitu) iestatīšanu KVM ar Vultr VPS. 1. darbība. Piesakieties Vultr vadības panelī. 2. darbība. Noklikšķiniet uz DEPLOY

Kā instalēt osTicket uz FreeBSD 12

Kā instalēt osTicket uz FreeBSD 12

Vai izmantojat citu sistēmu? osTicket ir atvērtā koda klientu atbalsta biļešu sistēma. osTicket pirmkods ir publiski mitināts vietnē Github. Šajā apmācībā

Kā instalēt Flarum Forum uz FreeBSD 12

Kā instalēt Flarum Forum uz FreeBSD 12

Vai izmantojat citu sistēmu? Flarum ir bezmaksas atvērtā koda nākamās paaudzes forumu programmatūra, kas padara tiešsaistes diskusijas jautras. Flarum pirmkods tiek mitināts o

Kā iespējot TLS 1.3 Nginx uz FreeBSD 12

Kā iespējot TLS 1.3 Nginx uz FreeBSD 12

Vai izmantojat citu sistēmu? TLS 1.3 ir transporta slāņa drošības (TLS) protokola versija, kas tika publicēta 2018. gadā kā piedāvātais standarts RFC 8446.

Instalējiet WordPress uz OpenBSD 6.2

Instalējiet WordPress uz OpenBSD 6.2

Ievads WordPress ir dominējošā satura pārvaldības sistēma internetā. Tas nodrošina visu, sākot no emuāriem līdz sarežģītām vietnēm ar dinamisku saturu

Kā instalēt Subrion 4.1 CMS uz FreeBSD 11 FAMP VPS

Kā instalēt Subrion 4.1 CMS uz FreeBSD 11 FAMP VPS

Vai izmantojat citu sistēmu? Subrion 4.1 CMS ir jaudīga un elastīga atvērtā pirmkoda satura pārvaldības sistēma (CMS), kas nodrošina intuitīvu un skaidru saturu.

Kā konfigurēt DJBDNS uz FreeBSD

Kā konfigurēt DJBDNS uz FreeBSD

Šī apmācība parādīs, kā konfigurēt DNS pakalpojumu, kuru ir viegli uzturēt, viegli konfigurēt un kas parasti ir drošāks nekā klasiskais BIN.

Kā instalēt Nginx, MySQL un PHP (FEMP) Stack uz FreeBSD 12.0

Kā instalēt Nginx, MySQL un PHP (FEMP) Stack uz FreeBSD 12.0

FEMP steks, kas ir salīdzināms ar LEMP steku operētājsistēmā Linux, ir atvērtā pirmkoda programmatūras kolekcija, kas parasti tiek instalēta kopā, lai iespējotu FreeBS.

MongoDB instalēšana uz FreeBSD 10

MongoDB instalēšana uz FreeBSD 10

MongoDB ir pasaules klases NoSQL datu bāze, ko bieži izmanto jaunākās tīmekļa lietojumprogrammās. Tas nodrošina augstas veiktspējas vaicājumus, sadalīšanu un replikāciju

Kā instalēt Monica uz FreeBSD 12

Kā instalēt Monica uz FreeBSD 12

Vai izmantojat citu sistēmu? Monica ir atvērtā koda personisko attiecību pārvaldības sistēma. Uztveriet to kā CRM (populāru rīku, ko izmanto pārdošanas komandas th

OpenBSD kā e-komercijas risinājums ar PrestaShop un Apache

OpenBSD kā e-komercijas risinājums ar PrestaShop un Apache

Ievads Šī apmācība parāda OpenBSD kā e-komercijas risinājumu, izmantojot PrestaShop un Apache. Apache ir nepieciešams, jo PrestaShop ir sarežģīts UR

Fork CMS instalēšana uz FreeBSD 12

Fork CMS instalēšana uz FreeBSD 12

Vai izmantojat citu sistēmu? Fork ir atvērtā koda SPS, kas rakstīta PHP. Forks pirmkods tiek mitināts vietnē GitHub. Šī rokasgrāmata parādīs, kā instalēt Fork CM

Kā instalēt Directus 6.4 CMS uz FreeBSD 11 FAMP VPS

Kā instalēt Directus 6.4 CMS uz FreeBSD 11 FAMP VPS

Vai izmantojat citu sistēmu? Directus 6.4 CMS ir jaudīga un elastīga, bezmaksas un atvērtā koda satura pārvaldības sistēma (CMS), kas izstrādātājiem nodrošina

FreeBSD drošības uzlabošana, izmantojot IPFW un SSHGuard

FreeBSD drošības uzlabošana, izmantojot IPFW un SSHGuard

VPS serverus bieži vērš iebrucēji. Izplatīts uzbrukuma veids sistēmas žurnālos tiek parādīts kā simtiem nesankcionētu ssh pieteikšanās mēģinājumu. Uzstādīt

OpenBSD iestatiet httpd

OpenBSD iestatiet httpd

Ievads OpenBSD 5.6 ieviesa jaunu dēmonu ar nosaukumu httpd, kas atbalsta CGI (izmantojot FastCGI) un TLS. Lai instalētu jauno http, nav jāveic papildu darbs

Iestatiet iRedMail uz FreeBSD 10

Iestatiet iRedMail uz FreeBSD 10

Šī apmācība parādīs, kā instalēt grupas programmu iRedMail uz jaunas FreeBSD 10 instalācijas. Jums vajadzētu izmantot serveri ar vismaz vienu gigabaitu.

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.

DDOS uzbrukumi: īss pārskats

DDOS uzbrukumi: īss pārskats

Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.

Piektdiena: kas notika ar AI vadītām automašīnām?

Piektdiena: kas notika ar AI vadītām automašīnām?

Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.

Datu glabāšanas evolūcija – infografika

Datu glabāšanas evolūcija – infografika

Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.

Lielo datu atsauces arhitektūras slāņu funkcijas

Lielo datu atsauces arhitektūras slāņu funkcijas

Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk