Selle lihtsa skripti abil saate ise luua iptablesiga tulemüüri

Mõtlesin mõnda aega kahele asjale, mis puudutavad iptablesi: enamik neist, kes neid õpetusi otsivad, on algajad ja teiseks otsivad paljud juba midagi üsna lihtsat ja juba välja töötatud.

See näide on mõeldud veebiserveri jaoks, kuid saate hõlpsalt lisada rohkem reegleid ja kohandada seda vastavalt oma vajadustele.

Kui näete oma ip-de jaoks "x" muutust


#!/bin/bash

# Puhastame iptablesi tabeleid -F iptables -X # Puhastame NAT iptables -t nat -F iptables -t nat -X # mangle tabelit näiteks PPPoE, PPP ja ATM iptables -t mangle -F iptables -t mangle -X # Poliitikad Ma arvan, et see on parim viis algajatele ja # pole ikka veel halb, ma selgitan väljundit (väljundit), sest nad on väljuvad ühendused #, sisend loobume kõigest ja ükski server ei tohiks edastada. iptables -P INPUT DROP iptables -P VÄLJUND VÕTAKE vastu iptables -P FORWARD DROP #Intraneti LAN-sisevõrk = eth0 #Extranet wan-ekstranet = eth1 # Hoidke olekut. Kõik, mis on juba ühendatud (loodud), jääb nii: iptables -A INPUT -m state - state ESTABLISHED, RELATED -j ACCEPT # Loop device. iptables -A INPUT -i lo -j ACCEPT # http, https, me ei määra liidest, sest # me tahame, et see oleks kõigi iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp - dport 443 -j ACCEPT # ssh ainult sisemiselt ja sellest ip-i iptablettide vahemikust -A INPUT -p tcp -s 192.168.xx / 24 -i $ sisevõrk --port 7659 -j ACCEPT # seire näiteks juhul, kui neil on zabbix või mõni muu snmp-teenuse iptables -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --port 10050 -j ACCEPT # icmp, pingige, see on teie otsustada iptables -A INPUT -p icmp -s 192.168. xx / 24 - i $ intranet -j ACCEPT #mysql postgresiga on port 5432 iptables -A INPUT -p tcp -s 192.168.xx --port 3306 -i $ intranet -j ACCEPT #sendmail bueeeh, kui soovite mõnda kirja saata #iptables -A VÄLJU -p tcp --port 25 -j VASTU # SPOOFINGU VÄHENDAMINE 09 # SERVER_IP = "07.xxx" # serveri IP - teie serveri päris wan ip LAN_RANGE = "2014.xx / 190 "# teie võrgu LAN-i vahemik või vlan # IP-d, mis ei tohiks kunagi siseneda ekstranetti,on kasutada natuke # loogikat, kui meil on puhtalt WAN-liides, see ei tohiks kunagi selle liidese kaudu sisestada # LAN-tüüpi liiklust SPOOF_IPS = "192.168/21 0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0 .12 / 192.168.0.0 "# Vaiketoiming - sooritatakse siis, kui mis tahes reegel vastab ACTION =" DROP "# Paketid minu serveri sama ip-ga läbi wan iptables -A INPUT -i $ extranet -s $ SERVER_IP -j $ ACTION # iptables -A VÄLJUND -o $ extranet -s $ SERVER_IP -j $ ACTION # Paketid, mille LAN-vahemik on langenud, panin selle niimoodi, kui teil on # mõnda konkreetset võrku, kuid see on üleliigne, kuna järgmine # reegel on sees silmus "jaoks" iptables -A SISEND -i $ ekstranet -s $ LAN_RANGE -j $ ACTION iptables -A VÄLJUND -o $ extranet -s $ LAN_RANGE -j $ ACTION ## Kõiki SPOOF-i võrke pole wan ip jaoks lubanud $ SPOOF_IPS teevad iptables -A SISEND -i $ ekstranet -s $ ip -j $ ACTION iptables -A VÄLJUND -o $ extranet -s $ ip -j $ ACTION valmis

