APG: generujeme silná hesla

APG – Advanced Password Generator

APG používam řadu let k plné spokojenosti, instalace je standartní součastí repositářů Debian/Ubuntu serveru, RPM distribuce mají k dispozici EPEL.

Co umí APG?

  • nastavení minimální, maximální délky hesla
  • nastavení podílu (v %) speciálních znaků v heslo
  • libobolných počet generovaných hesel
  • inicializace random generátoru vlastním řetezcem (seed)
  • obsahuje dva vestaveně algoritmy generování hesel, výchozí AD-A-017676/FIPS-181
  • vestavěný pseudo generátor nahodných čísel dle RFC1750, /dev/random je použit jako seed
  • použití ve scriptech
  • generování hesla na žadost (síťová verze s tcpd)
  • k dispozici pro mnoho unix platforem, Windows i Mac
  • a mno dalšího viz. man apg

Bezpečnost stojí a pádá z velké časti na použití silných hesel, pokud již je nutné hesla použít, připomeňme si pár zásad tvorby silných hesel.

  1. nejméně 15 znaků délka hesla
  2. neobsahuje uživatelské jméno, skutečné jméno, organizaci/firmu/školu, jména rodinných příslušníků, domácích mazlíčků
  3. neosahuje datum narození, čísla občanského průkazu či pasu
  4. neobsahuje po sobě jdoucí sekvence, čísla (např. 123456)
  5. neobsahuje bežné slovu výskytující se ve slovníku
  6. není shodné s předchozím heslem
  7. obsahuje alespoň 3 následující typy znaků malá písmena, velká písmena, číslice, speciální znaky (%,$,#,@,!,…)

Malá ukázka?

havel@havel-machine:~$ apt-get install apg
havel@havel-machine:~$ apg
Please enter some random data (only first 16 are significant)
(eg. your old password):>
aiclopCuak7 (aicl-op-Cu-ak-SEVEN)
5bledItJap2 (FIVE-bled-It-Jap-TWO)
PeefIcPylt0 (Peef-Ic-Pylt-ZERO)
lezRajOfcul9 (lez-Raj-Of-cul-NINE)
cesVabtyriv7 (ces-Vab-ty-riv-SEVEN)
yanEjOddob3 (yan-Ej-Odd-ob-THREE)

havel@havel-machine:~$ apg -a 1 -m 32 -n 1
“OPEPQEz2L-N[v%Mumb)e+Gm>|T,\$~^
( velmi hezká a silná hesla o déllce 32 znaků)

havel@havel-machine:~$ apg -a 0 -M sncl -n 6 -x 10 -m 16 -n 1
EmKodhaidtinyit1

Zájemce odkazuji na “man apg”.

A to je vše přátelé, a jak generujete hesla vy?

Děkuji za pozornost. František Havel

 

Linux firewall: Blokujeme pomocí IPSET

Blokovat nežádoucí IP adresy v přístupu na Váš server nemusí být vždy snadné, zvláště v případě kdy se bavíme o samostatných IP adresách (/32) bez společného CIDR prefixu.

Klasický nástroj netfilter/iptables dokáže tento problém snadno řešit.

root@havel-machine:~# iptables -A INPUT -s 1.1.1.1 -p TCP -j DROP
root@havel-machine:~# iptables -A INPUT -s 2.2.2.2 -p UDP -j DROP

Snadné! A když se seznam rozroste na 10000 položek? V systému bude 10000 iptables pravidel? Takto to nelze škálovat.

Zde na pomoc přichází IPset framework v kombinaci s iptables, co to umí?

  • uchování rozsáhlých seznamů IP adres, portů TCP/UDP, MAC adres
  • rychlé prohledávání seznamu pomocí hashe
  • dynamické aktualizace seznamu

Instalace Debian

root@havel-machine:~# apt-get install ipset
root@havel-machine:~# ipset create banlist hash:net
root@havel-machine:~# ipset list
 Name: banlist
 Type: hash:net
 Revision: 4
 Header: family inet hashsize 1024 maxelem 65536
 Size in memory: 16760
 References: 0
 Members:
 (maxelem lze změnit parametrem maxelem při volání create)
root@havel-machine:~# ipset add banlist 1.1.1.1/32
root@havel-machine:~# ipset add banlist 2.2.2.2/32
root@havel-machine:~# ipset add banlist 3.3.3.3/32
root@havel-machine:~# ipset add banlist 4.4.4.4/24
root@havel-machine:~# ipset list
 Name: banlist
 Type: hash:net
 Revision: 4
 Header: family inet hashsize 1024 maxelem 65536
 Size in memory: 16888
 References: 0
 Members:
 4.4.4.0/24
 3.3.3.3
 1.1.1.1
 2.2.2.2

Máme připraven ipset, zavedem ho do iptables pravidla, zde si ukážeme blokaci pro port 80 (www server) a port 25 (smtp).

root@havel-machine:~# iptables -I INPUT -m set –match-set banlist src -p tcp –destination-port 80 -j DROP
root@havel-machine:~# iptables -I INPUT -m set –match-set banlist src -p tcp –destination-port 25 -j DROP

root@havel-machine:~# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp — 0.0.0.0/0 0.0.0.0/0 match-set banlist src tcp dpt:25
DROP tcp — 0.0.0.0/0 0.0.0.0/0 match-set banlist src tcp dpt:80

V kombinaci s ipset se přímo nabízí nějaká služba proautomatické blokování, zkuste se mrknout iblocklist.com.

Další info, man ipset.

Díky za Váš čas. František Havel

František Havel: #2 Historie operačního systému GNU/Linux

Přátelé, kamarádi, kolegové, dámy, pánové, široká veřejnosti.

Čekali jste, snažili jsme se a už je to tady, místo keců, další video našeho malého mini seriálu, velké poděkování za veškeré veřejné i soukromé komentáře.

Další díl na světě, ke shlédnutí právě teď a tady.
František Havel: #2 Historie operačního systému GNU/Linux

Oceňte naši snahu můžete-li, dejte like, nejlépe odběr kanálu či sdílejte, děkujeme.

Díky, za Tachovsko lepší.
František Havel
https://www.youtube.com/user/fahacz
http://havel.mojeservery.cz