Cum se instalează forumul NodeBB pe FreeBSD 12
Folosind un sistem diferit? NodeBB este un software de forum bazat pe Node.js. Utilizează prize web pentru interacțiuni instantanee și notificări în timp real. Nodul B
Acest tutorial vă va arăta cum să vă protejați serverul FreeBSD folosind firewall-ul OpenBSD PF. Vom presupune că aveți o instalare curată FreeBSD desfășurată de Vultr fără utilizatori adăugați. Vom face și alte lucruri pe lângă configurația Firewall, care va întări și securitatea serverului nostru FreeBSD. Înainte de configurarea firewall-ului, vom instala câteva pachete, deoarece instalarea implicită a FreeBSD vine cu un set minim de instrumente și pachete (ceea ce este corect), pentru a ne ușura munca.
Stocul implicit din FreeBSD este /bin/sh
. Acesta este un shell de bază fără funcții automate. Vom folosi ceva mai bun. Vom instala zsh
.
Mai întâi, instalați aceste pachete:
# 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 este ls
programul de la Linux. Vrem doar să avem aceeași ls
comandă în Linux și FreeBSD.
Adăugați un utilizator normal în sistem: (înlocuiți John cu numele dvs. de utilizator și nu uitați să adăugați utilizator la grupul de roți)
# 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ți fișierul de configurare zsh:
# ee /home/your-username/.zshrc
Copiați acest lucru în fișierul dvs. .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
Rulați această comandă: (înlocuiți John cu numele dvs. de utilizator)
chown john:john /home/john/.zshrc
Acum, conectați-vă la serverul FreeBSD cu numele dvs. de utilizator și modificați parola root implicită:
<vultr>[~]$ su
Password:
<vultr>[~]# passwd
Changing local password for root
New Password:
Retype New Password:
<vultr>[~]#
Nu avem nevoie de sendmail. Opriți și dezactivați acest serviciu:
<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.
În continuare, vom schimba fișierul nostru rc.conf pentru a părea mai natural:
# ee /etc/rc.conf
Schimbă-l pentru a arăta astfel:
#----------- 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"
Editați /etc/hosts
fișierul:
# ee /etc/hosts
Adăugați adresa dvs. IP și numele de gazdă:
::1 localhost localhost.ceph ceph
127.0.0.1 localhost localhost.ceph ceph
108.61.178.110 ceph.domain1.com ceph
Setați fusul orar:
# bsdconfig
Ori de câte ori puteți, dezactivați accesul la distanță pentru utilizatorul root. Majoritatea atacurilor asupra SSH vor încerca să acceseze prin contul de utilizator root. Conectați-vă întotdeauna cu numele de utilizator și apoi su
la root. Doar utilizatorii wheel
grupului pot su
face root. De aceea, am adăugat utilizatorul nostru la grupul de roți.
Dezactivați conectarea la root:
# ee /etc/ssh/sshd_config
Nu respectați această linie:
PermitRootLogin no
reboot:
# reboot
După terminarea repornirii, veți vedea un mesaj ca acesta în consola Vultr:
time correction of 3600 seconds exceeds sanity limit (1000); set clock manually to
correct UTC time.
De aceea, trebuie să corectăm manual ceasul. Urmați aceste comenzi, mai întâi su
pentru a roota:
$ su
Password:
# ntpdate 0.europe.pool.ntp.org
Acum, urmează să configurăm firewallul. OpenBSD PF este inclus în nucleul FreeBSD, deci nu trebuie să instalați niciun pachet.
Cu ee
editor, creați fișier /etc/firewall
:
# ee /etc/firewall
Introduceți acest lucru: (înlocuiți orice adresă IP cu a ta)
#######################################################################
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ți /etc/trusted
fișier. În acest fișier, vom pune IP-uri în care „avem încredere”.
# ee /etc/trusted
Adăugați câteva IP-uri:
# Hosting
1.2.0.0/16
# My friends
1.2.4.0/24
Acum niște explicații. Porturile junk și IP-urile junk sunt doar niște porturi / IP-uri pe care nu vrem să le vedem în jurnalele. Am făcut acest lucru cu această regulă:
# ---- 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
Acestea sunt doar setări implicite și nu trebuie să vă faceți griji în acest sens:
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
Această regulă blochează traficul SMTP ieșit de pe serverul dvs. (care este implicit pe Vultr).
# ---- block SMTP out
block quick proto tcp from $me to any port 25
Cu excepția bruteforcers
restului este destul de direct înainte.
# ---- 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 spune doar: Permiteți de la IP-uri de încredere la portul 22, dar numai 10 conexiuni concomitente pot fi realizate dintr-un IP sursă. Dacă are mai mult de 10, blocați acest IP și puneți-l în bruteforcers. Același lucru este valabil și pentru regula 20/60. Înseamnă un maxim de 20 de conexiuni în 60 de secunde.
Activați firewall-ul:
# ee /etc/rc.conf
Nu respectați aceste linii:
pf_enable="YES"
pf_rules="/etc/firewall"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""
reboot:
# reboot
Dacă ați făcut totul bine, atunci veți putea să vă autentificați și firewallul va fi activat. Nu trebuie să reporniți de fiecare dată când schimbați /etc/firewall
fișierul. Doar fa-o:
# /etc/rc.d/pf reload
Vedeți cine încearcă să se conecteze la serverul dvs. în timp real:
# tcpdump -n -e -ttt -i pflog0
Afișați istoricul:
# tcpdump -n -e -ttt -r /var/log/pflog
Vedeți dacă aveți pe cineva în tabelul bruteforcers:
# pfctl -t bruteforcers -T show
Si asta e. Ați implementat cu succes firewallul PF pe serverul FreeBSD!
Folosind un sistem diferit? NodeBB este un software de forum bazat pe Node.js. Utilizează prize web pentru interacțiuni instantanee și notificări în timp real. Nodul B
Dacă executați propriul dvs. rezolvator sau doriți să utilizați unul de la un furnizor terț, puteți constata că fișierul dvs. /etc/resolv.conf este suprascris de DHCP
Folosind un sistem diferit? Automad este un sistem open source de conținut bazat pe fișiere (CMS) și motor de șabloane, scris în PHP. Codul sursă Automad i
Folosind un sistem diferit? X-Cart este o platformă eCommerce open-source extrem de flexibilă, cu tone de funcții și integrări. Codul sursă X-Cart este gazdă
Introducere WordPress este sistemul dominant de gestionare a conținutului pe internet. Acesta alimentează totul, de la bloguri la site-uri web complexe, cu conținut dinamic
Folosind un sistem diferit? Anchor CMS este un motor de blog de sistem de gestionare a conținutului (CMS) super-simplu și extrem de ușor, gratuit și deschis
Murmur este software-ul de server oficial pentru protocolul de comunicare vocală Mumble. Această implementare oficială este stabilă și eficientă. Acest ghid va fi
Folosind un sistem diferit? WonderCMS este un CMS cu fișier plat, de tip open source, rapid și mic, scris în PHP. Codul sursă WonderCMS este găzduit pe Github. Acest ghid va fi
Folosind un sistem diferit? Pagekit 1.0 CMS este un sistem frumos de gestionare a conținutului (CMS), modular, extensibil și ușor, gratuit și deschis, cu
Folosind un sistem diferit? TLS 1.3 este o versiune a protocolului Transport Layer Security (TLS) care a fost publicat în 2018 ca standard propus în RFC 8446
Acest tutorial vă va arăta cum să instalați iRedMail de grup în o nouă instalare a FreeBSD 10. Ar trebui să folosiți un server cu cel puțin o gigabyte o
Folosind un sistem diferit? Dolibarr este un plan de resurse pentru întreprinderi open source (ERP) și managementul relațiilor cu clienții (CRM) pentru companii. Dolibarr
Folosind un sistem diferit? TaskWarrior este un instrument de gestionare a timpului open source care este o îmbunătățire a aplicației Todo.txt și a clonelor sale. Datorită th
Folosind un sistem diferit? DokuWiki este un program wiki open source scris în PHP care nu necesită o bază de date. Stochează date în fișiere text. DokuWik
Ghost este cel mai recent și cel mai mare upstart pentru a rivaliza cu WordPress. Dezvoltarea tematică este rapidă și ușor de învățat, deoarece dezvoltatorii Ghost au decis să utilizeze ambele aplicații
Introducere Cu cât vă mențineți mai aproape instalarea OpenBSD la valoarea implicită și fără tot atâtea pachete adăugate, cu atât va fi mai sigur. În timp ce mai comun
La actualizarea unei instanțe VPS pe Vultr, un sistem de fișiere Linux este redimensionat automat. Când executați FreeBSD cu sistemul avansat de fișiere ZFS, unele manuale sunt uzate
Acest tutorial vă va arăta cum să obțineți un server de mail simplu pe FreeBSD 10, cu Postfix ca MTA, Dovecot ca MDA și Sieve pentru sortarea poștelor - peste un
Folosind un sistem diferit? ESpeak poate genera fișiere audio text-to-speech (TTS). Acestea pot fi utile din mai multe motive, cum ar fi crearea propriului dvs. Torino
Folosind un sistem diferit? MODX Revolution este un sistem de administrare a conținutului (CMS) rapid, flexibil, scalabil, open source, de calitate a întreprinderii, scris în PHP. Este
O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.
Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.
Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.
Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.
CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?
Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.
Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!
Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.
Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe