Come installare Blacklistd su FreeBSD 11.1
Introduzione Qualsiasi servizio connesso a Internet è un potenziale bersaglio di attacchi di forza bruta o accesso ingiustificato. Esistono strumenti come fail2ba
Questo tutorial ti mostrerà come proteggere il tuo server FreeBSD usando il firewall OpenBSD PF. Supponiamo che tu abbia un'installazione pulita di FreeBSD distribuita da Vultr senza che siano stati aggiunti utenti. Faremo altre cose oltre alla configurazione del Firewall che rafforzerà anche la sicurezza del nostro server FreeBSD. Prima della configurazione del firewall, installeremo alcuni pacchetti poiché l'installazione di FreeBSD predefinita viene fornita con un set minimo di strumenti e pacchetti (che è corretto), per facilitarci il lavoro.
La shell di default in FreeBSD è /bin/sh
. Questa è una shell di base senza funzioni di completamento automatico. Useremo qualcosa di meglio. Installeremo zsh
.
Innanzitutto, installa questi pacchetti:
# 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 è il ls
programma di Linux. Vogliamo solo avere lo stesso ls
comando in Linux e FreeBSD.
Aggiungi un utente normale al sistema: (sostituisci john con il tuo nome utente e non dimenticare di aggiungere l'utente al gruppo ruote)
# 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!
Crea il file di configurazione zsh:
# ee /home/your-username/.zshrc
Copia questo nel tuo file .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
Esegui questo comando: (sostituisci john con il tuo nome utente)
chown john:john /home/john/.zshrc
Ora accedi al server FreeBSD con il tuo nome utente e modifica la password di root predefinita:
<vultr>[~]$ su
Password:
<vultr>[~]# passwd
Changing local password for root
New Password:
Retype New Password:
<vultr>[~]#
Non abbiamo bisogno di sendmail. Interrompi e disabilita questo servizio:
<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.
Successivamente, cambieremo il nostro file rc.conf per sembrare più naturale:
# ee /etc/rc.conf
Modificalo in questo modo:
#----------- 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"
Modifica /etc/hosts
file:
# ee /etc/hosts
Aggiungi il tuo indirizzo IP e nome host:
::1 localhost localhost.ceph ceph
127.0.0.1 localhost localhost.ceph ceph
108.61.178.110 ceph.domain1.com ceph
Imposta fuso orario:
# bsdconfig
Quando è possibile, disabilitare l'accesso remoto per l'utente root. La maggior parte degli attacchi su SSH proverà ad accedere tramite l'account utente root. Connettiti sempre con il tuo nome utente e quindi su
a root. Solo gli utenti del wheel
gruppo possono su
eseguire il root. Ecco perché abbiamo aggiunto il nostro utente al gruppo ruote.
Disabilita il login root:
# ee /etc/ssh/sshd_config
Rimuovi commento questa riga:
PermitRootLogin no
Reboot:
# reboot
Al termine del riavvio, vedrai un messaggio come questo nella console Vultr:
time correction of 3600 seconds exceeds sanity limit (1000); set clock manually to
correct UTC time.
Ecco perché dobbiamo correggere l'orologio manualmente. Segui questi comandi, prima su
di root:
$ su
Password:
# ntpdate 0.europe.pool.ntp.org
Ora configureremo il firewall. OpenBSD PF è incluso nel kernel di FreeBSD, quindi non è necessario installare alcun pacchetto.
Con l' ee
editor, crea il file /etc/firewall
:
# ee /etc/firewall
Inserisci questo: (sostituisci tutti gli indirizzi IP con i tuoi)
#######################################################################
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
Crea /etc/trusted
file. In questo file, inseriremo gli IP di cui "fidiamo".
# ee /etc/trusted
Aggiungi alcuni IP:
# Hosting
1.2.0.0/16
# My friends
1.2.4.0/24
Ora qualche spiegazione. Le porte spazzatura e gli IP spazzatura sono solo alcune porte / IP che non vogliamo vedere nei registri. Lo abbiamo fatto con questa regola:
# ---- 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
Queste sono solo impostazioni predefinite e non devi preoccuparti:
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
Questa regola blocca il traffico SMTP in uscita dal tuo server (che è l'impostazione predefinita su Vultr).
# ---- block SMTP out
block quick proto tcp from $me to any port 25
Tranne bruteforcers
il resto è piuttosto semplice.
# ---- 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 dice solo: Consenti da <trusted> IP alla porta 22 ma solo 10 connessioni simultanee possono essere fatte da un IP di origine. Se è superiore a 10, blocca questo IP e inseriscilo nella tabella bruteforcer. Lo stesso vale per la regola 20/60. Significa un massimo di 20 connessioni in 60 secondi.
Abilita firewall:
# ee /etc/rc.conf
Riattiva queste righe:
pf_enable="YES"
pf_rules="/etc/firewall"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""
Reboot:
# reboot
Se hai fatto tutto correttamente, sarai in grado di accedere e il firewall sarà attivato. Non è necessario riavviare ogni volta che si modifica il /etc/firewall
file. Basta fare:
# /etc/rc.d/pf reload
Scopri chi sta provando a connettersi al tuo server in tempo reale:
# tcpdump -n -e -ttt -i pflog0
Mostra cronologia:
# tcpdump -n -e -ttt -r /var/log/pflog
Vedi se hai qualcuno nella tabella bruteforcers:
# pfctl -t bruteforcers -T show
E questo è tutto. Hai implementato con successo il firewall PF sul server FreeBSD!
Introduzione Qualsiasi servizio connesso a Internet è un potenziale bersaglio di attacchi di forza bruta o accesso ingiustificato. Esistono strumenti come fail2ba
Questo tutorial ti mostrerà come configurare OpenBSD 5.6 con un disco completamente crittografato sul tuo VPS Vultr. Una nota sulla parte di crittografia: la maggior parte dei datacenter intorno a th
Luso di un utente sudo per accedere a un server ed eseguire comandi a livello di root è una pratica molto comune tra Linux e Unix Systems Administrator. Luso di un sud
Usi un sistema diverso? TaskWarrior è uno strumento di gestione del tempo open source che è un miglioramento dellapplicazione Todo.txt e dei suoi cloni. A causa di th
Usi un sistema diverso? osTicket è un sistema di ticket di supporto clienti open source. Il codice sorgente di osTicket è ospitato pubblicamente su Github. In questo tutorial
Varnish è un server cache open source che memorizza il contenuto da un server Web. È installato di fronte a un server Web come Apache o Nginx. La cache
Usi un sistema diverso? Osclass è un progetto open source che ti consente di creare facilmente un sito classificato senza alcuna conoscenza tecnica. È sourc
Usi un sistema diverso? Wiki.js è unapp wiki moderna, gratuita e open source, costruita su Node.js, MongoDB, Git e Markdown. Il codice sorgente di Wiki.js è publicl
Usi un sistema diverso? Directus 6.4 CMS è un sistema di gestione dei contenuti senza testa (CMS) potente e flessibile, gratuito e open source che fornisce agli sviluppatori
Questo tutorial ti mostrerà come ottenere un semplice server di posta su FreeBSD 10, con Postfix come MTA, Dovecot come MDA e Sieve per lordinamento della posta - tutto su un
Gestire il proprio server di posta elettronica può essere abbastanza gratificante. Sei responsabile dei tuoi dati. Ti consente anche una maggiore flessibilità con le tue opzioni di consegna. però
Immediatamente, i server Vultr FreeBSD non sono configurati per includere lo spazio di scambio. Se la tua intenzione è per unistanza cloud usa e getta, probabilmente non ne hai bisogno
Il sistema operativo FreeBSD utilizza UFS (Unix File System) per il suo file system delle partizioni di root; altrimenti noto come freebsd-ufs In caso di aggiornamento
Usi un sistema diverso? Flarum è un software di forum di prossima generazione gratuito e open source che rende divertente la discussione online. Il codice sorgente di Flarum è ospitato o
Usi un sistema diverso? Selfoss RSS Reader è un reade self-hosted gratuito e open source basato su Web, streaming live, mashup, feed di notizie (RSS / Atom)
Usi un sistema diverso? Introduzione Craft CMS è un CMS open source scritto in PHP. Il codice sorgente di Craft CMS è ospitato su GitHub. Questa guida ti mostrerà
Usi un sistema diverso? NodeBB è un software per forum basato su Node.js. Utilizza socket Web per interazioni istantanee e notifiche in tempo reale. Il nodo B
Usi un sistema diverso? ESpeak può generare file audio di sintesi vocale (TTS). Questi possono essere utili per molte ragioni, come la creazione della tua Torino
Usi un sistema diverso? LimeSurvey è un software di sondaggio open source scritto in PHP. Il codice sorgente di LimeSurvey è ospitato su GitHub. Questa guida ti mostrerà
Usi un sistema diverso? ProcessWire CMS 3.0 è un sistema di gestione dei contenuti (CMS) semplice, flessibile e potente, gratuito e open source. ProcessWire CMS 3.
Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane
ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.
Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+
Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.
Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più
13 strumenti commerciali per l'estrazione dei dati dai Big Data
Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true
Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.
Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1
L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.