Rodomi pranešimai su žymėmis saugumas. Rodyti visus pranešimus
Rodomi pranešimai su žymėmis saugumas. Rodyti visus pranešimus

2023 m. spalio 26 d., ketvirtadienis

mysql block from remote except localhost

sudo iptables -A INPUT -i lo -p tcp --dport 3306 -j ACCEPT

sudo iptables -A INPUT -p tcp --dport 3306 -j DROP 

2023 m. kovo 17 d., penktadienis

komanda, matyti iš kurių IP buvo prisijungta prie ssh

 grep "sshd.*Accepted" /var/log/auth.log | awk '{print $11}' | sort | uniq

 grep "sshd.*Accepted" /var/log/secure | awk '{print $11}' | sort | uniq


2019 m. rugpjūčio 27 d., antradienis

detect spamming sript

Pirmiausia, žiūrėti mail log:
1829AB7A07E3: uid=48 from=<aaa@bbb.lt>
Pirmas stulpelis - mail quue id, antras - proceso id, kuris siunčia.

php.ini turi būti nustatyta:  mail.add_x_header = On

postcat -q <ID>      - pagal mail que id pažiūrėti laišką
postcat -q DA5E8647235C | grep X-PHP-Originating-Script

X-PHP-Originating-Script: 45:badmailer.php
The number 45 is the UID, which is the Linux user ID that ran the script

postcat -q DA5E8647235C | grep sasl_username

Resend messages in the queue:   postqueue -f

Pastaba: susitvarkus, paleisti   postsuper -d ALL  
nes kitaip dar  tukstanciai padetu laisku gali buti.

Papildomai, iš išorės galima blokuoti SMTP (jungiantis iš servo rašyti localhost): 
iptables -A INPUT -p tcp -s localhost --dport 25 -j ACCEPT 

2017 m. vasario 10 d., penktadienis

mysql replication

MHA tool - managing master/slave
https://code.google.com/p/mysql-master-ha/
https://mysqlstepbystep.com/2015/06/01/mysql-high-available-with-mha-2/

master/slave tipologija
https://severalnines.com/resources/tutorials/mysql-replication-high-availability-tutorial

tutorials
http://www.servermom.org/master-slave-mysql-replication-tutorial/
https://www.digitalocean.com/community/tutorials/how-to-set-up-master-slave-replication-in-mysql
http://dba.stackexchange.com/questions/8680/what-is-the-best-way-to-create-mysql-master-slave-replication-setup-and-troubles
http://www.tecmint.com/how-to-setup-mysql-master-slave-replication-in-rhel-centos-fedora/
http://www.techrepublic.com/blog/tr-dojo/set-up-mysql-database-replication-to-ensure-up-to-date-backups/

On master, lock the database read-only, flush everything.
On slave, stop the mysqld daemon (very important!!!)
rsync the data store directory from the master to the slave
start the slave
unlock the master.

rsync over ssh with public key (no pass)

https://www.digitalocean.com/community/tutorials/how-to-copy-files-with-rsync-over-ssh

2016 m. lapkričio 20 d., sekmadienis

smtp 25 porto blokavimas

iptables -A INPUT -p tcp --destination-port 80 -j DROP
service iptables save

blokuojam tik incoming 25 tcp port

2015 m. rugsėjo 26 d., šeštadienis

jQuery perdavima x-auth-token