Nagu alati, ootan teie kommentaare, olge siin blogis kursis, aitäh


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.

  1.   HO2Gi DIJO

    See aitab mul edasi õppida natuke rohkem tänu tänu kopeeritud.

    1.    brodydalle DIJO

      olete teretulnud, hea meel olla abiks

  2.   Xavier DIJO

    Mul on väga kahju, kuid mul on kaks küsimust (ja üks kingituseks 😉):

    Kas jõuaksite selle konfiguratsiooniga Apache'i käitama ja sulgege ülejäänud, välja arvatud SSH?

    #Puhastame lauad
    iptables-F
    iptables-X

    Puhastame NATi

    iptables -t nat -F
    iptables -t nat -X

    iptables -A SISEND -p tcp –port 80 -j VASTU

    ssh ainult sisemiselt ja sellest IP-valikust

    iptables -A SISEND -p tcp -s 192.168.xx / 24 -i $ sisevõrk –port 7659 -j ACCEPT

    Teine küsimus: kas selles näites on SSH-s kasutatav port 7659?

    Ja kolmas ja viimane: millisesse faili tuleks see konfiguratsioon salvestada?

    Suur aitäh õpetuse eest, on kahju, et olete nii algaja ja ei saa seda hästi ära kasutada.

    1.    brodydalle DIJO

      see on reegel, mida vajate apache'i http-i jaoks
      iptables -A SISEND -p tcp –port 80 -j VASTU

      kuid peate ka deklareerima loobumise vaikepoliitika (see on skriptis)
      Iptable -P sisendi langus
      iptables -P VÄLJUND aktsepteerib
      iptables -P EDASI DROP

      ja seda seetõttu, et kui olete kaugel, viskab see teid minema.
      iptables -A INPUT -m olek – riik on loodud, SEOTUD -j VÕTTA

      kui näites on selle ssh-i port 7659, on see vaikimisi 22, kuigi soovitan muuta pordiks "pole teada"
      mees, keda ma ei tea, nagu soovite ... tulemüür.sh ja panite selle rc.local'i (sh tulemüür.sh), nii et see töötab automaatselt, sõltub see, mis operatsioonisüsteem teil on, on faile, kuhu saate reeglid otse panna.

  3.   jge DIJO

    Hei, teie skript on seda analüüsides väga hea ... Kas teate, kuidas saaksin tagasi lükata kõik minu kasutajate taotlused konkreetsele veebisaidile? kuid sellel veebisaidil on palju servereid ...

    1.    brodydalle DIJO

      Soovitan muid võimalusi:
      1) Võite luua oma DNS-is võltstsooni ...
      2) Võite asetada puhverserveri ACL-iga
      pattude embargo
      Iptable'i jaoks võib see meeldida ... see pole alati parim variant (on rohkem võimalusi)
      iptables -A INPUT -s blogi.desdelinux.ne -j TILK
      iptables -A OUTPUT -d ajaveeb.desdelinux.net -j DROP

      Öelge mulle, kas see töötas

  4.   Xavier DIJO

    Aitäh vastuse eest, kõik sai selgeks. Küsisin sadama kohta, sest olin üllatunud, kui kasutasin 7659, kuna erasadamad algavad 49152-st ja see võib mõnda teenust või midagi sellist häirida.
    Jällegi aitäh kõige eest, see on tore!

    Tervitused.

  5.   sic DIJO

    BrodyDalle, kuidas ma saan sinuga ühendust võtta? Väga huvitav teie stsenaarium.

  6.   Carlos DIJO

    Eelmine rida "iptables -A VÄLJUND -o $ extranet -s $ ip -j $ ACTION" on mõeldud selleks, et takistada teie enda masina võltsimist? Või on võimalik, et siseneb mõni mürgitatud pakett ja see võib koos selle mürgitatud allikaga lahkuda ja seetõttu on reegel ka OUTPUT-i lisatud?
    Suur tänu selgituse eest !!!

  7.   Fran DIJO

    see on minu enda iptablesi skript, see on väga täielik:

    # franes.iptables.airy
    # doc.iptables.airoso: iptables pärandile ja nft-le
    #
    # tulemüüri porti
    ###############################
    #! / bin / bash
    #
    # tühjendage ekraan
    ################################/etc/f-iptables/default.cfg ||||| algus
    selge
    # jätke tühi rida
    miss
    eksport jah = »» ei = »kaja ära»
    # muutujat, mida saate juurdepääsu võimaldamiseks muuta
    ####################### muutujad, mida saab modifitseerida $ jah või $ no abil
    eksport hayexcepciones = »$ ei»
    # on erandeid: $ yes, et lubada erakordseid hoste, ja $ no, et keelata
    heina eksportimine = »$ ei»
    # heina heitmine: $ jah, et lubada kolmanda osapoole pingutusi, ja $ ei, et keelduda
    eksportida heinaperverit = »$ ei»
    # haylogeosserver: $ jah, et saaksite TCP sisse logida $ ei, et TCP ei saaks sisse logida
    ######
    ####################### muutujad "," või vahemike ":" muutmiseks.
    ekspordi erandid = »baldras.wesnoth.org»
    # erandit lubavad tulemüürist ühe või mitu hosti või pole väärtust
    ekspordi logiserver = visake, ipp, dict, ssh
    # TCP-serveri porti, mis logitakse pakettide saabumisel
    ekspordi redserver = 0/0
    # redserver: serveripordide võrk on eelistatavam kohalik võrk või mitu ips
    ekspordi klient punane = 0/0
    #clientnet: kliendipordide võrk, mida eelistatakse kõigile võrkudele
    eksportida servidortcp = ära viskama, ipp, dict, 6771
    # servidortcp: määratud TCP-serveri pordid
    ekspordi serverudp = visake ära
    #udpserver: määratud udp-serveri pordid
    eksport klientudp = domeen, bootpc, alglaadimised, ntp, 20000: 45000
    #udp klient: määratud udp kliendi pordid
    eksport klienttcp = domeen, http, https, ipp, git, dict, 14999: 15002
    # tcp klient: määratud tcp kliendi pordid
    ############################### lõpp /etc/f-iptables/default.cfg |||||
    ################################# muutujate lõpp muutmiseks
    ekspordi tulemüür = muutujad $ 1 = $ 2
    kui ["$ muutujad" = "$ NULL"]; siis allikas /etc/f-iptables/default.cfg;
    else source / etc / f-iptables / $ 2; fi
    ################################## või kirjutate muutujad üle .cfg-failiga
    ####################################################### ################################################
    ekspordi tulemüür = $ 1 ekspordi muutujad = $ 2
    ############################################## automaatsed süsteemimuutujad
    kui ["$ tulemüür" = "lahti ühendatud"]; siis kaja TULEMÜÜR lahtiühendatud;
    eksport aktiveerib serveri = »$ no» activateclient = »$ no» märg = »$ ei»;
    elif ["$ tulemüür" = "klient"]; siis kajake tulemüüri klient;
    eksport aktiveerib serveri = »$ no» activateclient = »» märg = »$ ei»;
    elif ["$ tulemüür" = "server"]; siis kaja tulemüüri server;
    eksport aktiveerib serveri = »» activateclient = »$ no» märg = »$ ei»;
    elif ["$ tulemüür" = "klient ja server"]; siis kajake tulemüüri klient ja server;
    eksport aktiveeri server = »»; ekspordi aktiveeriv klient = »»; eksport märg = »$ ei»;
    elif ["$ tulemüür" = "lubav"]; siis kaja LUBATAV TULETULE;
    eksport aktiveerib serveri = »$ no» activateclient = »$ no» märg = »»;
    teine
    $ check sudo echo iptables-legacy:
    $ check sudo iptables-legacy -v -L INPUT
    $ check sudo iptables-legacy -v -L VÄLJUND
    $ check sudo echo iptables-nft:
    $ check sudo iptables-nft -v -L SISEND
    $ check sudo iptables-nft -v -L VÄLJUND
    kaja _____parameetrid____ $ 0 $ 1 $ 2
    echo "ilma parameetriteta on IPTV-de loend."
    echo "Esimene parameeter (iptablesi lubamine): lahti ühendatud või klient või server või klient ja server või lubav."
    echo "Teine parameeter: (valikuline): fail default.cfg valib /etc/f-iptables/default.cfg"
    echo "Muutuja seaded:" $ (ls / etc / f-iptables /)
    väljumine 0; fi
    #################
    miss
    echo Viskab $ 0 ühenduse katkestamata või kliendi või serveri või kliendi ja serveri või lubavad või muutujad või ilma parameetrite kasutamiseta iptables.
    kaja Faili $ 0 sees on mõned muudetavad muutujad.
    ################################### ülaltoodud muutujad on aktiveeritud
    ####################################
    kaja määrates iptables muutujad
    kajaga aktiveeritud muutujad
    miss
    ############################# iptables reeglid
    kaja iptables-legacy seadistamine
    sudo / usr / sbin / iptables-legacy -t filter -F
    sudo / usr / sbin / iptables-legacy -t nat -F
    sudo / usr / sbin / iptables-legacy -t mangle -F
    sudo / usr / sbin / ip6tables-legacy -t filter -F
    sudo / usr / sbin / ip6tables-legacy -t nat -F
    sudo / usr / sbin / ip6tables-legacy -t mangle -F
    sudo / usr / sbin / ip6tables-legacy -A SISEND -j DROP
    sudo / usr / sbin / ip6tables-legacy -A VÄLJUND -j DROP
    sudo / usr / sbin / ip6tables-legacy -EEDASI -j DROP
    sudo / usr / sbin / iptables-legacy -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT> / dev / null
    $ haylogserver sudo / usr / sbin / iptables-legacy -A INPUT -p tcp -m multiport –dports $ logserver -j LOG>> dev / null
    $ hayeexceptions sudo / usr / sbin / iptables-legacy -A INPUT -s $ erandid -j ACCEPT> / dev / null
    $ activ server sudo / usr / sbin / iptables-legacy -A INPUT -p udp -m multiport –dports $ serverudp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
    $ aktiveeri server sudo / usr / sbin / iptables-legacy -A INPUT -p tcp -m multiport –dports $ serverrtcp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
    $ activateclient sudo / usr / sbin / iptables-legacy -A INPUT -p udp -m multiport –sports $ clientudp -m state –riik on loodud -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
    $ activateclient sudo / usr / sbin / iptables-legacy -A INPUT -p tcp -m multiport –sports $ clienttcp -m state - riik on loodud -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
    $ hayping sudo / usr / sbin / iptables-legacy -A INPUT -p icmp –icmp-tüüpi kaja-vastus -j ACCEPT> / dev / null
    sudo / usr / sbin / iptables-legacy -A SISEND -j DROP> / dev / null
    sudo / usr / sbin / iptables-legacy -A VÄLJUND -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT> / dev / null
    $ hayexceptions sudo / usr / sbin / iptables-legacy -A VÄLJUND -d $ erandid -j ACCEPT> / dev / null
    $ aktiviseeri sudoserver / usr / sbin / iptables-legacy -A VÄLJUND -p udp -m multiport –sport $ serverudp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
    $ aktiveeri server sudo / usr / sbin / iptables-legacy -A VÄLJUND -p tcp -m multiport –sport $ serverrtcp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
    $ activateclient sudo / usr / sbin / iptables-legacy -A VÄLJUND -p udp -m multiport –dports $ clientudp -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
    $ activateclient sudo / usr / sbin / iptables-legacy -A VÄLJUND -p tcp -m multiport –dports $ clienttcp -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
    $ hayping sudo / usr / sbin / iptables-legacy -A VÄLJUND -p icmp –icmp-tüüpi echo-request -j ACCEPT> / dev / null
    sudo / usr / sbin / iptables-legacy -A VÄLJUND -j DROP
    sudo / usr / sbin / iptables-legacy-EDASI -j DROP
    echo iptables-legacy on lubatud
    miss
    kaja iptables-nft seadistamine
    sudo / usr / sbin / iptables-nft -t filter -F
    sudo / usr / sbin / iptables-nft -t nat -F
    sudo / usr / sbin / iptables-nft -t mangle -F
    sudo / usr / sbin / ip6tables-nft -t filter -F
    sudo / usr / sbin / ip6tables-nft -t nat -F
    sudo / usr / sbin / ip6tables-nft -t mangle -F
    sudo / usr / sbin / ip6tables-nft -A SISEND -j DROP
    sudo / usr / sbin / ip6tables-nft -A VÄLJUND -j DROP
    sudo / usr / sbin / ip6tables-nft -A EDASI -j DROP
    sudo / usr / sbin / iptables-nft -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT> / dev / null
    $ haylogserver sudo / usr / sbin / iptables-nft -A INPUT -p tcp -m multiport –dports $ logserver -j LOG>> dev / null
    $ hayeexceptions sudo / usr / sbin / iptables-nft -A INPUT -s $ erandid -j ACCEPT> / dev / null
    $ activ server sudo / usr / sbin / iptables-nft -A INPUT -p udp -m multiport –dports $ serverudp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
    $ aktiveeri server sudo / usr / sbin / iptables-nft -A INPUT -p tcp -m multiport –dports $ serverrtcp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
    $ activateclient sudo / usr / sbin / iptables-nft -A INPUT -p udp -m multiport –sport $ clientudp -m state –riik on loodud -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
    $ activateclient sudo / usr / sbin / iptables-nft -A INPUT -p tcp -m multiport –sports $ clienttcp -m state - riik on loodud -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
    $ hayping sudo / usr / sbin / iptables-nft -A INPUT -p icmp –icmp-tüüpi kaja-vastus -j ACCEPT> / dev / null
    sudo / usr / sbin / iptables-nft -A SISEND -j DROP> / dev / null
    sudo / usr / sbin / iptables-nft -A VÄLJUND -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT> / dev / null
    $ hayeexceptions sudo / usr / sbin / iptables-nft -A VÄLJUND -d $ erandid -j ACCEPT> / dev / null
    $ aktiveeri server sudo / usr / sbin / iptables-nft -A VÄLJUND -p udp -m multiport –sport $ serverudp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
    $ aktiveeri server sudo / usr / sbin / iptables-nft -A VÄLJUND -p tcp -m multiport –sport $ serverrtcp -s $ redserver -d $ redserver -j ACCEPT> / dev / null
    $ enable klient sudo / usr / sbin / iptables-nft -A VÄLJUND -p udp -m multiport –dports $ clientudp -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
    $ activateclient sudo / usr / sbin / iptables-nft -A VÄLJUND -p tcp -m multiport –dports $ clienttcp -s $ clientnet -d $ clientnet -j ACCEPT> / dev / null
    $ hayping sudo / usr / sbin / iptables-nft -A OUTPUT -p icmp –icmp-tüüpi echo-request -j ACCEPT> / dev / null
    sudo / usr / sbin / iptables-nft -A VÄLJUND -j DROP
    sudo / usr / sbin / iptables-nft -A EDASI -j DROP
    echo iptables-nft on lubatud
    miss
    $ wet sudo / usr / sbin / iptables-legacy -F> / dev / null
    $ wet sudo / usr / sbin / iptables-legacy -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT> / dev / null
    $ wet sudo / usr / sbin / iptables-legacy -A INPUT -m olek –riik loodud -j ACCEPT> / dev / null
    $ wet sudo / usr / sbin / iptables-legacy -A INPUT -j DROP> / dev / null
    $ wet sudo / usr / sbin / iptables-legacy -A VÄLJUND -j ACCEPT> / dev / null
    $ wet sudo / usr / sbin / iptables-legacy -A EDASI -j DROP> / dev / null
    $ wet sudo / usr / sbin / iptables-nft -F> / dev / null
    $ wet sudo / usr / sbin / iptables-nft -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT> / dev / null
    $ wet sudo / usr / sbin / iptables-nft -A INPUT -m olek –riik loodud -j ACCEPT> / dev / null
    $ wet sudo / usr / sbin / iptables-nft -A SISEND -J DROP> / dev / null
    $ wet sudo / usr / sbin / iptables-nft -A VÄLJUND -J ACCEPT> / dev / null
    $ wet sudo / usr / sbin / iptables-nft -A EDASI -j DROP> / dev / null
    ##############################
    kaja olete visanud $ 0 $ 1 $ 2
    # väljub skriptist
    väljumine 0

  8.   Louis Duran DIJO

    Kuidas ma saaksin reegli seada, kui see tulemüür kasutaks seda minu lüüsi jaoks ja sellel oleks kalmaar LAN-is ???