Creëer uw eigen firewall met iptables met behulp van dit eenvoudige script deel 2

Firewall_ (netwerken)

Hallo allemaal, vandaag breng ik je een tweede deel van deze serie tutorials over firewall met iptables, heel eenvoudig zodat je kunt kopiëren en plakken, ik denk dat dit aan het eind van de dag is waar alle beginners naar op zoek zijn of zelfs het meest ervaren, waarom we het wiel 100 keer opnieuw moeten uitvinden, toch?

Deze keer vertel ik hen om te proberen zich te concentreren op het zeer specifieke geval of we willen dat onze firewall veel agressiever is met een OUTPUT DROP-beleid. Dit bericht is ook op verzoek van een lezer van deze pagina en mijn bericht. (In mijn hoofd Wiiiiiiiiiiiiii)

Laten we het even hebben over de 'voor- en nadelen' van het instellen van Output Drop-beleid, waarvan ik je kan vertellen dat het het werk veel vervelend en arbeidsintensiever maakt, maar het voordeel is dat je op netwerkniveau beveiliging hebt dan als je gaat zitten. Om het beleid goed te bedenken, ontwerpen en plannen, heb je een veel veiligere server.

Om niet te dwalen of van het onderwerp af te komen, ga ik je snel uitleggen met een voorbeeld hoe min of meer je regels zouden moeten zijn

iptables -A OUTPUT -o eth0 -p tcp –sport 80 -m state –state GEVESTIGD -j ACCEPT
-A omdat we de regel hebben toegevoegd
-o verwijst naar uitgaand verkeer, dan wordt de interface geplaatst als deze niet is gespecificeerd omdat deze overeenkomt met alle.
-sport haven van herkomst, speelt een belangrijke rol omdat we in de meeste gevallen niet weten vanaf welke poort ze het verzoek gaan doen, zo ja, dan kunnen we dport gebruiken
- Haven bestemmingspoort, wanneer we vooraf specifiek weten dat de uitgaande verbinding alleen naar een specifieke poort moet gaan. Het moet voor iets heel specifieks zijn, zoals bijvoorbeeld een externe mysql-server.
-m staat - staat GEVESTIGD Dit is al een sieraad om de reeds bestaande verbindingen in stand te houden, we zouden het in een toekomstige post kunnen verdiepen
-d om over de bestemming te spreken, als het zou kunnen worden gespecificeerd, bijvoorbeeld ssh naar een specifieke machine door zijn ip

#!/bin/bash

#We schonen iptables-tabellen -F iptables -X # We schonen NAT iptables -t nat -F iptables -t nat -X # mangle-tabel voor zaken als PPPoE, PPP en ATM iptables -t mangle -F iptables -t mangle -X # Beleid Ik denk dat dit de beste manier is voor beginners en # nog steeds niet slecht, ik zal uitvoer (uitvoer) allemaal uitleggen omdat het uitgaande verbindingen zijn #, invoer verwijderen we alles, en geen enkele server mag doorsturen. iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP #Intranet LAN intranet = eth0 #Extranet wan extranet = eth1 # Staat behouden. Alles wat al is verbonden (tot stand gebracht), laten we het zo achter iptables -A INPUT -m state --state GEVESTIGD, GERELATEERD -j ACCEPT
iptables -A OUTPUT -m state --state GEVESTIGD, GERELATEERD -j ACCEPT
# Loop apparaat. iptables -A INPUT -i lo -j ACCEPT
# Iptables loopback-uitgang -A OUTPUT -o lo -j ACCEPT

# http, https, we specificeren de interface niet omdat # we willen dat het allemaal iptables zijn -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# vertrek
# http, https, we specificeren de interface niet omdat
# we willen dat het voor iedereen is, maar als we de uitvoerpoort specificeren
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT

# ssh alleen intern en van dit bereik van ip's iptables -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --dport 7659 -j ACCEPTEREN
# output # ssh alleen intern en vanuit dit bereik van ip's
iptables -A OUTPUT -p tcp -d 192.168.xx / 24 -o $ intranet --sport 7659 -j ACCEPTEREN
# monitoring bijvoorbeeld als ze zabbix of een andere snmp-service hebben iptables -A INPUT -p tcp -s 192.168.1.1 -i $ intranet --dport 10050 -j ACCEPT
# vertrek
# monitoring bijvoorbeeld als ze zabbix of een andere snmp-service hebben
iptables -A OUTPUT -p tcp -d 192.168.1.1 -o $ intranet --dport 10050 -j ACCEPTEREN

# icmp, ping goed is uw beslissing iptables -A INPUT -p icmp -s 192.168.xx / 24 -i $ intranet -j ACCEPTEREN
# vertrek
# icmp, ping goed is jouw beslissing
iptables -A OUTPUT -p icmp -d 192.168.xx / 24 -o $ intranet -j ACCEPTEREN

#mysql met postgres is poort 5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j ACCEPT
# output - vraag ook gesteld door een gebruiker om een ​​zeer specifieke # regelserver te maken: 192.168.1.2 mysql: 192.168.1.3
#mysql met postgres is poort 5432
iptables -A OUTPUT -p tcp -s 192.168.1.2 -d 192.168.1.3 --dport 3306 -o $ intranet -j ACCEPTEREN

#sendmail bueeeh als je wat mail wilt sturen #iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT # Anti-SPOOFING 09/07/2014 # SERVER_IP = "190.xxx" # server IP - de echte bleke ip van uw LAN_RANGE-server = "192.168.xx / 21" # LAN-bereik van uw netwerk of uw vlan # IP's die nooit het extranet mogen betreden, het is om een ​​beetje # logica te gebruiken als we een puur WAN-interface hebben, het mag nooit voer # verkeer LAN-type in via die interface SPOOF_IPS = "0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16" # Standaardactie - uit te voeren wanneer een regel overeenkomt met ACTION = "DROP" # Pakketten met hetzelfde ip-adres als mijn server via de wan iptables -A INPUT -i $ extranet -s $ SERVER_IP -j $ ACTION
iptables -A OUTPUT -o $ extranet -s $ SERVER_IP -j $ ACTION

# Pakketten met het LAN-bereik voor de wan, ik zeg het zo voor het geval je een bepaald netwerk # hebt, maar dit is overbodig met de volgende # regel binnen de "for" -lus iptables -A INPUT -i $ extranet -s $ LAN_RANGE -j $ ACTIE
iptables -A OUTPUT -o $ extranet -s $ LAN_RANGE -j $ ACTION

## Alle SPOOF-netwerken die niet zijn toegestaan ​​door de wan voor ip in $ SPOOF_IPS doen iptables -A INPUT -i $ extranet -s $ ip -j $ ACTION
iptables -A OUTPUT -o $ extranet -s $ ip -j $ ACTIE
gedaan

In de volgende review zullen we port range doen en ook beleid opstellen, onder andere op naam gerangschikt ... Ik wacht op uw opmerkingen en verzoeken.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.