A FreeBSD biztonságossá tétele PF tűzfallal

A FreeBSD biztonságossá tétele PF tűzfallal

Ez az oktatóanyag megmutatja, hogyan védheti meg FreeBSD szerverét OpenBSD PF tűzfallal. Feltételezzük, hogy a Vultr által telepített tiszta FreeBSD-telepítésed nincs hozzáadott felhasználó nélkül. A tűzfal beállításán kívül más dolgokat is meg fogunk tenni, ami szintén megerősíti a FreeBSD szerverünk biztonságát. A tűzfal konfigurálása előtt néhány csomagot telepítünk, mivel az alapértelmezett FreeBSD telepítéshez minimális eszköz- és csomagkészlet tartozik (ez helyes), hogy megkönnyítsük a munkát.

A FreeBSD alapértelmezett shellje a /bin/sh. Ez egy alaphéj, amely nem rendelkezik automatikus kiegészítési funkciókkal. Valami jobbat fogunk használni. Mi telepítjük zsh.

Először telepítse ezeket a csomagokat:

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

A GNULS lsa Linux programja. Csak azt akarjuk, hogy ugyanaz a lsparancs legyen Linuxon és FreeBSD-n.

Adjon hozzá egy normál felhasználót a rendszerhez: (cserélje ki a john-t a felhasználónevére, és ne felejtse el hozzáadni a felhasználót a kerékcsoporthoz)

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

Hozzon létre zsh konfigurációs fájlt:

# ee /home/your-username/.zshrc

Másolja ezt a .zshrc fájlba:

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

Futtassa ezt a parancsot: (cserélje ki a john-t a felhasználónevével)

chown john:john /home/john/.zshrc

Most jelentkezzen be a FreeBSD szerverre a felhasználónevével, és változtassa meg az alapértelmezett root jelszót:

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

Nincs szükségünk sendmailre. Állítsa le és tiltsa le ezt a szolgáltatást:

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

Ezután megváltoztatjuk az rc.conf fájlunkat, hogy természetesebbnek tűnjön:

# ee /etc/rc.conf

Módosítsa a következőre:

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

/etc/hostsFájl szerkesztése :

# ee /etc/hosts

Adja hozzá IP-címét és gazdagépnevét:

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

Időzóna beállítása:

# bsdconfig

Amikor csak teheti, tiltsa le a távoli hozzáférést a root felhasználó számára. Az SSH elleni támadások többsége a root felhasználói fiókon keresztül próbál elérni. Mindig a felhasználónevével csatlakozzon, majd sua root-hoz. Csak a wheelcsoport felhasználói surootolhatnak. Ezért adtuk hozzá a felhasználónkat a kerékcsoporthoz.

Root bejelentkezés letiltása:

# ee /etc/ssh/sshd_config

Törölje a sor megjegyzését:

PermitRootLogin no

Újraindítás:

# reboot

Az újraindítás befejezése után egy ehhez hasonló üzenetet fog látni a Vultr konzolon:

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

Ezért kell manuálisan korrigálni az órát. Kövesse ezeket a parancsokat, először sua roothoz:

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

Most konfiguráljuk a tűzfalat. Az OpenBSD PF a FreeBSD kernel része, így nem kell csomagokat telepítened.

A eeszerkesztővel hozzon létre fájlt /etc/firewall:

# ee /etc/firewall

Illessze be ezt: (az IP-címeket cserélje ki a sajátjára)

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

/etc/trustedFájl létrehozása . Ebben a fájlban olyan IP-címeket helyezünk el, amelyekben "megbízunk".

# ee /etc/trusted

Adj hozzá néhány IP-t:

# Hosting
1.2.0.0/16

# My friends
1.2.4.0/24

Most egy kis magyarázat. A kéretlen portok és a kéretlen IP-címek csak néhány port/IP-k, amelyeket nem szeretnénk látni a naplókban. Ezt ezzel a szabállyal tettük meg:

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

Ezek csak alapértelmezett értékek, és nem kell aggódnia miatta:

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

Ez a szabály blokkolja a kimenő SMTP-forgalmat a szerverről (ami a Vultr alapértelmezett beállítása).

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

Kivéve, hogy bruteforcersa többi elég egyértelmű.

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

A Bruteforcers csak azt mondja: Engedélyezze a <megbízható> IP-címekről a 22-es portra, de csak 10 párhuzamos kapcsolat hozható létre egy forrás IP-címéről. Ha több mint 10, blokkold ezt az IP-t, és tedd a bruteforcers táblázatba. Ugyanez vonatkozik a 20/60-as szabályra is. Ez maximum 20 csatlakozást jelent 60 másodperc alatt.

