Chirurgia spinală minim invazivă
Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical. Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale. www.neurohope.ro |
Configurare firewall cu iptables
Last Updated: Apr 11 2014 22:15, Started by
popescumarinel
, Jan 25 2014 21:22
·
0
#1
Posted 25 January 2014 - 21:22
Salutare.
Am cumparat un domeniu si pana nu demult aveam gazduit siteul pe server-ul cuiva. Mi-am cumparat banda garantat si am instalat CentOS 6.5 pe un PIV cu 2 G de RAM si am instalat si configurat apache, dns, vsftpd, sendmail, mysql si ssh. Totul merge ok dar am selinux pe disable. Incerc sa configurez iptables manual pentru a deschide doar ce am nevoie dar nu ma pricep foarte bine si de aceea va cer sfatul si ajutorul. In primul rand doresc sa precizez urmatoarele: - serevrul linux este si un router pentru o retea locala - doresc sa pot accesa serverele mentionate mai sus din reteaua locala si din exterior - as dori sa accesez din reteaua locala anumite programe aflate pe alte servere care folosesc anumite porturi Astea ar fi cerintele mele am citit pe net destule documentatii si am procedat asa: am creat in /etc/config un fisier bash firewal pe care il accesez in /etc/rc.d/rc.local prin /etc/onfig/firewal 1. este bine cum am procedat? Acest fisier va fi ultimul executat? (in sensul sa nu imi scrie alte reguli dupa apelarea lui) acest fisier contine: (eth0=interfata externa, eth1=interfata actre reteaua locala, ip_fix=ip-ul meu real) Quote
#!/bin/sh #!/bin/bash iptables -F INPUT iptables -F OUTPUT iptables -F FORWARD iptables -F -t nat #dau net in reteaua interna iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source ip_fix iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT #aceasta linie o multiplic pentru 80, 443,25,3306 #pentru SSH (voi folosi un alt port ulterior) iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p icmp -j ACCEPT iptables -A OUTPUT -p icmp -j ACCEPT iptables -A INPUT -p tcp --dport 53 -j ACCEPT iptables -A INPUT -p udp --dport 53 -j ACCEPT iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP echo "1">/proc/sys/net/ipv4/ip_forward 2. am scris ceva gresit mai sus? 3. eu pentru serverul dns (port 53) am folosit atat protocolul tcp cat si udp. Trebuie sa folosesc -p udp si pentru celelalte porturi pe care le foloses, gen: 80, 20, 21, 443, 3306, etc? (eu nuimi dau seama cand sa pun tcp si cand udp sau cand sunt necesare ambele pentru un port) 4. este necesar ca pentru fiecare port sa mai pun si iptables -A OUTPUT -p port -j ACCEPT (nu inteleg pentru ce port este suficient doar INPUT si la care sunt necesare ambele. Din cate stiu eu o comunicare server client este permaneta : clientul cere un pachet, serverul trimite, clientul confirma primirea. In aceste conditii cred ca petru fiecare port trebuie sa am accept si pe OUTPUT. Cum este corect? 5. daca doresc sa mai adaug un port folosit de un program de pe un calc din reteaua locala care acceseaza un alt server (sa zic un yahoo messenger) este corect sa mai pun 2 linii: iptables -A INPUT -p tcp --dport port -j ACCEPT iptables -A OUTPUT -p tcp --dport port -j ACCEPT Poate imi raspundeti punctual la cele 5 nelamuri ale mele. Evident ca voi puncta din nou acolo unde nu sunt lamurit. Va multumesc anticipat pentru raspunsuri si amabilitatea de a incerca sa ma lamuriti (goluri sunt multe dar spre sa ma lamuresc si atunci voi fi multumit) Edited by popescumarinel, 25 January 2014 - 21:35. |
#3
Posted 29 January 2014 - 12:45
Salutare.
Cred ca am pus prea multe intrebari si nu s-a bagat nimeni la un raspuns. Va solicit acum ajutorul concret: Eu pe server am apache, mysql, sendmail si ftp. La apache am deschis portul 80 pe INPUT, pentru ftp am deschis porturile 20 si 21 pentru cateva ip-uri interne si cateva externe. Eu de pe site apelez la un moment dat ftp://domeniu.ro si afisez ce este acolo. Ce regula as putea scrie ca sa poata fi accesat ftp-ul cand este apelat de apache. La fel cum pot face pentru send mail sa permita trimiterea doar acelor mesaje care sunt trimise doar de pe site? Multumesc anticipat. |
#4
Posted 29 January 2014 - 17:49
Revin din nou: cum pot seta in iptables astfel incat serverul sa trimita doar mail-urile care vin de la 127.0.0.1 si la restul sa dea drop.
|
#5
Posted 30 January 2014 - 12:32
popescumarinel, on 25 ianuarie 2014 - 21:22, said:
Astea ar fi cerintele mele am citit pe net destule documentatii si am procedat asa: am creat in /etc/config un fisier bash firewal pe care il accesez in /etc/rc.d/rc.local prin /etc/onfig/firewal popescumarinel, on 25 ianuarie 2014 - 21:22, said:
1. este bine cum am procedat? Acest fisier va fi ultimul executat? (in sensul sa nu imi scrie alte reguli dupa apelarea lui) acest fisier contine: (eth0=interfata externa, eth1=interfata actre reteaua locala, ip_fix=ip-ul meu real) Pe CentOS si alte distributii derivate din Red Hat poti modifica direct /etc/sysconfig/iptables daca nu exista il generezi tu cu comanda iptables-save -c > /etc/sysconfig/iptables care iti salveaza regulile din iptables curente plus counterii in fisierul specificat. La boot / reboot vor fi incarcate regulile din acel fisier, la reboot acel fisier este updatat. popescumarinel, on 25 ianuarie 2014 - 21:22, said:
2. am scris ceva gresit mai sus? 3. eu pentru serverul dns (port 53) am folosit atat protocolul tcp cat si udp. Trebuie sa folosesc -p udp si pentru celelalte porturi pe care le foloses, gen: 80, 20, 21, 443, 3306, etc? (eu nuimi dau seama cand sa pun tcp si cand udp sau cand sunt necesare ambele pentru un port) 4. este necesar ca pentru fiecare port sa mai pun si iptables -A OUTPUT -p port -j ACCEPT (nu inteleg pentru ce port este suficient doar INPUT si la care sunt necesare ambele. Din cate stiu eu o comunicare server client este permaneta : clientul cere un pachet, serverul trimite, clientul confirma primirea. In aceste conditii cred ca petru fiecare port trebuie sa am accept si pe OUTPUT. Cum este corect? 5. daca doresc sa mai adaug un port folosit de un program de pe un calc din reteaua locala care acceseaza un alt server (sa zic un yahoo messenger) este corect sa mai pun 2 linii: iptables -A INPUT -p tcp --dport port -j ACCEPT iptables -A OUTPUT -p tcp --dport port -j ACCEPT 2. Pare okay nu sunt prea atent acum sa zic exact; 3. 80/tcp, 20/tcp, 21/tcp, 443/tcp, 3306/tcp, 53/udp, 53/tcp, asa trebuie daca vrei mai exact cauta in /etc/services parca si de asemenea daca ai nmap instalat ai undeva in /usr un director nmap in care ai un fisier text cu definitiile porturilor cunoscute de exemplu 53/udp named, 53/tcp named, 80/tcp httpd, 22/tcp sshd, etc. 4. Pe INPUT ai deschise porturile necesare daemonilor care ruleaza pe acea masina si care vrei sa fie accesati de afara exemplu ai sshd pornit si vrei sa te conectezi de afara la acea masina prin ssh atunci permiti portul 22/tcp in firewall pe INPUT; OUTPUT este traficul care pleaca de la tine poti sa tai tot traficul cu iptables -P OUTPUT DROP si apoi sa permiti doar destinatii la care vrei sa dai voie adica la ce IPuri te poti conecta de pe acea masina. Cel mai bine lasi ACCEPT pe OUTPUT si pui DROP pe INPUT; 5. Daca lasi pe OUTPUT ACCEPT atunci nu mai trebuie sa adaugi nimic; vad ca pe INPUT ai deja regula iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT este corecta lasa sa treaca traficul legat de conexiunile stabilite de tine. Asta pe scurt, mai era un topic pe aici legat de iptables in care parca am explicat un picut mai detaliat ce fac parametrii iptables si cum sa faci un fw asa de inceput ca mai apoi sa il coafezi dupa nevoi. popescumarinel, on 29 ianuarie 2014 - 12:45, said:
Eu pe server am apache, mysql, sendmail si ftp. La apache am deschis portul 80 pe INPUT, pentru ftp am deschis porturile 20 si 21 pentru cateva ip-uri interne si cateva externe. Eu de pe site apelez la un moment dat ftp://domeniu.ro si afisez ce este acolo. Ce regula as putea scrie ca sa poata fi accesat ftp-ul cand este apelat de apache. Tie iti functioneaza din moment ce dai ftp://domeniu.tld si iti listeaza continutul directorului. popescumarinel, on 29 ianuarie 2014 - 12:45, said:
La fel cum pot face pentru send mail sa permita trimiterea doar acelor mesaje care sunt trimise doar de pe site? popescumarinel, on 29 ianuarie 2014 - 17:49, said:
Revin din nou: cum pot seta in iptables astfel incat serverul sa trimita doar mail-urile care vin de la 127.0.0.1 si la restul sa dea drop. Cele 2 cerinte de mai sus sunt aproximativ identice. Se rezolva din configul sendmail-ului in care specifici ca vrei sa asculte doar pe 127.0.0.1 pe port 25/tcp alte conexiuni pe acel port nu vor exista pentru ca sendmail va asculta doar pe loopback nu si pe alte IPuri. PS: Pentru teste cu daemoni si iptables foloseste cu incredere nmap si telnet. nmap -sS -P0 -PN -sU -p 20,21,22,53,80,110.143.443,3308,8080 127.0.0.1 sau nmap -sS -P0 -PN -sU -p 20,21,22,53,80,110.143.443,3308,8080 $IP_ETH+ unde $IP_ETH+ este un IP de pe interfetele de retea de pe acea masina. nmap iti va spune ce porturi ai deschise si ce protocol folosesc porturile deschise. Comanda de mai sus scaneaza pentru porturi deschise si tcp si udp, scaneaza doar lista de porturi de dupa -p sau poti sa scanezi tot cu -p 1-65535 doar ca dureaza mai mult ca o sa scaneze fiecare port in parte si tcp si udp. Alternativa este: telnet $IP_ETH+ 20 telnet $IP_ETH+ 21 telnet $IP_ETH+ 22 telnet $IP_ETH+ 53 telnet $IP_ETH+ 80 telnet $IP_ETH+ 110 telnet $IP_ETH+ 143 telnet $IP_ETH+ 443 telnet $IP_ETH+ 3308 telnet $IP_ETH+ 8080 Adica telnet ip port daca portul este deschis atunci te vei conecta la acel ip/port altfel conexiunea va fi inchisa. |
#6
Posted 30 January 2014 - 14:37
Multumesc pentru precizari.
Quote
Tie iti functioneaza din moment ce dai ftp://domeniu.tld si iti listeaza continutul directorului. Eu am facut in acest moment sa poata fi accesat doar de la anumite ip-uri dar m-ar interesa ca daca un user sta pe site-ul meu si are pe site un link cu ftp://domeniu.ro sa poata accesa ftp. Daca ar scrie direct in browser, fara sa plece cu cererea de pe site sa nu poata deschide pagina. Ceva cum am la postfix (daca intra pe formularul de pe site poate sa trimita mail oriunde altfel nu Nu stiu daca se poate asa ceva deoarece eu nu inteleg urmatoarele lucruri (nu imi sunt clare) 1.Plecand de la urmatoarele 2 reguli: iptables -A INPUT -p tcp --dport 25 -s 127.0.0.1 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT Daca cineva scrie in browser http://domeniu.ro va accesa apache pe portul 80. Acum daca pe site are un formular de contact [(wordpress, etc) si are configurat pe server postfix cu (inet_interfaces=localhost, adica sa trimita numai mail-urile care vin de la localhost)] si da sent totul se trimite corect. Daca in loc de regula de sus folosesc iptables -A INPUT -p tcp --dport 25 -s ip_extern -j ACCEPT este acelasi lucru? Adica acest 127.0.0.1 este acelasi cu ip-ul de pe eth1 (catre reteaua interna) si ip-ul de pe eth0 care este catre reteaua externa? 2. daca este corect ce am spus mai sus atunci de ce daca dau echo continut | mail -s titlu root@localhost nu il trimite iar pe echo continut | mail -s titlu [email protected] il trimite Precizez ca incerc acest lucru conectat remote pe sistem si OUTPUT are ACCEPT implicit Nu sunt ambele mail-uri plecate de pe localhost? 3. daca am INPUT DROP urmata de reculi cu ACCEPT (se taie tot de la inceput si apoi se lasa cate ceva) este acelasi lucru cu reguli de ACCEPT urmate de INPUT DROP (se lasa cate ceva si pentru cele la care nu s-a dat accept le tai) Sunt doua moduri total diferite dar eu am inteles ca sunt echivalente. Edited by popescumarinel, 30 January 2014 - 14:39. |
#7
Posted 11 April 2014 - 22:15
Quick note: la regulile tale de mai sus, poti sa uiti de vsftpd in passive mode.
Ca si sugestii usor de aplicat: 1) ca sa nu multiplici X linii de netfilter care permit accesul la porturi, "abuzeaza" de match-ul pe porturi multiple, ex: $PATH_TO_IPTABLES -A INPUT -p tcp -m multiport --dport 20:22,80,443,$ALTELE -j ACCEPTO sa-ti faca ruleset-ul mai usor de citit. 2) s-a inventat de ceva vreme o dracie numita "ipset", care nu-i greu de configurat si are sintaxa asemanatoare cu iptables - posibil sa-ti faca viata mai usoara 3) n-ar strica sa intelegi un strop mai mult partea "stateful" din netfilter - te va ajuta sa-ti simplifici destul de mult constructia unui firewall Ca si nota distincta: firewall-ul va lucra pana la layer4 (by default, stiu ca poate duce si l7 inspection), pe partea de security ar mai fi de facut cateva lucruri suplimentare la application level - spânzura de el in continuare un host-based ids/ips (fail2ban, ossec, etc). Par a se intelege destul de usor si cu un ruleset scris ad-labam. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users