Linux Firewall (V)
Rejectarea adreselor IP cu probleme …..
Problemele incep in momentul in care aveti o legatura la internet si pentru care aveti alocata o adresa IP routabila pe internet, adresa de IP care poate sa fie alocata de furnizorul de servicii sau apartine organizatiei dumnneavoastra.
In acest moment va trebui sa fin cat mai atenti la natura traficului da date pe interfata externa de conectare. Vor apare multe scanari a acestei adrese de IP, scanari care pot fi voite sau nu dar in mare parte ele sunt voite. Prin acesta scanare se pot afla date despre modul cum este conectat sistemul la reteaua globala de trasmisii date, date care interpretate pot duce la probleme care pot fi create sistemului si care pot duce chiar si la preluarea controlului asupra acestuia de alte persoane decat cele autorizate.
Dorim ca in acet moment sa incercam ca aceste adrese de IP care creaza aceste probleme sa incercam sa le punem intr- o „lista neagra” si care adrese de IP sa nu mai aiba access la sistemul de conectare.
In primul rand ca trebui sa citim anumite date dupa anumite criterii din fisierele de log. Voi lua in considerare fisierul secure care se gaseste in directorul /var/log, unde vom gasi informatii despre aceste scanari si implicit despre operatiile nereusite de accesare a sistemul (acest fisier nu este obligatoriu sa fie secure si in functie de modul cum este setat sistemul dumneavoastra sa fie un alt fisier definit de sistemul de operare sau un fisier stabilit de administratorul sistemului si implicit a sistemului de operare).
Consideram fisierul secure dupa cum am spus si in prima faza ne doare mesajele de „disconnect” pe care sistemul de operare le returneaza (putem lua mai multe criterii in considerare). Ce vom face mai departe…… vom filtra fisierul de secure dupa criteriul „disconnect” ales si vom face cu :
#grep –a disconnect /var/log/secure >> lista1.txt
Fisierul creat astfel lista1.txt va contine doar acele linii unde apare „disconnect”.
Dorim mai departe sa extragem din acest fisier acele informatii care se refera doar la adresa de IP, fisierul contine mai multe informatii in aceasta forma.
#cat lista1.txt | awk ‘{print ” ” $9}’ >> lista2.txt
Fisierul lista2.txt contine informatii legate de adresele de IP, mai precis dupa adresa de IP exista caracterul „:” si care caracter nu il vom putea folosi. Vom elimina acest caracter astfel:
#cat lista2.txt | tr -d “:” >> lista3.txt
Fisierul rezultat lista3.txt contine pe fiecare linie adresele de IP pe care le consideram ca pot crea problemele amintite. Va trebui ca in urmatorul pas sa eliminam acele adrese de IP care se repeta, mai precis toate adresele de IP care le vom intrepreta vor trebuia sa fie unice. Vom realiza urmatoarea operatie:
#sort lista3.txt | uniq > lista_f.txt
In acest moment lista_f.txt contine adresele de IP pe care le vom procesa in pasul urmator.
Ce vom face mai departe ? aceste adrese de IP care le avem stocate in acest fisier vaa trebui sa le aplicam asupra interfetei de retea externe cu ajutorul lui IPtables. Vom face in felul urmator:
for i in $(<bad_host.lst) ; do
iptables -I INPUT -i eth1 -s “$i” -j DROP
done
In comenzile de mai sus eth1 am considerat ca este interfata externa de retea (la fel puteti aplica si pentru interfata interna de retea dar o sa folositi pentru incarcarea acestora adresele de retea interna pe care va trebui sa le filtrati dupa cum am facut mai sus).
Fisierul lista_f.txt este incrcata si citita linie cu linie in comanzile de mai sus din fisierul bad_host.lst care este un link asupra fisierului lista_f.txt .
In acest moment puteti realiza un singur fisier cu comenzile de mai sus si care sa-l puneti sa ruleze in cron pentru avea acest mecanism automatizat.
Comenzi linux (I)
In continuare voi enumera „cateva“ comenzi linux, in ordine alfabetica. Am scris „cateva“ deoarece sunt „suficient“ de multe si o parte din ele poate ca sunt foarte rar folosite sau chiar deloc. Voi incepe cu prezentarea comenzilor in ordine alfabetica si cu cele care sunt cele mai semnificative.
alias – creeaza alias;
adduser – adauga utilizator nou;
apropos – cauta in manualul de comenzi toate intrarile pentru datele cerute;
awk – cauta, inlocuieste text, indexeaza/sorteaza/valideaza baze de date;
bzip – utilitar folosit la compresia sau decompresia datelor (fisiere, directoare);
bzip2 – utilitar folosit la compresia sau decompresia datelor (fisiere, directoare);
break – comanda pentru iesirea din “buclele” for, while sau until;
builtin – rulare shell builtin, pasarea rgumentelor si revenire;
cal – afisare calendar;
case – comanda pentru executia conditionata asupra datelor sau fisierelor;
cat – afisarea continutului fisierelor;
cd – schimbarea directorului current de lucru cu un altul specificat;
cfdisk – utilitar pentru martitionarea diskurilor si manipularea tabelelor acestora;
chgrp – modificarea/schimbarea grupului apartinator;
chmod – nodificarea/schimbarea permisiiolor de access;
chown – schimba proprietarul fisierului si grupului;
chroot – ruleaza o comanda in alta parte decat directorul de root;
clear – sterge terminalul curent in care se lucreaza;
cksum – afiseaza CRC checksum si numarul de byte;
cmp – compara doua fisiere;
comm – compara doua fisiere sortate linie cu linie;
command – ruleaza o comanda, ignora functiile shell;
continue – reia urmatoarea iteratie a unei bucle;
cp – copiaza unul sau mai multe fisiere in alta locatie;
cron – daemon pentru executii programate;
crontab – programeaza o comanda sa fie executata la un moment ulterior;
csplit – imparte un fisier in piese determinate;
cut – divide un fisier in parti separate;
date – arata sau schimba data si timpul;
dc – calculator classic de birou;
dd – dump de date, converteste si copiaza fisierul;
declare – declara variabilele si le va da attribute;
df – afisare spatiu liber pe disk;
diff – afiseaza diferentele dintre doua fisiere;
diff3 – arata diferentele dintre trei fisiere;
dig – DNS lookup;
dir – lista a continutului directorului;
dircolors – modificarea culorilor de afisare;
dirname – converteste o cale complete ca o cale simpla;
dirs – afiseaza o lista a directoarelor amintite;
du – estimare a spatiului utilizat;
echo – afiseaza mesajele pe ecran;
egrep – cauta in fisiere pe linie expresii sau anumite lucruri care se potrivesc;
eject – evacuare a mediilor ne-stationare de lucru;
enable – activeaza sau dezactiveaza comenzi implicite shell;
env – afiseaza vriabilele de mediu;
ethtool – comanda pentru setarea interfetei de retea;
eval – evalueaza mai multe comenzi sau argument;
exec – executa o comanda;
exit – iesire din shell;
expand – converteste spatiile;
export – setare a variabilelor de mediu expr – evaluarea expresiei;
factor – primatarea primului factor;
false – nu exista, returnare de factor non-zero;
fdformat – formate pentru unitate floppy la nivelul cel mai de jos (low level format);
fdisk – utilitar de manipulare a partitiilor linux;
fgrep – cautare in fisiere dupa liniile acestuia a parametrilor ceruti;
find – cautare in structura de fisiere dupa criteriile cerute;
file – determinare a tipului de fisier;
fmt – reformatare a paragrafului de text;
fold – realizeaza textul pentru a fi la o anumita inaltime;
for – extinde civintele si executa comanda;
format – formatare disk sau unitate de banda;
fsck – verifica si repara consistenta sistemului de fisiere;
free – afiseaza pe display memoria utilizata;
function – defineste o functie;
ftp – protocol pentru transfer de fisiere;
gawk – cauta si inlocuieste in text;
grep – cauta in fisier dupa liniile specificate;
getopts – analizeaza pozitia parametrilor;
groups – printare a numelui de grup si a aparatenetilor acestuia;
gzip – compreseaza sau decompreseaza date;
hash – afiseaza pathname pentru argumentul dat;
hashcaracter – comenteaza remarci si indica une anume sunt;
head – afiseaza iesirea din prima parte a fisierului;
history – afiseaza liniile de comanda date in timp;
hostname – afiseaza numele sistemului;
id – afiseaza datele despre utilizator (uid,gid);
if – comanda conditional;
ifconfig – configurare a interfetei (interfetelor) de retea;
import – captura pentru serverul X si salvarea imaginii realizate;
install – copier de fisiere si setarea atributelor;
join – alaturare la linie de comanda;
kill – opreste un process care ruleaza;
less – afiseaza pe display iesirile de comenzi;
let – interpreteaza variabile de shell (aritmetice);
ln – realizare legatura intre fisiere;
local – creare variabile;
locate – localizeaza fisiere;
logname – ne arata numele utilizatorului logat;
logout – iesire din shell;
look – afisare a liniilor de inceput a unui sir de caractere;
lpc – comanda pentru utilizarea imprimantei;
lprint – printeaza un fisier;
lprintd- abandonare a lucrului cu printer;
lprintq – listare a cozii de asteptare pentru printer;
lpr – dezactivare printer (off line);
lprm – sterge fisiere care sunt in coada de asteptare a printerului;
ls – listeaza informatii despre fisiere;
lsof – listeaza fisierele deschise;
make – recompileaza un grup de programe;
mc – manager de fisiere in mod text;
m4 – macro processor;
man – afisare informatii despre o comanda;
mbadblocks – verifica si repara problemele care apar la floppy disk;
mkdir – creeaza un director;
mkfifo – creaza pipe cu numele specificat;
mknod – creaza o lista fifo sau fisiere special;
mkisofs – creaza hybrid pentru sistemul de fisiere;
more – afiseaza mai multe informatii pe ecran;
mount – monteaza un system de fisiere;
mtools – manipulator pentru fisierele MS-Dos;
mv – redenumire sau mutare de fisiere sau directoare;
netstat – informatii despre retea;
nice – setarea prioritatii pentru executarea comenzilor;
nl – numara linii si cuvinte din fisiere;
nohup – ruleaza comanda imuna na hang-ups;
nslookup – interogare pentru numele de server de pe internet;
pathchk – verifica portabilitatea fisierelor;
passwd – modifica parola;
paste – inbina linii;
ping – testeaza conexiunea retelei;
printcap – printeaza capabilitatile bazei de date;
printenv – printeaza variabilele de mediu;
period – stabilirea sistemului operator de virgule;
popd – sterge intraripe in dtiva de directoare;
pr – printeaza fisier;
printf – formatare si printare;
ps – afisare a proceselor care ruleaza;
pushd – salveaza si schimba directorul curent;
pwd – afiseaza directorul de lucru;
quota – arata limitele de utilizare a disckului;
quotacheck – scaneaza sistemul de fisiere pentru a stabili limitele de utilizare;
quotactl – setare a spatiului de utilizare pe disk;
ram – disk ram;
rcp – cipiere a fisierelor pe doua masini;
read – citeste linie de la intrarea standard;
readonly – marcheaza variabile sau functii numai pentru citire;
return – motiv de iesire din functie shell;
rm – sterge fisier;
rmdir – sterge director (doar daca este gol);
rsync – copier fisiere pe o alta masina de la distant;
remsync – sincronizeaza fisiere la distant prin e-mail;
rpm – red hat package manager;
screen – terminalul pentru manager window;
scp – copier securizata;
sleep – intarziere cu timpul specificat;
sdiff – imbina doua fisiere interactive;
sed – editor pentru stream-uri;
select – accepta intrari de la tastatura;
seq – printare secvente numerice;
set – manipuleaza variabile de shell si functii;
shift – deplaseaza pozitia parametrilor;
shopt – optiune shell;
shutdown – oprire sau restartare linux;
ssh – client securizat pentru shell;
strace – vizualizare a semnalelor;
source – rularea comenzii dintr- un fisier;
sort – sorteaza un fisier text;
split – imparte fisier in parti specificate;
su – substituire a utilizatorului;
sum – arata suma de control a fisierului;
symlink – realizeaza (face) un nou nume pentru un fisier;
sync – sincronizeaza datele de pe disk cu memoria;
tac – concateneaza si scrie in fisiere in sens invers;
tail – afisare a ultimelor intrari ale fisierului;
tar – arhivator pentru unitati tape;
tee – redirectare iesire si manipulare a fisierelor;
test – evaluare a expresiilor conditionate;
time – masoara resursele utilizate de programe;
times – printeaza date despre utilizarea programelor, functiilor, etc;
top – listarea proceselor care ruleaza pe system;
touch – creaza/modifica datele de timp ale fisierului;
tr – interpreteaza si/sau sterge caractere;
traceroute – arata o ruta pentru host-ul specificat;
trap – ruleaza o comanda dupa un semnal specificat;
tree – listare a continutului directoarelor a sistemului de fisiere;
true – evaluare a expresiei cu success;
tsort – sortare topologica;
tty – printare a terminalului curent stdin;
type – descriere a comenzii;
ulimit – limitarea resurselor;
umask – crearea de mask pentru fisiere;
uname – printare a informatiilor despre system;
unexpand – realizeaza conversia spatiilor in tabs;
uniq – unicitatea fisierului sau continutuluiacestuia;
units – converteste unitati de masura de la scara la alta;
unset – sterge variabile si functii de nume;
useradd – creare de utilizator nou;
usermod – modificare a datelor pentru utilizator;
users – listare a utilizatorilor active;
uuencode – codare a fisierelor create cu uuencode;
uudecode – operatie inversa uuencode;
umount – de-montare a device-urilor realizate cu comanda mount;
unalias – sterge alias;
unshar – despacheteaza arhive shell;
until – executa comanda;
vi – editor pentru text;
w – printare a unui sumar legat de system, utilizatori, etc;
wall – scrie la toti utilizatorii;
watch – executa un program la o anumita perioada de timp;
wc – printeaza total de byte, cuvinte si linii;
whereis – raport a instantelor unei comenzi;
which – cauta un fisier in directorul utilizatorului;
while – executa comanda;
who – printeaza informatii despre utilizatorii active care sunt logati;
whoami – printare informatii despre utilizator;
wget – copiaza informatii via HTTP, HTTPS, FTP, SFTP; write – trimite mesaj la toti utilizatorii;
X – executie in cadrul systemului X windows;
xfd – afisare a caracterelor X;
xset – setarea preferintelor pentru X;
xterm – emulator pentru terminal in X;
zcat – comanda pentru compresia fisierelor;