Tűzfal engedélyezése:

# ee /etc/rc.conf

Törölje a megjegyzéseket ezekről a sorokról:

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

Újraindítás:

# reboot 

Ha mindent jól csinált, akkor be tud jelentkezni, és a tűzfal engedélyezve lesz. Nem kell minden alkalommal újraindítania, amikor módosítja a /etc/firewallfájlt. Csak csináld:

# /etc/rc.d/pf reload

Nézze meg, ki próbál csatlakozni valós időben a szerveréhez:

# tcpdump -n -e -ttt -i pflog0

Előzmények megjelenítése:

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

Nézze meg, van-e valaki a bruteforcers táblázatban:

# pfctl -t bruteforcers -T show

És ez az. Sikeresen implementáltad a PF tűzfalat a FreeBSD szerveren!

Tags: #BSD

A Tiny Tiny RSS Reader telepítése FreeBSD 11 FAMP VPS-re

A Tiny Tiny RSS Reader telepítése FreeBSD 11 FAMP VPS-re

Más rendszert használ? A Tiny Tiny RSS Reader egy ingyenes és nyílt forráskódú, saját üzemeltetésű webalapú hírfolyam (RSS/Atom) olvasó és aggregátor, amelyet úgy terveztek, hogy

A Wiki.js telepítése FreeBSD 11-re

A Wiki.js telepítése FreeBSD 11-re

Más rendszert használ? A Wiki.js egy ingyenes és nyílt forráskódú, modern wikialkalmazás, amely Node.js-re, MongoDB-re, Git-re és Markdownra épül. A Wiki.js forráskódja nyilvános

A Pagekit 1.0 CMS telepítése FreeBSD 11 FAMP VPS-re

A Pagekit 1.0 CMS telepítése FreeBSD 11 FAMP VPS-re

Más rendszert használ? A Pagekit 1.0 CMS egy gyönyörű, moduláris, bővíthető és könnyű, ingyenes és nyílt forráskódú tartalomkezelő rendszer (CMS)

A MODX Revolution telepítése FreeBSD 11 FAMP VPS-re

A MODX Revolution telepítése FreeBSD 11 FAMP VPS-re

Más rendszert használ? A MODX Revolution egy gyors, rugalmas, méretezhető, nyílt forráskódú, vállalati szintű tartalomkezelő rendszer (CMS), PHP nyelven írva. Ez i

OpenBSD 5.5 64 bites beállítása

OpenBSD 5.5 64 bites beállítása

Ez a cikk végigvezeti az OpenBSD 5.5 (64 bites) beállításán KVM-en Vultr VPS-sel. 1. lépés: Jelentkezzen be a Vultr vezérlőpultra. 2. lépés Kattintson a BEVEZETÉS gombra

Az osTicket telepítése FreeBSD 12-re

Az osTicket telepítése FreeBSD 12-re

Más rendszert használ? Az osTicket egy nyílt forráskódú ügyfélszolgálati jegyértékesítő rendszer. Az osTicket forráskódja nyilvánosan a Githubon található. Ebben az oktatóanyagban

A Flarum Forum telepítése FreeBSD 12-re

A Flarum Forum telepítése FreeBSD 12-re

Más rendszert használ? A Flarum egy ingyenes, nyílt forráskódú, következő generációs fórumszoftver, amely szórakoztatóvá teszi az online beszélgetést. A Flarum forráskód o

A TLS 1.3 engedélyezése az Nginxben a FreeBSD 12 rendszeren

A TLS 1.3 engedélyezése az Nginxben a FreeBSD 12 rendszeren

Más rendszert használ? A TLS 1.3 a Transport Layer Security (TLS) protokoll egyik változata, amelyet 2018-ban tettek közzé javasolt szabványként az RFC 8446-ban.

Telepítse a WordPress-t OpenBSD 6.2-re

Telepítse a WordPress-t OpenBSD 6.2-re

Bevezetés A WordPress a domináns tartalomkezelő rendszer az interneten. A blogoktól a dinamikus tartalommal rendelkező összetett webhelyekig mindent megtesz

A Subrion 4.1 CMS telepítése FreeBSD 11 FAMP VPS-re

A Subrion 4.1 CMS telepítése FreeBSD 11 FAMP VPS-re