$.ajax({
   url : myurl,
   headers: {
        'X-Auth-Token' : token
   });

PHP / ajax apsauga, su kintamu raktu ir laiko žyma

$time = time();
$hash = md5($key . $time);
$url =  "http://domain.com/iframe?hash=$hash&time=$time";
On the other side you should first check if the timestamp is in the limits (e.g. not older than five minutes) and than rehash with the key and the submitted timestamp. If you get the same hash the request is valid.

2015 m. sausio 20 d., antradienis

web projekto saugumas

geras straipsnis: http://pakamore.lt/it-saugumo-spragos-lietuvoje-2014/
cituoju esmę:

  • Gavom patvirtintus formos duomenis iš IP, kuris neapsilankė pirmose trijose duomenų suformavimui skirtuose žingsniuose? Blokuojam, ryte administratorius patikrins.
  • Gavom 20 užklausų kas 1 sekundę iš vieno IP? Blokuojam, ryte administratorius patikrins.
  • Gavom identiškai suformuluotą užklausą kaip ką tik užblokuota, tik iš kito IP adreso? Blokuojam, ryte administratorius patikrins.

2015 m. sausio 13 d., antradienis

PHP saugumas

Serveryje turint daug domenų, tikslinga aproboti PHP teises tik tame folderyje. Tai nustatoma, pvz:
open_basedir="/home/manodomenas.lt/public_html/:/tmp".
Žr. plačiau kaip automatizuoti: http://servernetworktech.com/2012/11/securing-php-when-using-virtualmin/

Kitas dalykas, PHP leisti kaip tik to vartotojo CGI programą, aprobojant tam vartotojui skirtus serverio resursus. Plačiau: https://www.virtualmin.com/node/24245


2015 m. sausio 9 d., penktadienis

SSL naudojimo klaidos

Patikrinti, kaip veikia SSL (HTTPS) galite: https://www.ssllabs.com/ssltest/analyze.html
Dažnos SSL klaidos:
Įspėjimus rodys SHA-1 nesaugūs sertifikatai: http://googleonlinesecurity.blogspot.co.uk/2014/09/gradually-sunsetting-sha-1.html
Neteisingai instaliuotas tarpinis sertifikatas
Neteisingai sukonfigūruota TLS programa
Nešifruotas trečiųjų šalių turinys https:// svetainėje

2015 m. sausio 8 d., ketvirtadienis

Tinklalapio saugumas

1. Trečiųjų šalių skriptų naudojimas.
Kartais naudodami populiarius trečiųjų šalių bibliotekas, rizikuojate serverio saugumu: ne visada spėsite atnaujinti šias bibliotekas, o programišių robotai, automatiškai skenuodami svetaines, glai ieškoti, ar egzistuoja tiesiog kokios nors bibiliotekos aplankas Jūsų serveryje, pvz "www.jususaitas.lt/ckeditor". Dėl šios priežasties, geriausia tokių bibliotekų aplankus pervardyti į neatspėjamus, pvz  "www.jususaitas.lt/ckeditorB6Yx". Jeigu tas bibliotekas iškviečiate ne tik iš apsaugotos admin dalies, bet ir viešoje dalyje, tia jų iškvietimo kodus taip pat vertėtų apsaugoti, pvz, naudojant jquery, skriptus glaite iškviesti taip:
$.getScript("/cke"+"ditorB6Yx/ckfi"+"nder/ckf"+"inder.js");
2. Užkrėstų failų paieška
Jeigu jau serveryje buvo įsilaužta, reikėtų praskenuoti visus serverio failus, apieškoti, ar nėra integruoto kenkėjiško kodo. Serveryje galima leisti tokią komanda:
cd /var/www
sploitpattern='r0nin|m0rtix|upl0ad|r57shell|cFaTaLisTiCz_Fx|Tukulesto|99shell|shellbot|phpshell|void\.ru|phpremoteview|directmail|bash_history|\.ru/|brute *force|multiviews|cwings|vandal|bitchx|eggdrop|guardservices|psybnc|dalnet|undernet|vulnscan|spymeta|raslan58|Webshell'

find ./ \( -regex '.*\.php$' -o -regex '.*\.cgi$' -o -regex '.*\.inc$' \) -print0 | xargs -0 egrep -il "$sploitpattern" | sort > potential_exploits.txt

ARBA

Replace the path below (.) with the absolute path of the directory you want to recursively scan. For example, you could recursively scan from the working directory:

grep '((eval.*(base64_decode|gzinflate|\$_))|\$[0O]{4,}|FilesMan|JGF1dGhfc|IIIl|die\(PHP_OS|posix_getpwuid|Array\(base64_decode|document\.write\("\\u00|sh(3(ll|11)))' . -lroE --include=*.php*

Esmė: ieškoti failuose tokių frazių, kaip eval, gzinflate, iframe ir pan. Jei serveris ne su root prieiga, galima failus atsisiųsti į kompiuterį ir ieškoti su programa http://www.wingrep.com/ (ji ieško failo viduje).

Vertingas išsamus sąrašas: http://www.exploit-db.com/papers/12871/

2014 m. liepos 22 d., antradienis

Nustatymas labiausiai apkraunamų puslapių

Tam tikslinga naudoti apachetop komandą. Jos instaliavimas:
yum install apachetop

programa beveik realiame laike analizuoja access logus, todėl jai reikia pateikti kelią iki norimo access logo, pvz: apachetop -f /var/log/virtualmin/manosaitas_access_log

norint stebėti visus savo hostinge esančius access logus, vedame:
apachetop $(find /var/log/virtualmin/ -type f -size +10k -name *access_log -print | sed 's/^/-f '/)

2014 m. liepos 21 d., pirmadienis

Atakų nustatymas ir IP blokavimas

CMD komanda, parodanti, kiek sujungimų pateikia kiekvienas IP:
netstat -alpn | grep :80 | awk '{print $5}' |awk -F: '{print $(NF-1)}' |sort | uniq -c | sort -n

Blokuojami IP adresai saugomi ugniasienės faile /etc/hosts.deny  tačiau geriausia įvesti blokuoamus IP per CMD:
# iptables -A INPUT -s 65.55.44.100 -j DROP
# service iptables save

Blokavimui atšaukti:
# iptables -D INPUT -s 65.55.44.100 -j DROP
# service iptables save

Pažiūrėjimui kas blokuojama:
iptables -L -n

Pastaba: kai kurie VDS limituoja iptables irasu limita iki 4000 ir to negalima padidinti ant openVZ platformos, taip pat siojeplatformoje nebeikia ipset listai.

iptables-save to dump the current rule set into a file.
iptables-save > /etc/sysconfig/iptables
To load the file you don't need to restart the machine, you can use iptables-restore
iptables-restore < /etc/sysconfig/iptables
Per terminala leidziant komandą, glaima pateikti ir komentara, kaip pvz:
iptables -A INPUT -p tcp -m tcp --dport 22 -m comment --comment "allow SSH to this host from anywhere" -j ACCEPT
Ne visi VDS palaiko rules comment: Depending on your distribution, you may need to load the ipt_comment or xt_comment modules into your running kernel first.

Norint uzblokuoti mysql is isopres:

iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP


If you want to remove the filtering, use this:

iptables -D INPUT -p tcp --dport 3306 -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -D INPUT -p tcp --dport 3306 -j DROP

ARBA, be iptables galima pasieiti: Add to my.cnf:
skip-networking
Please note you will need to use localhost, not 127.0.0.1, after the change.

2014 m. gegužės 15 d., ketvirtadienis

PHP - kaip užkoduoti duomenis su raktu, kad jie būtų atkoduojami tik su tuo raktu

$key = 'password to (en/de)crypt';
$string = ' string to be encrypted '; // note the spaces
To Encrypt:
$iv = mcrypt_create_iv(
    mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC),
    MCRYPT_DEV_URANDOM
);

$encrypted = base64_encode(
    $iv .
    mcrypt_encrypt(
        MCRYPT_RIJNDAEL_256,
        hash('sha256', $key, true),
        $string,
        MCRYPT_MODE_CBC,
        $iv
    )
);
To Decrypt:
$data = base64_decode($encrypted);
$iv = substr($data, 0, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC));

$decrypted = rtrim(
    mcrypt_decrypt(
        MCRYPT_RIJNDAEL_256,
        hash('sha256', $key, true),
        substr($data, mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC)),
        MCRYPT_MODE_CBC,
        $iv
    ),
    "\0"
);