Aplicații
E-mail 1006 Solutii
Setari grafice cu impact neasteptat – CUDA – Sysmem Fallback Policy (Nvidia)
O setare aparent “inofensiva”, preferinta driverului video de a permite in mod implicit sa se utilizeze “memoria de sistem” (RAM) odata cu epuizarea memoriei dedicate de pe placa video (Video Ram) poate avea un impact semnificativ asupra timpilor de raspuns ai sistemului la comenzi, cel mai vizibila fiind intarzierea in miscarea cursorului.
[mai mult...]Comparatia procentului de utilizare a procesorului pentru diferite rate de esantionare a informatiilor de miscare a mouse-ului (8000-500hz)
La ora actuala pe piata regasim mousi ce pot oferi informatii legate de pozitia cursorului cu o rata de pana la 8000hz (posibil sa existe variante experimentale ce depasesc aceste valori).
Intr-un mediu bussiness sunt greu de justificat valori atat de ridicate, mai ales din moment ce reduc semnificativ durata cat poate fi utilizat un mouse pana a fi nevoie sa fie reincarcat (raportat la o rata de esantionare redusa). De asemenea, dupa cum vom prezenta in continuare, ratele de esantionare mari pot avea un impact semnificativ asupra performantei procesorului.
[mai mult...]Cum se instalează CSF (Config Server Firewall) pe Debian 12
CSF sau Config Server Firewall este un firewall Stateful Packet Inspection (SPI) bazat pe IPtables și Perl. Acesta oferă un proces daemon care monitorizează serviciile dvs. pentru erori și autentificare și oferă, de asemenea, integrare cu interfața web pentru gestionarea serverelor bazate pe web, cum ar fi Webmin, cPanel și DirectAdmin.
În acest tutorial, vă vom ghida prin procesul de instalare a CSF (Config Server Firewall) pe serverul Debian 12. Veți învăța, de asemenea, configurația de bază a CSF, blocarea adreselor IP folosind două metode diferite și configurarea interfeței web CSF pentru o gestionare și monitorizare ușoară.
ACTUALIZARE: Firewall-ul CSF a fost închis în august 2025. Puteți utiliza în schimb fork-ul său, Sentinel Firewall:
- Site web al firewall-ului Seninel: https://sentinelfirewall.org/
- Ghid de actualizare de la CSF la Sentinel: https://sentinelfirewall.org/docs/upgrade-from-csf/
Cerințe preliminare
Pentru a începe cu acest tutorial, asigură-te că ai următoarele:
- Un server Debian 12.
- Un utilizator non-root cu privilegii de administrator.
Pregătirea sistemului
Înainte de a instala CSF, trebuie să vă asigurați că dependențele sunt instalate. Acestea includ pachete precum Perl și iptables. De asemenea, atunci când rulează un alt firewall, cum ar fi UFW (Uncomplicated Firewall), trebuie să îl dezactivați.
Pentru a începe, executați următoarea comandă pentru a actualiza depozitul Debian.
sudo apt update
După ce repozitoriul este actualizat, instalați următoarele dependențe pentru CSF folosind comanda de mai jos.
sudo apt install libio-socket-inet6-perl libsocket6-perl sendmail dnsutils unzip libio-socket-ssl-perl libcrypt-ssleay-perl git perl iptables libnet-libidn-perl libwww-perl liblwp-protocol-https-perl libgd-graph-perl
Tastați Y și apăsați ENTER pentru a continua.
În cele din urmă, trebuie să dezactivați UFW dacă îl aveți pe serverul Debian. CSF folosește implicit iptables ca firewall și filtru de pachete.
sudo ufw disable
Descărcarea și instalarea CSF-ului
În secțiunea următoare, veți descărca și instala manual CSF (Config Server Firewall) din sursă. Așadar, haideți să începem.
Descărcați codul sursă CSF folosind comanda wget de mai jos. Veți vedea fișierul csf.tgz.
wget http://download.configserver.com/csf.tgz
Acum extrageți fișierul csf.tgz folosind comanda tar de mai jos. Codul sursă CSF va fi disponibil în directorul csf.
sudo tar -xvzf csf.tgz
Apoi, mutați-vă în directorul csf și executați scriptul install.sh pentru a porni instalarea.
cd csf; sh install.sh
Când pornește instalarea, ar trebui să obțineți următoarele:
Când procesul este finalizat, ar trebui să primiți mesajul „Instalare finalizată” .
Acum că CSF este instalat, verificați-l folosind comanda de mai jos.
perl /usr/local/csf/bin/csftest.pl
Asigurați-vă că rezultatul fiecărui test de caracteristici este OK
În cele din urmă, executați următoarea comandă pentru a verifica locația și versiunea fișierului binar CSF.
which csf
csf -v
În următoarea ieșire, puteți vedea că CSF v14.20 este instalat în /usr/sbin/csf .
Configurarea CSF-ului
După ce ați instalat CSF, veți învăța câteva configurații de bază ale CSF (Config Server Firewall). Directorul principal de configurare pentru CSF este directorul /etc/csf , unde veți găsi fișierul principal de configurare CSF, csf.conf .
Folosește următoarea comandă din editorul nano pentru a deschide fișierul de configurare CSF /etc/csf/csf.conf .
sudo nano /etc/csf/csf.conf
Permiteți traficul prin CSF
Găsiți opțiunile TCP_* și UDP_* și adăugați porturile.
# Se permit porturile TCP de intrare TCP_IN = "20,21,22,25,53,853,80,110,143,443,465,587,993,995" # Se permit porturile TCP de ieșire TCP_OUT = "20,21,22,25,53,853,80,110,113,443,587,993,995" # Se permit porturile UDP de intrare UDP_IN = "20,21,53,853,80,443" # Se permit porturile UDP de ieșire # Pentru a permite traceroute-ul de ieșire, adăugați 33434:33523 la această listă UDP_OUT = "20,21,53,853,113,123"![]()
Opțiuni detaliate:
- TCP_IN : permite traficul de intrare către porturile TCP.
- TCP_OUT : permite traficul de ieșire către anumite porturi TCP.
- UDP_IN : permite traficul de intrare către porturile UDP.
- UDP_OUT : permite traficul de ieșire către anumite porturi UDP.
Permite/Refuză cererile Ping sau ICMP
Dacă trebuie neapărat să dezactivați Ping sau ICMP „IN și OUT”, utilizați următoarele opțiuni. „ICMP_IN = 1” înseamnă că ping-ul va fi permis, iar „ICMP_OUT = 1” înseamnă că serverul poate face ping către o altă rețea.
# Se permite PING-ul primit. Dezactivarea PING-ului va întrerupe probabil timpul de funcționare extern # monitorizare ICMP_IN = "1" ... # Se permite PING-ul trimis # # Dacă nu există un motiv anume, această opțiune NU ar trebui dezactivată, deoarece # ar putea întrerupe funcționalitatea sistemului de operare ICMP_OUT = "1"![]()
Protecție Synflood
ACTIVAȚI această opțiune DOAR atunci când este necesar, de exemplu împotriva atacurilor DOS asupra serverului dumneavoastră.
############################################################################### # SECȚIUNE: Setări Port Flood ################################################################################ # Activează protecția împotriva SYN Flood. Această opțiune configurează iptables pentru a oferi o anumită # protecție împotriva încercărilor DOS de trimitere a pachetelor tcp SYN. ... SYNFLOOD = "0" SYNFLOOD_RATE = "100/s" SYNFLOOD_BURST = "150"![]()
Limitarea conexiunilor simultane
Apoi, utilizați opțiunea „CONNLIMIT” pentru a limita conexiunile simultane pentru anumite porturi. Formatul este „ PORT;LIMIT ”, de exemplu, configurația „ 22;5 ” va limita portul SSH la doar 5 conexiuni simultane .
# Protecție la limita conexiunii. Această opțiune configurează iptables pentru a oferi o protecție sporită # împotriva atacurilor DOS împotriva anumitor porturi. Poate fi folosită și ca o # modalitate de a limita pur și simplu utilizarea resurselor în funcție de adresa IP pentru anumite servicii de server. # Notă: Rulați /etc/csf/csftest.pl pentru a verifica dacă această opțiune va funcționa pe # acest server CONNLIMIT = "22;5,21;10"
Dezactivați modul TESTARE și restricționați accesul la Syslog
Acum, dacă ați configurat totul și ați adăugat porturile, schimbați „ TESTING ” la „ 1 ” și restricționați accesul la socket-urile rsyslog cu „ RESTRICT_SYSLOG= “3” ”.
# lfd nu va porni cât timp această opțiune este activată TESTING = "0" ... # 0 = Permite utilizarea și configurarea opțiunilor enumerate mai sus # 1 = Dezactivează toate opțiunile enumerate mai sus și împiedică utilizarea lor # 2 = Dezactivează doar alertele despre această funcție și nu face nimic altceva # 3 = Restricționează accesul syslog/rsyslog la RESTRICT_SYSLOG_GROUP ** RECOMANDAT ** RESTRICT_SYSLOG = "3"
Când totul este gata, salvați fișierul și ieșiți din editor.
Testarea și pornirea serviciului CSF
Acum executați comanda csf de mai jos pentru a verifica configurația. Dacă aveți configurația CSF corectă, veți vedea ieșirea CSF. În schimb, veți vedea eroarea detaliată atunci când configurația este incorectă.
csf -v
Apoi, executați comanda systemctl de mai jos pentru a porni serviciile csf și lfd.
sudo systemctl pornește csf lfd
Odată ce serviciul csf rulează, veți fi deconectat automat de la server. Vă puteți conecta din nou la server, apoi puteți verifica atât serviciul csf, cât și serviciul lfd folosind comanda de mai jos.
sudo systemctl status csf lfd
Puteți vedea că serviciul csf rulează.
De asemenea, puteți vedea că serviciul lfd rulează.
Blocare prin CSF
În acest moment, ați învățat configurația de bază pentru CSF (Config Server Firewall). Acum haideți să aruncăm o privire la blocarea adreselor IP prin CSF.
Blocarea adreselor IP prin intermediul listelor de blocare IP
Deschideți configurația implicită a listelor de blocuri IP /etc/csf/csf.blocklists folosind comanda editorului nano de mai jos.
sudo nano /etc/csf/csf.blocklists
Decomentați următoarele linii pentru a bloca adresele IP din baza de date Spamhaus .
# Lista Spamhaus Don't Route Or Peer List (DROP) # Detalii: http://www.spamhaus.org/drop/ SPAMDROP|86400|0|http://www.spamhaus.org/drop/drop.txt # Lista Spamhaus IPv6 Don't Route Or Peer List (DROPv6) # Detalii: http://www.spamhaus.org/drop/ SPAMDROPV6|86400|0|https://www.spamhaus.org/drop/dropv6.txt # Lista Spamhaus extinsă DROP (EDROP) # Detalii: http://www.spamhaus.org/drop/ SPAMEDROP|86400|0|http://www.spamhaus.org/drop/edrop.txt
Salvați fișierul și ieșiți din editor când ați terminat.
Mai jos sunt câteva opțiuni pentru detalii:
- SPAMDROP : numele blocului care va fi folosit ca nume pentru canalul iptables. Folosiți doar LITERE MARI, cu maximum 25 de caractere.
- 86400 : interval de reîmprospătare pentru descărcarea și reînnoirea adreselor IP ale listelor de blocare.
- MAX : numărul maxim de adrese IP care vor fi utilizate din listă. O valoare de 0 înseamnă că toate adresele IP vor fi incluse.
- URL : URL-ul de descărcare al adreselor IP din listele de blocare.
Blocarea adreselor IP prin GeoIP
O altă metodă de a bloca o adresă IP este prin GeoIP, care vă permite să blocați traficul primit dintr-o anumită țară.
Folosește următoarea comandă din editorul nano pentru a deschide configurația CSF „ /etc/csf/csf.conf ”.
sudo nano /etc/csf/csf.conf
Găsiți parametrii CC_DENY și CC_ALLOW pentru a configura blocarea pe țări prin GeoIP.
# Fiecare opțiune este o listă de CC-uri separate prin virgulă, de exemplu „US,GB,DE” CC_DENY = "RU,CN" CC_ALLOW = "US,GB,DE,NL,SG"
În mod implicit, CSF utilizează baza de date GeoIP din db-ip, ipdeny și iptoasn . Dar o puteți modifica și prin intermediul bazei de date GeoIP MaxMind . Pentru a utiliza baza de date MaxMind , schimbați „ CC_SRC ” la „ 1 ”, apoi introduceți cheia de licență MaxMind în opțiunea „ MM_LICENSE_KEY ”.
# Cheie de licență MaxMind: MM_LICENSE_KEY = "" ... # Setați următoarele la sursa preferată: # # "1" - MaxMind # "2" - db-ip, ipdeny, iptoasn # # Implicit este "2" pentru instalările noi de csf sau setați la "1" pentru a utiliza # bazele de date MaxMind după obținerea unei chei de licență CC_SRC = "1"
Salvați fișierul și ieșiți din editor când ați terminat.
Acum, executați următoarea comandă pentru a verifica configurația CSF. Dacă nu există nicio eroare, ar trebui să obțineți versiunea CSF.
sudo csf -v
Apoi, reporniți ambele servicii, csf și lfd, folosind următoarea comandă.
sudo csf -ra
Ar trebui să vedeți o ieșire ca următoarea:
Pentru a vă asigura că atât csf, cât și lfs rulează, utilizați următoarea comandă pentru a verifica ambele servicii.
sudo systemctl status csf lfd
Activează interfața web CSF
În secțiunea următoare, veți învăța cum să activați interfața web CSF pentru monitorizare prin intermediul unui browser web.
Deschideți configurația CSF folosind următorul editor nano.
sudo nano /etc/csf/csf.conf
Schimbați opțiunea „ UI ” la „ 1 ” și activați interfața web CSF. Apoi, ajustați UI_PORT, UI_IP, UI_USER și UI_PASS cu datele dvs.
# # 1 pentru activare, 0 pentru dezactivare UI = "1" ... # NU activați accesul la acest port în TCP_IN, ci permiteți accesul doar la IP-uri de încredere # utilizând Filtre avansate de permisiune (consultați readme.txt) UI_PORT = "1048" ... # Dacă serverul este configurat pentru IPv6, dar adresa IP la care se face legătura este IPv4, atunci # adresa IP TREBUIE să utilizeze reprezentarea IPv6. De exemplu, 1.2.3.4 trebuie să utilizeze # ::ffff:1.2.3.4 # # Lăsați necompletat pentru a vă conecta la toate adresele IP de pe server UI_IP = "127.0.0.1" ... # Acesta ar trebui să fie un nume de utilizator securizat, greu de ghicit # # Acesta trebuie modificat față de valoarea implicită UI_USER = "alice" ... # numere și caractere non-alfanumerice # # Acesta trebuie modificat față de valoarea implicită UI_PASS = "passw0rd"
Salvați fișierul și ieșiți din editor când ați terminat.
Acum găsiți adresa IP publică folosind comanda de mai jos.
curl https://ipinfo.io/
Adăugați adresa IP la configurațiile „ /etc/csf/csf.allow ” și „ /etc/csf/ui/ui.allow ”. Aceasta va include adresa IP publică pe lista albă și vă va permite accesul la interfața web CSF și la server.
# IP unic 192.168.5.1 # Subrețea 192.168.5.0/24
După aceea, executați comanda de mai jos pentru a verifica configurația CSF și a reporni ambele servicii, csf și lfd.
sudo csf -v sudo csf -ra
Apoi, verificați lista adreselor IP de pe lista albă de pe CSF folosind comanda de mai jos. Găsiți lanțul iptables ALLOWIN și ALLOWOUT și ar trebui să vedeți adresele IP de pe lista albă.
sudo csf -l
Acum deschideți browserul web și accesați adresa IP a serverului, urmată de portul interfeței web CSF (de exemplu: https://192.168.5.15:1048). Dacă configurarea a avut succes, ar trebui să vedeți pagina de conectare CSF.
Introduceți numele de utilizator și parola de administrator, apoi faceți clic pe ENTER .
Ar trebui să vedeți tabloul de bord CSF astfel:
[mai mult...]Cum eliminam complet Microsoft Edge
Fie ca suntem deranjati de Microsoft Edge, fie ca ne-am hotarat sa folosim un alt browser pentru navigarea pe internet sau intampinam incompatibilitati software, exista momente cand dorinta de a-l elimina rapid poate fi o salvare.
Edge Remover, asa cum sugereaza si numele sau, a fost conceput pentru a face un singur lucru, si numai un singur lucru: dezinstaleaza Microsoft Edge din sistem. Edge Remover simplifica procesul de eliminare a Microsoft Edge Browser si WebView2 oferind doua optiuni: eliminarea Edge Browser impreuna cu WebView2 sau eliminarea doar a Edge Browser. Aplicatia nu are o interfata grafica si prezinta in schimb o singura fereastra pop-up cu optiunile disponibile. Dupa ce selectam o optiune, aplicatia executa imediat sarcina.
[mai mult...]RFID Door Lock with Arduino
In this detailed guide, you’ll learn how to build an RFID door lock system using an Arduino Uno and an MFRC522 RFID reader. The system reads RFID cards or keyfobs, checks authorization, and controls a solenoid lock or servo latch to grant access. It’s perfect for home automation, maker projects, or educational demonstrations.
Solenoid Lock Wiring
Arduino D7 → Gate of MOSFET (via 100Ω resistor)
MOSFET Source → GND (common)
MOSFET Drain → Solenoid negative terminal
Solenoid positive → +12V
12V supply GND → Arduino GND
Flyback diode across solenoid (1N4007, cathode to +12V)
Optional Servo Connection
Servo Signal → D7 (PWM)
Servo V+ → 5V external supply
Servo GND → Common GND
Arduino Code — Basic Version
This version uses a hard-coded list of authorized RFID tags.
/* RFID Door Lock - Basic Version */
#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>
#define RST_PIN 9
#define SDA_PIN 10
MFRC522 rfid(SDA_PIN, RST_PIN);
#define ACTUATOR_TYPE 0 // 0=Solenoid/Relay, 1=Servo
const int RELAY_PIN = 7;
const int LED_PIN = 4;
const int BUZZER_PIN = 5;
const int SERVO_PIN = 7;
const unsigned long UNLOCK_MS = 3000;
Servo lockServo;
void setup() {
Serial.begin(115200);
SPI.begin();
rfid.PCD_Init();
pinMode(LED_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
if (ACTUATOR_TYPE == 0) {
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
} else {
lockServo.attach(SERVO_PIN);
lockServo.write(0);
}
Serial.println("RFID door lock ready");
}
// Replace these with your own card UIDs
byte allowedUIDs[][4] = {
{0xDE, 0xAD, 0xBE, 0xEF},
{0x11, 0x22, 0x33, 0x44}
};
const int allowedCount = sizeof(allowedUIDs)/4;
bool uidAllowed(byte *uid, byte uidSize) {
if (uidSize != 4) return false;
for (int i=0;i<allowedCount;i++) {
bool match = true;
for (int j=0;j<4;j++) if (allowedUIDs[i][j] != uid[j]) { match = false; break; }
if (match) return true;
}
return false;
}
void unlockAction() {
Serial.println("UNLOCK!");
digitalWrite(LED_PIN, HIGH);
tone(BUZZER_PIN, 1000, 150);
if (ACTUATOR_TYPE == 0) {
digitalWrite(RELAY_PIN, HIGH);
delay(UNLOCK_MS);
digitalWrite(RELAY_PIN, LOW);
} else {
lockServo.write(90);
delay(UNLOCK_MS);
lockServo.write(0);
}
digitalWrite(LED_PIN, LOW);
}
void loop() {
if (!rfid.PICC_IsNewCardPresent()) return;
if (!rfid.PICC_ReadCardSerial()) return;
Serial.print("Card UID:");
for (byte i=0;i<rfid.uid.size;i++) {
Serial.print(" ");
Serial.print(rfid.uid.uidByte[i], HEX);
}
Serial.println();
if (uidAllowed(rfid.uid.uidByte, rfid.uid.size)) {
Serial.println("Access granted");
unlockAction();
} else {
Serial.println("Access denied");
for (int i=0;i<2;i++) {
tone(BUZZER_PIN, 600, 150);
digitalWrite(LED_PIN, HIGH);
delay(200);
digitalWrite(LED_PIN, LOW);
delay(100);
}
}
rfid.PICC_HaltA();
rfid.PCD_StopCrypto1();
}
Advanced Version — Store Tags in EEPROM
This version allows adding and removing authorized cards dynamically through the Serial Monitor.
/* RFID Door Lock - EEPROM Version */
#include <SPI.h>
#include <MFRC522.h>
#include <EEPROM.h>
#define RST_PIN 9
#define SDA_PIN 10
MFRC522 rfid(SDA_PIN, RST_PIN);
#define RELAY_PIN 7
#define LED_PIN 4
#define BUZZER_PIN 5
#define UNLOCK_MS 3000
#define MAX_TAGS 20
#define UID_SIZE 4
#define EEPROM_START 0
void setup() {
Serial.begin(115200);
SPI.begin();
rfid.PCD_Init();
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
pinMode(LED_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
Serial.println("RFID lock with EEPROM ready");
}
/* Helper functions omitted for brevity in this preview — see full code in guide */
Serial commands:
l— List stored tagsa— Add a new tag (scan after command)r— Remove a tagc— Clear all stored tags
Power Considerations
- Use a separate 12V supply for the solenoid; common the grounds.
- Add a large capacitor (470µF–2200µF) across the solenoid supply.
- Always include a flyback diode to protect electronics.
- If using a servo, power it from an external 5V supply.
Mechanical Installation
- Ensure alignment between lock and strike plate.
- Provide a manual override or emergency key.
- Mount RFID reader within 5–10 cm of tag presentation area.
- Keep metal objects away from the RC522 antenna.
Testing Steps
- Upload code and open Serial Monitor (115200 baud).
- Scan a card — its UID should appear.
- Add card to allowed list or EEPROM memory.
- Test actuator operation and timing.
- Confirm power supply stability under load.
Troubleshooting
| Issue | Possible Cause | Fix |
|---|---|---|
| No response from reader | Wrong wiring or 5V used | Use 3.3V and correct SPI pins |
| Actuator not moving | Power supply too weak or wrong driver | Use proper MOSFET/relay and check GND |
| UIDs print gibberish | Wrong Serial baud rate | Match Serial.begin(115200) |
| Unstable lock | Power noise | Add capacitor or separate supply |
Security Enhancements
- Use MIFARE DESFire or NTAG cards for better encryption.
- Add a keypad for two-factor access (RFID + PIN).
- Implement attempt-limit lockout for brute-force protection.
- Use metal enclosure and tamper switch for extra security.
Optional Upgrades
- OLED/LCD display for user feedback
- Wi-Fi / MQTT integration (ESP8266 or ESP32)
- RTC + SD card logging for audit trail
- Battery backup for power loss protection
- Cloud dashboard or mobile control app.