Más rendszert használ? A Subrion 4.1 CMS egy hatékony és rugalmas nyílt forráskódú tartalomkezelő rendszer (CMS), amely intuitív és világos tartalmat biztosít.

Hogyan állítsuk be a DJBDNS-t FreeBSD-n

Hogyan állítsuk be a DJBDNS-t FreeBSD-n

Ez az oktatóanyag bemutatja, hogyan konfigurálhat olyan DNS-szolgáltatást, amely könnyen karbantartható, könnyen konfigurálható, és általában biztonságosabb, mint a klasszikus BIN.

Az Nginx, MySQL és PHP (FEMP) Stack telepítése FreeBSD 12.0-ra

Az Nginx, MySQL és PHP (FEMP) Stack telepítése FreeBSD 12.0-ra

A FEMP verem, amely összehasonlítható a Linux LEMP veremével, nyílt forráskódú szoftverek gyűjteménye, amelyeket általában együtt telepítenek a FreeBS engedélyezéséhez.

A MongoDB telepítése FreeBSD 10-re

A MongoDB telepítése FreeBSD 10-re

A MongoDB egy világszínvonalú NoSQL adatbázis, amelyet gyakran használnak újabb webes alkalmazásokban. Nagy teljesítményű lekérdezéseket, felosztást és replikációt biztosít

A Monica telepítése FreeBSD 12-re

A Monica telepítése FreeBSD 12-re

Más rendszert használ? A Monica egy nyílt forráskódú személyes kapcsolatkezelő rendszer. Tekintsd úgy, mint egy CRM-et (az értékesítési csapatok által használt népszerű eszköz a th

OpenBSD mint e-kereskedelmi megoldás PrestaShop és Apache segítségével

OpenBSD mint e-kereskedelmi megoldás PrestaShop és Apache segítségével

Bevezetés Ez az oktatóanyag bemutatja az OpenBSD-t mint e-kereskedelmi megoldást PrestaShop és Apache használatával. Az Apache szükséges, mert a PrestaShop összetett UR-vel rendelkezik

A Fork CMS telepítése FreeBSD 12-re

A Fork CMS telepítése FreeBSD 12-re

Más rendszert használ? A Fork egy PHP nyelven írt nyílt forráskódú CMS. A Forks forráskódja a GitHubon található. Ez az útmutató megmutatja, hogyan kell telepíteni a Fork CM-et

A Directus 6.4 CMS telepítése FreeBSD 11 FAMP VPS-re

A Directus 6.4 CMS telepítése FreeBSD 11 FAMP VPS-re

Más rendszert használ? A Directus 6.4 CMS egy hatékony és rugalmas, ingyenes és nyílt forráskódú fej nélküli tartalomkezelő rendszer (CMS), amely a fejlesztők számára

A FreeBSD biztonságának fokozása IPFW és SSHGuard segítségével

A FreeBSD biztonságának fokozása IPFW és SSHGuard segítségével

A VPS-szervereket gyakran támadják meg a behatolók. A támadások gyakori típusa több száz jogosulatlan ssh bejelentkezési kísérletként jelenik meg a rendszernaplókban. Felállítása

A httpd beállítása OpenBSD-ben

A httpd beállítása OpenBSD-ben

Bevezetés Az OpenBSD 5.6 bevezetett egy új httpd démont, amely támogatja a CGI-t (FastCGI-n keresztül) és a TLS-t. Nincs szükség további munkára az új http telepítéséhez

Állítsa be az iRedMailt a FreeBSD 10-en

Állítsa be az iRedMailt a FreeBSD 10-en

Ez az oktatóanyag megmutatja, hogyan telepítheti a csoportmunka iRedMail programot a FreeBSD 10 friss telepítésére. Használjon legalább egy gigabájtos kiszolgálót.

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.

DDOS támadások: Rövid áttekintés

DDOS támadások: Rövid áttekintés

Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.

Essential péntek: Mi történt az AI-vezérelt autókkal?

Essential péntek: Mi történt az AI-vezérelt autókkal?

Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.

Az adattárolás fejlődése – Infografika

Az adattárolás fejlődése – Infografika

Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.

A Big Data Reference Architecture Layerek funkciói

A Big Data Reference Architecture Layerek funkciói

Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

Az Apple a közelmúltban kiadott egy kiegészítést a macOS Catalina 10.15.4-hez a problémák megoldására, de úgy tűnik, hogy a frissítés több problémát okoz, ami a Mac gépek blokkolásához vezet. További információért olvassa el ezt a cikket