|
11.02.2024., 21:00 | #1 | |||||
Buying Bitcoin
Datum registracije: Feb 2007
Lokacija: Croatia
Postovi: 7,987
|
[GUIDE] Kako jeftino hostati website kod sebe doma na Raspberry Pi-ju
Napomena 1: Iako sam se trudio ovaj tutorial napisati da bi ga većina mogla pratiti, neka predznanja o kompjuterima, operativnim sustavima (posebno Linux) i mrežama su ipak potrebna. Ako ste potpuni početnik, ovo će vam biti komplicirano, no nije neizvedivo. Samo je potrebno dosta volje i vremena. Napomena 2: Ovaj guide ne obuhvaća sve sigurnosne aspekte zaštite web servera, iako ima dosta dobrih savjeta u replyjevima ispod ovog posta za to. Ja sam neke od tih savjeta sažeo na dnu ovog posta. Uvod Već neko vrijeme mi se mota ideja po glavi da dignem neki vlastiti website ili blog, međutim sva gotova rješenja traže kontinuirane troškove u vidu plaćanja hostinga, samog website buildera (npr. Wix), itd. Iako sam mogao ići tim putem, namjerno sam izabrao teži put, tako da se usput malo zabavim, a i naučim nešto. S obzirom da sam kući imao jedan Raspberry PI model 4 i jedan stari SSD disk od 128GB, i s obzirom da je vani kišno vrijeme, sve se poklopilo da krenem u tu avanturu. Imajte na umu da sa Linuxom nisam znao baš raditi (osim ako je neki idiot-proof GUI u pitanju sličan Windowsima), pa me ovaj proces gurnuo u višednevnu maniju učenja Linuxa, i to najtežim (ali najboljim) putem, preko CLI-ja, jer moj RPI nema HDMI port, pa mu se jedino može pristupiti preko mreže, odnosno preko SSH. Tokom tog procesa sam naišao na malih milijun problema, koji su se rješavali mukotrpnim googlanjem i isprobavanjem raznih solucija, koje većinom naravno, ne bi radile, ali tu i tamo bi se našao neki lik u nekom kutku interneta koji je točno znao kako riješiti problem i ponudio soluciju koja bi baš meni radila. Bog ih blagoslovio Pa da vas poštedim te muke (iako je meni bilo zabavno, a mislim i krucijalno, ako kasnije mislite održavati taj sustav), sastavio sam ovaj Guide for dummies, pa da i vi možete za male novce dignuti svoj website na RPI-ju. Preduvjeti i moj setup Ja sam odabrao svoj stari SSD disk da bude jedini disk na kojem će biti sve, RPI OS i Wordpress. Nekako mi je bilo neozbiljno da sve bude na SD kartici, ipak SSD disk nudi puno više prostora i nemjerljivo veće brzine, dugotrajnost, itd. Također ću napraviti „headless“ setup, odnosno RPI će se koristiti bez monitora, isključivo sa SSH pristupom. Sve će se raditi iz Windowsa. Dakle, ako ćete pratiti točno moj setup u korak, onda vam je… Potrebno: 1. Raspberry PI 2. MicroSD kartica 3. Čitač za MicroSD karticu 4. Vanjski SSD disk u eksternom kućištu da se može spojiti na USB od RPI 5. https://www.advanced-ip-scanner.com/ 6. https://www.putty.org/ Prvo ćemo dignuti RPI OS na MicroSD karticu (iz više razloga). Trebamo updateati firmware i bootloader, te namjestiti neke opcije da RPI može bootat sa USB-a, jer defaultno neće htjet. Izrada bootabilnog diska pomoću RPI Imager Program skinuti sa https://www.raspberrypi.com/software/ Kada pokrenete RPI Imager: 1. Odabrati svoj model (moj je model 4) 2. Odabrati RPI OS bez desktopa a. Pod Choose OS odabrati RPI OS (Other) b. Odabrati prvi na vrhu (RPI OS Lite 64bit no desktop) 3. Pod choose storage odabrati SD karticu iz čitača 4. Next 5. U sljedećem izborniku kliknit na Edit Settings 6. Odabrati vaš username i ostalo prema slikama dolje: 7. Kliknit YES, YES 8. Pričekati da se kartica formatira i na nju instalira RPI OS Lite 9. Kada proces završi, ubaciti karticu u RPI, upaliti ga i pričekati 10. Pokrenuti Advanced IP Scanner iz Windowsa i nakon 30-60ak sekundi preskenirati svoju lokalnu mrežu da vidite koju je IP adresu vaš DHCP server dodijelio RPI-ju. 11. Kada se pojavi, na popisu uređaja biti će pod „raspberrypi“ 12. Zapišite njegovu IP adresu Promjena boot ordera Otvorite Putty. Pod Hostname upišite tu IP adresu, Port ostaje na 22. Kliknuti Open dolje. Iskočiti će vam novi prozor, kliknit na Accept. Sada ste u SSH modu u kojem ćete provesti sljedeće desetljeće, pa se naviknite na to. Username: onaj koji ste odabrali u RPI Imager programu Password: isto koji ste odabrali Sada biste trebali biti u RPI OS-u, prompt bi trebao izgledati nešto poput: vaseime@raspberrypi:~ $ Sada ćemo updateat sustav. Utipkajte: Code:
sudo apt update && sudo apt upgrade -y Code:
sudo reboot Sljedeće ćemo updateat bootloader: Code:
sudo rpi-eeprom-update -d -a Sada ćemo promijeniti boot order tako da vam više ne treba SD kartica nego da vam boota sa SSD diska. Napravite to pomoću ovih uputstava: https://linuxhint.com/how_to_boot_ra..._from_usb_ssd/ Preskočite početak jer smo update sustava već napravili i počnite od: "Once your Raspberry Pi 4 boots, open a Terminal and run raspi-config Raspberry Pi configuration tool as follows:" Do: "Cloning the microSD Card to USB HDD/SDD/Thumb Drive:" Utipkajte sljedeću komandu: Code:
vcgencmd bootloader_config Sada možete ugasiti RPI i izvaditi SD karticu. RPI bi sada trebao biti spreman bootati sa USB SSD diska. Priprema SSD diska Sada na SSD disk dignite RPI OS na isti način kako ste ga digli na SD karticu. Odabrat model, odabrat RPI OS Lite no desktop, odabrat SSD disk, Next, pričekati da ga flasha. Proces bi trebao biti kratak jer RPI OS Lite je svega ~400MB. Kada proces završi, uštekajte USB SSD disk u USB 2.0 port, NE plavi USB 3.0 port jer neće raditi. Upalite RPI, počekajte da se pojavi na mreži, skenirajte mrežu. Velika je vjerojatnost da je ostao isti IP. Spojite se sa Putty na njega. Osposobljavanje USB3.0 porta da može bootati USB SSD disk Zahvaljujući rješenjima sa: 1. https://www.treshna.com/how-to-find-...ems/index.html 2. https://forums.raspberrypi.com/viewt...?f=28&t=245931 Prije svega, ponovo radimo full update sustava: Code:
sudo apt update && sudo apt upgrade -y Code:
sudo reboot Nakon reboota: Code:
lsusb Konkretno u mom slučaju, to je izgledalo ovako: Citiraj:
Ovaj prvi device gore (JMicron) je moj SSD disk. Vaš će se zvati drugačije. Ono šta je bitno je da ga pronađete na ovoj listi i zapišete ova dva broja: 152d:1576. To su njegovi VID i PID koji će nam trebati. Sada to trebamo dodati u cmdline.txt fajl: Code:
sudo nano /boot/firmware/cmdline.txt Sada samo dodajte sljedeći text: Code:
usb-storage.quirks=aaaa:bbbb:u Na kraju vam to mora ovako izgledati (moj primjer): Stisnite CTRL+X, pitat će vas hoćete spremiti izmjenu, upisati "y" i potvrditi isto ime fajla sa Enter. Ugasite RPI. Premjestite USB SSD disk sa porta 2.0 na port 3.0. Upalite RPI. Ako se možete spojiti na njega preko Putty, čestitam, uspjeli ste. RPI OS sada radi punom parom sa vašeg SSD diska spojenog na USB3.0 port. Sada još jednom provjerite jesu li "quirks" uspješno prihvaćene sa komandom: Code:
dmesg | grep usb-storage Postavljanje statične IP adrese Zahvaljujući rješenju sa: https://www.reddit.com/r/Intelligent...on_a_headless/ Sljedeći korak je postaviti RPI na statičnu IP adresu, tako da uvijek znate gdje se nalazi na vašoj mreži. Ako vam je DHCP postavljen da dodjeljuje adrese od npr. 192.168.1.100-254, to znači da ga možete postaviti bilo gdje ispod 192.168.1.100. Za ovaj primjer, reći ćemo da ga postavljamo na 192.168.1.10. Upisati: Code:
ifconfig Ako ste spojeni kabelom na router, adapter je obično eth0, a ako ste spojeni wirelessom, onda je wlan0. Odlučite koji adapter želite postaviti na statičnu adresu. Ja u svom primjeru postavljam eth0, jer sam kabelom spojen na router. Sada u interfejse kreiramo "eth0" fajl pomoću Nano programa. Upisati: Code:
sudo nano /etc/network/interfaces.d/eth0 Citiraj:
„gateway“ je IP adresa vašeg routera. Ako je on na nekoj drugoj adresi, onda se sve mijenja. Npr. ako je router na adresi 192.168.20.1, onda bi vam ovako izgledao taj text: Citiraj:
Nakon šta snimite promjene i izađete iz Nano, ide opet: Code:
sudo reboot Ako ste ušli s Puttyjem unutra znači da je sve dobro postavljeno. Priprema i instaliranje Wordpressa Zahvaljujući Chris Titusu: https://www.youtube.com/watch?v=BPcficy9ji0 https://christitus.com/pi-website/ U principu, samo pažljivo pratite njegov Youtube video i imajte otvorena tekstualna uputstva, tako da možete copy/pastat naredbe u Putty. Naredbe u Putty se pastaju tako da prvo CTRL+C naredbu sa njegovog websitea, i onda u Putty samo kliknete desnu tipku miša (to je Paste tamo, nema CTRL+V). Važno: Nakon instalacije Apache webservera, provjerite da li vam service dobro radi ili izbacuje koju grešku! Naredba za provjeru je: Code:
sudo systemctl status apache2 Rješenje je jednostavno, trebate editirati sljedeći fajl: Code:
sudo nano /etc/apache2/apache2.conf Code:
ServerName localhost Code:
sudo systemctl restart apache2 Code:
sudo systemctl status apache2 Ako je, nastavite pratiti proces iz videa do kraja i na kraju ako ste sve uspješno obavili, to bi trebalo biti to. Sada imate funkcionalan Wordpress na svom kućnom RPI pomoću kojeg možete raditi web stranice, međutim, ostaje još jedan bitan dio, a to je: Dostupnost van lokalne mreže Trenutno vašem web siteu možete pristupiti jedino uređajima spojenim na vaš router. Adresa vašeg websitea je IP adresa vašeg RPI-ja. Da bi bio dostupan iz vani, a bez da bacate novce na statičnu javnu IP adresu, trebat će vam DDNS servis i neka domena koju trebate zakupiti. Većina boljih routera danas ima u sebi nekoliko DDNS servisa (npr. Asus routeri) koje možete besplatno koristiti bez ikakve registracije, međutim dobit ćete neku tupavu adresu tipa Code:
mojawebstranica.asuscomm.com Ako ćete ići tom rutom, onda je moj savjet da pogledate ovaj video od NetworkChuck-a i pratite sve u korak: https://www.youtube.com/watch?v=rI-XxnyWFnM Na kraju ne zaboravite u svom routeru otvoriti port 80 za lokalnu IP adresu vašeg RPI (ako ne znate kako, Googlajte "port forwarding" sa imenom vašeg routera). Napomena: ako ćete implementirati sigurnosne postavke objavljene niže u ovom postu, onda ćete trebati otvoriti port 443 umjesto 80! Na kraju biste sa kupljenom domenom trebali imati pristup vašoj Wordpress stranici koja se nalazi na vašem SSD-u koji je uštekan u vaš RPI. Bacite sve skupa negdje da ga ne čujete i ne vidite, samo da ima dovoljno zraka za hlađenje. Trošak u mojoj konfiguraciji (vi možete uzeti i slabiji RPI): RPI Model 4: €70-100 SSD 128GB noname: €15 Kućište za SSD: €15 SD card reader: €15 SD card 32GB: €3.5 Domena: €8 Sve skupa za ~€130 imate vlastiti website kod sebe doma, a od pretplata vam ostaje jedino plaćanje domene cca. €8/godišnje i to je to. Sretno! SIGURNOSNE POSTAVKE Ovdje ću napisati neke sigurnosne postavke koje sam ja osobno implementirao, zahvaljujući savjetima članova foruma iz ovog threada. Imajte na umu da su ovo samo moje postavke, za nebitan blog-like website koji ne sadrži osjetljive niti privatne informacije. Za išta iole bitno, ne preporučam da pokušavate išta sami, pogotovo ne na amaterskom kućnom setupu Prvo šta je bitno naglasiti za moj slučaj su dva bitna detalja: 1. Koristim Asus router koji u sebi već ima dosta sigurnosnih solucija, a uz malo tweakanja postane još bolji 2. Koristim Cloudflare na kojem sam kupio domenu, a koji također ima dosta alata za zaštitu websitea/domene Popis implementiranih solucija: 1. Instalacija Merlin firmwarea na Asusu, nakon čega sam instalirao Skynet firewall 2. Podešavanje nekih opcija u Cloudflareu 3. Instalacija SSL certifikata na RPI 4. Instalacija DDOS protekcije za Apache webserver 5. Instalacija Fail2Ban alata za protekciju SSH DDOS-a 6. Restrikcija pristupa WordPress adminu iz vani i samo sa jedne, lokalne IP adrese 7. Omogućavanje pristupa SSH-u preko keya, gašenje passworda, setupiranje 2FA zaštite 8. Generiranje keya i pristup RPI-ju preko Putty-ja 9. SSH i Sysctl hardening po Tomekovim preporukama Bonus: Naredba s kojom možete, kada poželite, backupirati kompletan sustav na neki eksterni disk [Ako nemate Asus router koji podržava Merlin firmware, sljedeća dva koraka možete preskočiti] Instalacija Merlin firmwarea na Asus router Samo pratite uputstva sa službenog Wikija, a i na Youtubeu ih ima u izobilju. https://www.asuswrt-merlin.net/ https://github.com/RMerl/asuswrt-merlin.ng/wiki https://www.youtube.com/watch?v=oPDba0SZYR8 Instalacija Skynet firewalla na Asus Merlin router Samo pratiti uputstva ovdje: https://www.youtube.com/watch?v=vYoDfIoeqOQ [Ako ne koristite Cloudflare, ovaj korak možete preskočiti] Cloudflare postavke (moje) 1. "Always use HTTPS": nalazi se pod SSL/TLS, Edge Certificates 2. "Geoblock": nalazi se pod Security, WAF, morate kreirati rule sa odabirom kontinenata koje želite blokirati, u mom slučaju Afrika i Azija (iako ako netko koristi VPN, od ovoga nema koristi) 3. "Full (Strict) SSL": nalazi se pod SSL/TLS, Overview. Da bi ovo funkcioniralo, na RPI-ju treba imati instaliran SSL certifikat (dolje objašnjeno) 4. "Bot Fight Mode": nalazi se pod Security, Bots. Uključiti zaštitu od botova. Instalacija SSL certifikata na RPI Prvo instalirajte snapd i certbot po ovim uputstvima: https://certbot.eff.org/instructions...s=debianbuster Onda pratiti uputstva ovdje: https://youtu.be/WPPBO-QpiJ0&t=84 Preskočiti na 1:24 jer lik koristi Linode kao svoj server, ali princip je isti. On se preko SSH spaja na udaljeni Linode server, vi se spajate na svoj RPI. Instalacija DDOS protekcije za Apache webserver Pratiti uputstva ovdje: https://phoenixnap.com/kb/apache-mod-evasive Savjet: dodajte IP kompjutera s kojeg ćete pristupati RPI-ju na whitelistu, da vas modevasive iz nekog razloga ne blokira. Kada budete pratili gore navedena uputstva i dođete do koraka gdje editirate "evasive.conf" fajl, dodajte unutra još sljedeće: Code:
DOSWhitelist x.x.x.x Instalacija Fail2Ban alata za protekciju SSH DDOS-a Time bookmark na Youtubu od lika koji objašnjava kako: https://youtu.be/sO-afVsDJOA&t=772 (Preskočiti na 12:52) S obzirom da smo mi na Debianu, neke stvari još treba promijeniti da bi ovo radilo: Prvo editirati ovaj fajl: Code:
sudo nano /etc/fail2ban/jail.conf Citiraj:
Citiraj:
Naći polje "ignoreip" i dodati vaš IP. Detaljnije upute ovdje. Snimit promjene, napravit: Code:
sudo service fail2ban restart Code:
systemctl status fail2ban.service Restrikcija pristupa WordPress adminu iz vani i samo sa jedne, lokalne IP adrese Editiramo fajl koji je zadužen za pristup wp-adminu: Code:
sudo nano /var/www/html/.htaccess Dodati u taj fajl sljedeće: (Morao sam stavit sliku jer mi forum iz nekog razloga ne prikazuje cijeli code) Bitno: Kompjuter s kojeg mislite pristupati WP admin sučelju mora biti na statičnoj lokalnoj IP adresi, koja se upisuje gore pod "vasa.lokalna.ip.adresa" ! Omogućavanje pristupa SSH-u preko keya, gašenje passworda, setupiranje 2FA zaštite Pratiti uputstva sa: https://youtu.be/sO-afVsDJOA&t=542 (Preskočiti na 9:00) Setup 2FA kreće od 16:00. Generiranje keya i pristup RPI-ju preko Putty-ja Pratiti uputstva sa: https://www.techtarget.com/searchsec...authentication SSH i Sysctl hardening po Tomekovim preporukama Pratiti uputstva ovdje, editirati sshd_config i sysctl.conf fajlove: http://forum.pcekspert.com/showthrea...93#post3728193 Bonus: backup sustava Kada ste već ovoliko truda uložili u setup kućnog web servera, bila bi šteta da nešto pođe po zlu, pa naiđete na problem zbog kojeg vam sustav više ili uopće ne radi ili ne radi kako bi trebao. Zato preporučam redoviti backup sustava na neki, npr. eksterni USB stick ili HDD. Da biste to mogli, prvo morate mountati taj USB stick u neku destinaciju, jer u Linuxu se stickovi ne pojave sami od sebe kao u Windowsima. Prvo kada ga uključite u RPI, morate saznati koje mu je ime dodijeljeno. Upisujemo: Code:
lsblk U mom slučaju, dobijem: S obzirom da sam uštekao USB stick od 16GB, on se ovdje pojavio kao "sdb1". Trenutno s njim ne možemo ništa, jer ga prvo moramo mountati negdje. Gdje - to odabirete sami. Npr. ja sam odabrao da ću ga mountati u /media/usbstick, pa upisujem: Code:
sudo mount /dev/sdb1 /media/usbstick USB stick je sada "/media/usbstick". Ako uđemo u taj direktorij: Code:
cd /media/usbstick Code:
ls -al Code:
sudo rm izmisljeni_fajl.txt Pretpostavimo da je taj USB stick pun smeća kojeg treba pobrisati i tako ga pripremiti za backupiranje sustava. To radimo na sljedeći način: Prvo ga moramo un-mountati: Code:
cd / sudo umount /media/usbstick Code:
sudo mkfs -t ext4 /dev/sdb1 Ova naredba kaže Linuxu da formatira "sdb1" uređaj (moj stick) u ext4 file system (nativni za Linux). Sada je stick spreman za backup, a proces backupa i restore-a možete vidjeti ovdje (lik koristi Arch linux ali su naredbe iste): https://www.youtube.com/watch?v=oS5uH0mzMTg U mom slučaju, to bi izgledalo ovako: Code:
cd / sudo rsync -aAXvh --progress --delete --exclude={".cache","/dev/","/proc/","/sys/","/tmp/","/run/","/mnt/","/media/*","/lost+found"} / /media/usbstick Zadnje izmijenjeno od: Neo-ST. 24.02.2024. u 18:34. |
|||||
12.02.2024., 13:03 | #2 |
Mirko, a ne Harry
Datum registracije: Nov 2009
Lokacija: Zagreb
Postovi: 4,925
|
Svaka čast
__________________
Hala Madrid! |
|
|
Oglas
|
|
12.02.2024., 13:35 | #4 |
Premium
Datum registracije: Mar 2020
Lokacija: Osijek
Postovi: 247
|
mozes uzet besplatnu domenu od "from.hr" i prebacit dns na cloudflare i dignes si cloudflared "tunnel" konektor u dockeru i virtualci i hostas nginx ili ko kolega apache za djabe nema portova ni nikake patnje... inace pohvale kolegi na trudu |
12.02.2024., 13:35 | #5 |
49%winner
Datum registracije: Sep 2007
Lokacija: PU
Postovi: 8,863
|
@Libertus Ako si kroz cloudflare slozio end to end ssl, port 80 ti i ne treba, dosta bude samo 443. Na cloudflareu forsiras redirectanje http prometa na https te blokiras sve forsirane http zahtjeve kroz cloudflare firewall. Jednom kada na cloudflareu podesis firewall grube filtere (geoblock itd) onda si dosta suzio pristup svom sajtu/serveru. Ali to dosta ovisi sto zelis postici. Nekada nije idealno ako hostas sajt za cijeli svijet, ali je korisno ako selfhostas neke stvari za sebe. Ako zelis ici korak dalje i imas bolju opremu na svojoj strani (ruter, firewall) mozes potpuno blokirati sav internet promet prema tvom wan-u i portovima 80/443 osim cloudflare proxy adresa: https://www.cloudflare.com/en-gb/ips/ Na taj nacin samo promet koji ide preko proxyja moze doci k tebi, a on je onda enkriptiran i prolazi kroz cf firewall i sve one bot fight featureove... Jos malo naprednija metoda zastite je da hardver koji vrti tvoj sajt stavis u vlan/dmz i potpuno ga odvojis od svoje kucne mreze. Ako si dobro podesio svoj firewall i sto se smije a sto ne smije raditi izmedju vlan-ova, mozes se malo vise opustiti. Ovo trazi malo vise znanja/ucenja i hardver koji to moze isporuciti.
__________________
♕ Keep calm and fastboot oem unlock. ♕
|
12.02.2024., 14:04 | #6 |
Premium
Datum registracije: May 2006
Lokacija: München/Varaždin
Postovi: 3,421
|
Samo mali disclaimer - ovo je odlicna startna tocka ali nikad ovakav konstrukt pustat na Internet ako su vama bitni podaci gore. Za offline je sasvim dovoljno. Za pustanje prema van ima tu malo vise posla (port forwarding, implementacija baznih sigurnosnih aspekata sa Linux strane kao SSH hardening, baznog IDS (Intrusion Detection System) i IPS (Intrusion Prevention System), implementacija valjanog certifikata za domenu i DNS hosting, aktivni Log monitoring i mozda Geo blocker, implementacija modsecurity modula u Apache - su samo neki od osnovnih koraka bez kojih nebih vlastiti websajt pustao prema van). Internet je opasno mjesto i bazno razumijevanje sigurnosnog aspekta je nuzno. Samo zato sto je Linux gore ne znaci da je sustav siguran. |
12.02.2024., 15:26 | #7 | ||
Buying Bitcoin
Datum registracije: Feb 2007
Lokacija: Croatia
Postovi: 7,987
|
Citiraj:
Citiraj:
Odakle uopće da počnem ? Da bih napravio sve ovo šta ste napisali, morao bih upisati neki fakultet. |
||
12.02.2024., 15:57 | #8 |
Premium
Datum registracije: Nov 2004
Lokacija: HR
Postovi: 771
|
a neš to na vakultetu naučiti |
12.02.2024., 16:24 | #9 |
DIY DILETANT
Datum registracije: Jan 2009
Lokacija: Čistilište
Postovi: 3,101
|
|
12.02.2024., 16:36 | #10 |
EMP moderator
Datum registracije: Apr 2005
Lokacija: Osijek
Postovi: 18,423
|
Pohvala za trud! Fail2Ban isto ne bi bilo loše ubaciti u priču...
__________________ "Kako su krojači novog svjetskog poretka uspjeli u tako kratko vrijeme slomiti intelektualne sposobnosti društva, uništiti kritičku svijest i ljudima nametnuti izvrnutu logiku?"
|
|
|
Oglas
|
|
12.02.2024., 18:21 | #12 | |
Premium
Datum registracije: May 2006
Lokacija: München/Varaždin
Postovi: 3,421
|
Citiraj:
Fuckas fax , to tamo neces naucit. Google, vrijeme i zdrava logika u ruke 1. Blokada SSH pristupa root korisniku - Fail2Ban takoder nije na odmet 2. Omogucavanje SSH pristupa samo sa valjanim kljucem - nikako lozinkom - jos bolje omogucavanje pristupa samo specificnom korisniku. 3. Uzmi Suricatu kao IDS - ispravna konfiguracija naravno je tu kljucna 4. Kad pristupas izvana lokalnoj instanci na internoj mrezi nikad nemoj defaultne portove koristiti - uvijek nesto tipa port 9443 ili slicno pa kroz router forwardaj interno na 443 na lokalnoj masini koja hosta sadrzaj 5. Uzmi negdje kak spada domenu - vecina nudi opciju valjanog certifikata - u protivnom mozes LetsEncrypt koristiti. 6. Implementiraj modsecurity u Apache - modevasive nije na odmet 7. Vecina Linux distri podrzavaju neku vrstu audit sustava - koristi jednog od njih (psacct/sysstat kombinacija na primjer) 8. Rootkit AntiMalware nije na odmet (rkhunter) 9. Lynis ti je prijatelj - koristi ga da bi lakse prepoznao slabe tocke sustava i ako ima potrebe ocvrsnuo sustav 10. Ispravno konfiguriran Selinux ili Apparmor su jako korisni. 11. Oldie but goldie - Firewalld/iptables/eptables Firewall koji pusta van samo nuzno i blokira sve ostalo je uvijek izuzetno bitna stavka 12. Sysctl Hardening je opcija ali me vec par puta spasio mjesece debugginga. Ima tu jos ohoho toga al ovo je za pocetak vise nego dovoljno. Evo ti par SSH postavki za pocetak (/etc/sshd/sshd_config): Code:
AllowUsers Code:
fs.protected_fifos=2 fs.protected_regular=2 fs.suid_dumpable=0 kernel.dmesg_restrict=1 kernel.exec-shield=1 kernel.kptr_restrict=2 kernel.perf_event_paranoid=3 kernel.randomize_va_space=2 kernel.sysrq=0 kernel.yama.ptrace_scope=3 net.core.bpf_jit_harden=2 net.ipv4.conf.all.accept_redirects=0 net.ipv4.conf.all.forwarding=0 net.ipv4.conf.all.log_martians=1 net.ipv4.conf.all.send_redirects=0 net.ipv4.conf.default.accept_redirects=0 net.ipv4.conf.default.accept_source_route=0 net.ipv4.conf.default.log_martians=1 net.ipv4.conf.default.send_redirects=0 net.ipv4.icmp_ignore_bogus_error_responses=1 net.ipv6.conf.all.accept_redirects=0 net.ipv6.conf.default.accept_redirects=0 Code:
* hard core 0 Code:
-a exit,always -F arch=b64 -F euid=0 -S execve -a exit,always -F arch=b32 -F euid=0 -S execve Zadnje izmijenjeno od: tomek@vz. 12.02.2024. u 18:32. |
|
12.02.2024., 20:54 | #13 |
#erase startup-config
Datum registracije: Nov 2001
Lokacija: Zagreb
Postovi: 2,994
|
Još disejblati weak ciphere u OpenSSH, eliptic curve key umjesto RSA, složiti 2FA za sudo, staviti neki monitoring i log collector/SIEM s vizualizacijama i alertima… ima tu posla |
13.02.2024., 05:34 | #14 | |
DIY DILETANT
Datum registracije: Jan 2009
Lokacija: Čistilište
Postovi: 3,101
|
Heh, ovo me podsjetilo na davne dane majkrosoftovog ponosa i slave kad je Windows XP firewall bio konfiguriran po defaultu ALLOW ALL na svim portovima, pa se desila nezgodancija. Tog davnog ljeta 2003, sjetit ćete se možda ove poruke Citiraj:
Za sada prvi i zadnji, kucam na drvo i pušem na hladno. |
|
13.02.2024., 08:52 | #15 |
Premium
Datum registracije: May 2006
Lokacija: München/Varaždin
Postovi: 3,421
|
P.S. Nakon malo proucavanja i igranja - Nala i slicne solucije izbjegavati. Uvijek koristitite standardni Paket Manager dostupan za Distru. Ovakve stvari uvijek na kraju rezultiraju sa skrsenim sustavom - ili jos gore predstavljaju sigurnosni rizik (Hint: Titus nije bas dobra pocetna tocka za ucit Linux prema standardu). Ako zelite automatizirat deployement sustava postoji izuzetno jednostavan a mocan sustav koji koristi standardne Linux alate - Ansible. Topla preporuka. https://docs.ansible.com/ansible/lat...pt_module.html |
13.02.2024., 09:06 | #16 |
Premium
Datum registracije: Nov 2004
Lokacija: HR
Postovi: 771
|
I pozeljno zadnji korak nakon svega ovoga sto se tu navelo platiti audit i pen testing renomirane firme koja se bavi kibernetickom sigurnoscu |
13.02.2024., 10:45 | #17 |
Bot Maker
Datum registracije: Dec 2005
Lokacija: medjimurje, mala subotica
Postovi: 2,728
|
Da, i moras imat anti virusni na kompjuteru obavezno. i spyware onaj iz 1980te ili koja je vec bila. Vidim da ima ovdje velikih panicara, pa kako onda te stranice padaju na one turcine koji niti ne hakaju manualno nego samo puste program da vrti i koga pokupi pokupi, pa kako onda ove mocne stranice budu hakirane???? kako??? P.S. najveci problem bi ti bio internet, i nitko te nece skrsiti s ovim sto je gore navedeno nego s jednostavnim DDOSom buduci internet je slab, ali je dobra stvar sto imas dynamic IP pa ce ddos sam po sebi prestat nakon 24 sata, a s druge strane to je i problem za hosting jer ces svakih 24 sata mjenjat IP, pa moras to zaobici sto opet kosta nakraju te ispadne s strujom i svim da radje kupis shared hosting kao i sve ove gore spomenute stranice.
__________________
|
13.02.2024., 11:50 | #18 |
Buying Bitcoin
Datum registracije: Feb 2007
Lokacija: Croatia
Postovi: 7,987
|
Ovdje je dano puno sigurnosnih savjeta, šta je meni fascinantno jer za 90% toga nisam ni znao da postoji, pa ću sigurno proučiti te savjete, ali ono šta mene zanima trenutno, koliko od svega toga je realno potrebno za neku amatersku web stranicu, tipa blog koji nema nikakve osjetljive niti privatne informacije? Koji bi, recimo, sigurnosni minimum bio za takav projekt? Čisto da ne krenem u izgradnju obrambenog sustava na razini Pentagona za blog koji se bavi, šta ja znam, hobijem skupljanja cvrčaka 😅 |
13.02.2024., 12:33 | #19 |
Bot Maker
Datum registracije: Dec 2005
Lokacija: medjimurje, mala subotica
Postovi: 2,728
|
niti jedan sigurnosni element ovdje naveden. Ali ovo sto sam ti ja naveo da ces tesko sloziti da to radi prek tvog IPa. I ako sve poslozis to su ti dodatni troskovi. I na kraju svega par ljudi ce ti rusit stranicu. treca stvar nisam vidio kakv CPU, kakav RAM, i to bi mogao biti problem...
__________________
|
13.02.2024., 14:18 | #20 | |
Premium
Datum registracije: May 2006
Lokacija: München/Varaždin
Postovi: 3,421
|
Citiraj:
http://forum.pcekspert.com/showpost....3&postcount=12 Kao sto napisah > sve zavisi sto hostas. Ak je nekaj manje bitno i ak se provali neces plakat onda - kolko mozes. @dada-os > ako ovo nije dovoljno ili je nekaj od toga suvisno - kaj bi po tebi bilo smisleno? |
|
13.02.2024., 14:34 | #21 |
Bot Maker
Datum registracije: Dec 2005
Lokacija: medjimurje, mala subotica
Postovi: 2,728
|
Pa covjek ocito nema neku vrijednost ak ce doma hostat, naveo sam mu rpobleme koji nemaju veze s sigurnoscu, sto ce se muciti s sigurnoscu kad ce imat ogromne probleme i bez toga. Evo vec pod broj 1 root Blokada SSH pristupa root korisniku je overkill. Tko ce njemu razbijat root na domacem hostingu. S time se ni telecom na svojim web serverima ne muce, kladim se da imaju root access. kvragu da povezem to s crypto svjetom, lik ima miljarde i ne koristi 2fa. Sad ce ovaj na domacem hostingu to zastiti da ni sam nece moci na server... cemu...
__________________
|
13.02.2024., 14:59 | #22 |
EMP moderator
Datum registracije: Apr 2005
Lokacija: Osijek
Postovi: 18,423
|
Pusti neki device javno na net i gledaj logove, u roku 24 h ćeš imati pokušaje probijanja root accounta. A i ovaj DDoS više nije tako veliki problem, veliki igrači kao Cloudflare imaju obranu protiv takvih napada.
__________________ "Kako su krojači novog svjetskog poretka uspjeli u tako kratko vrijeme slomiti intelektualne sposobnosti društva, uništiti kritičku svijest i ljudima nametnuti izvrnutu logiku?"
|
13.02.2024., 15:15 | #24 |
Bot Maker
Datum registracije: Dec 2005
Lokacija: medjimurje, mala subotica
Postovi: 2,728
|
Nisam mislio da ce ga pravi ddos steps, mislio sam na ovaj kad se stranica rusi jer je los hosting, a u njegovom slucaju internet, obicno tada kazu da su pod DDos napadom, a nisu nego jednostavno losi hardwerski serveri i jos losija konfiguracija ne podnosi traffic. A u logovima se moze vidjet svasta ne samo pokusaj root acessa nego i drugi pokusaji pa sto... Pa nece valjda stavit password 1234. Evo ja koristim root acess, i imam pokusaje, ali nece nikad upast. A imam jer sam lijen napraviti kak treba jer jednostavno nema potrebe kad sam i ovako 100% siguran.
__________________
|
13.02.2024., 15:19 | #25 |
Bot Maker
Datum registracije: Dec 2005
Lokacija: medjimurje, mala subotica
Postovi: 2,728
|
Pomoglo bi, ali mislim da bi tu bilo puno false flagova pa bi neki pravi korisnici bili zakinuti da vide stranicu. Neznam koji je cilj stranice, ako je cilj dovuc sto vise ljudi biti popularan onda home hosting nema apsolutno nikakvog smisla. Ako je to neki web koji podjelis frendovima i to je to onda ajd Ok ima nekog smisla, ali mislim da ima bolje komunikacije s frendovima od weba. P.S. ukljucio sam se u ovu raspravu jer sam i sam pokusavao svasta od doma. I slozio sam sve, ali na kraju mi je taj internet bio problem. Najvise jer je to kucna veza pa svaki put kad ja gledam 4k film, ili nesto slicno ce site biti sporiji mozda ni nece otvarat... nakraju sam opet zavrsio na digitaloceanu
__________________
|
13.02.2024., 15:28 | #26 |
Buying Bitcoin
Datum registracije: Feb 2007
Lokacija: Croatia
Postovi: 7,987
|
Ma sajt bi bio bezveze, neko moje trabunjanje o nekim stvarima, zato sam i išao na kućnu shemu jer mislim da ništa više od toga i nije potrebno. A radi vlastite edukacije i zabave ću krenuti sa ovim savjetima od tomeka, domyja, mede i xlr-a pa dokle stignem... Prije svega ću klonirati cijeli sustav u postojećem stanju, tako ako šta zajebem da ga mogu vratiti. I ovo za Nalu nisam znao, šteta, baš mi se svidila ali maknit ću je. |
13.02.2024., 15:38 | #27 |
Premium
Datum registracije: May 2006
Lokacija: München/Varaždin
Postovi: 3,421
|
Nikad ne podcjenjuj Script Kiddies i zelju za dokazivanjem. |
13.02.2024., 16:30 | #28 |
Premium
Datum registracije: Nov 2004
Lokacija: VKCI
Postovi: 1,206
|
Cloudflare koristim jedno vrijeme i sve radi super, hostam i web preko njega. Geoblokada isto fino radi. Jedini problem mi je sto fajle veci od 100MB (mislim) ne mozes preko proxya njihovog hostati, upload ili download raditi. U free verziji makar. Saznao to zbog synolog photosa koji sam krenio koristiti preko proxya, pa nejde baš |
13.02.2024., 16:34 | #29 | |
jedan i jedini :D
Datum registracije: Sep 2005
Lokacija: novi zagreb
Postovi: 4,966
|
Citiraj:
Ne kazem da je sve ono drugo sto je tomek naveo lose, apsolutno ne, ali je overkill za ovo sto tebi treba. Druga je stvar ako zelis naucit neke od tih stvari, u tom slucaju go for it. Iskreno, ni ja nisam znao za vecinu tih stvari. Po napisanom vidis da tomek barata s time na dnevnoj bazi. |
|
13.02.2024., 17:01 | #30 |
Premium
Datum registracije: Nov 2004
Lokacija: HR
Postovi: 771
|
Jedino što je baš kritično je http i WordPress. Definitivno ti u gajdu nedostaje Letsencrypt . Simple je. i pustiš sve van preko https port 443, a 80 zatvori. osim ako si ssl cert dobio sa kupovinom domene? admin pristup WordPress treba ograničiti maksimalno , u tvom slučaju bi to možda mogao izvesti isključivo iz lokalne mreže? istraži . ono što je važno WordPress redovito nadograđivati. nala je fora, koristim ju na svojim pc-evima, ali na serverima mi ne pada na pamet. https://wiki.debian.org/UnattendedUpgrades još kako možeš proširiti gajd nakon što dodaš ssl je wireguard . ako imaš verziju fw na asusu koja podržava wireguard možeš na njemu vrtiti, ako ne lako ga dignes na rpi. Zadnje izmijenjeno od: strikoo. 13.02.2024. u 17:21. |
|
|
Oglas
|
|
|
|