Skapa din egen brandvägg med iptables med detta enkla skript del 2

Firewall_ (nätverk)

Hej allihopa, idag ger jag er en andra del av denna serie handledning om brandvägg med iptables, väldigt enkelt så att du kan kopiera och klistra in, jag tror att det i slutet av dagen är vad alla nybörjare letar efter eller till och med de mest erfarna, varför vi måste uppfinna hjulet 100 gånger, eller hur?

Den här gången ber jag dem att försöka fokusera på det mycket specifika fallet om vi vill att vår brandvägg ska vara mycket mer aggressiv med en OUTPUT DROP-policy. Detta inlägg är också på begäran av en läsare av denna sida och mitt inlägg. (Inuti mitt sinne Wiiiiiiiiiiiiii)

Låt oss prata lite om "fördelar och nackdelar" med att etablera Output Drop-policyer, den som jag kan berätta för dig främst är att det gör arbetet mycket mer tråkigt och mödosamt, men fördelen är att du på nätverksnivå kommer att ha säkerhet än om du satte dig ner För att tänka, designa och planera policyerna väl har du en mycket säkrare server.

För att inte vandra eller gå ur ämnet, kommer jag snabbt att förklara för dig med ett exempel hur mer eller mindre dina regler ska vara

iptables -A UTGÅNG -o eth0 -p tcp –sport 80 -m tillstånd –stat ESTABLERAD -j ACCEPT
-A eftersom vi lade till regeln
-o refererar till utgående trafik, sedan placeras gränssnittet om det inte anges eftersom det matchar alla.
-sport ursprungshamn, spelar en viktig roll eftersom vi i de flesta fall inte vet från vilken hamn de kommer att göra begäran, om så skulle kunna använda dport
–Dport destinationsport, när vi specifikt vet i förväg att den utgående anslutningen endast måste gå till en viss port. Det måste vara för något mycket punktligt som till exempel en fjärr mysql-server.
-m tillstånd –stat ESTABLERAD detta är redan en prydnad för att upprätthålla de redan etablerade förbindelserna, vi skulle kunna fördjupa det i en framtida post
-d att tala om destination, om det kunde specificeras, till exempel ssh till en specifik maskin med dess ip

#!/bin/bash

# Vi rengör iptables-tabeller -F iptables -X # Vi rengör NAT iptables -t nat -F iptables -t nat -X # mangelbord för saker som PPPoE, PPP och ATM iptables -t mangle -F iptables -t mangle -X # Policy Jag tror att det här är det bästa sättet för nybörjare och # fortfarande inte dåligt, jag ska förklara output (output) allt eftersom de är utgående anslutningar #, input slänger vi allt och ingen server ska vidarebefordra. iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP #Intranet LAN intranät = eth0 #Extranet wan extranet = eth1 # Behåll tillstånd. Allt som redan är anslutet (etablerat) lämnar vi det så här iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
# Loop-enhet. iptables -A INPUT -i lo -j ACCEPT
# Iptables loopback output -A OUTPUT -o lo -j ACCEPT

# http, https, vi anger inte gränssnittet eftersom # vi vill att det ska vara alla iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# avgång
# http, https, vi anger inte gränssnittet för
# vi vill att det ska vara för alla, men om vi anger utgångsporten
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT

# ssh endast internt och från detta sortiment av ip's iptables -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranät --port 7659 -j ACCEPT
# output # ssh endast internt och från det här sortimentet av ip
iptables -A OUTPUT -p tcp -d 192.168.xx / 24 -o $ intranät - sport 7659 -j ACCEPT
# övervakning till exempel om de har zabbix eller någon annan SNMP-tjänst iptables -A INPUT -p tcp -s 192.168.1.1 -i $ intranät --port 10050 -j ACCEPT
# avgång
# övervakning till exempel om de har zabbix eller någon annan snmp-tjänst
iptables -A UTGÅNG -p tcp -d 192.168.1.1 -o $ intranät --port 10050 -j ACCEPT

# icmp, ping bra är ditt beslut iptables -A INPUT -p icmp -s 192.168.xx / 24 -i $ intranät -j ACCEPT
# avgång
# icmp, ping bra är ditt beslut
iptables -A OUTPUT -p icmp -d 192.168.xx / 24 -o $ intranät -j ACCEPT

#mysql med postgres är port 5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranät -j ACCEPT
# output - fråga ställdes också av en användare för att skapa en mycket specifik # regelserver: 192.168.1.2 mysql: 192.168.1.3
#mysql med postgres är port 5432
iptables -A UTGÅNG -p tcp -s 192.168.1.2 -d 192.168.1.3 --dport 3306 -o $ intranät -j ACCEPT

#sendmail bueeeh om du vill skicka mail #iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT # Anti-SPOOFING 09/07/2014 # SERVER_IP = "190.xxx" # server IP - den verkliga wan IP av din server LAN_RANGE = "192.168.xx / 21" # LAN-räckvidd för ditt nätverk eller dina vlan # IP: er som aldrig ska komma in i extranätet, det är att använda lite # logik om vi har ett rent WAN-gränssnitt, det borde aldrig komma in i # trafik LAN-typ genom det gränssnittet 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" # Standardåtgärd - ska utföras när någon regel matchar ACTION = " DROP "# Paket med samma ip som min server genom wan iptables -A INPUT -i $ extranet -s $ SERVER_IP -j $ ACTION
iptables -A OUTPUT -o $ extranet -s $ SERVER_IP -j $ ACTION

# Paket med LAN Range för wan, jag uttrycker det så här om du har # något speciellt nätverk, men detta är överflödigt med följande # regel inuti "for" loop iptables -A INPUT -i $ extranet -s $ LAN_RANGE -j $ ACTION
iptables -A OUTPUT -o $ extranet -s $ LAN_RANGE -j $ ACTION

## Alla SPOOF-nätverk tillåts inte av wan för ip i $ SPOOF_IPS gör iptables -A INPUT -i $ extranet -s $ ip -j $ ACTION
iptables -A OUTPUT -o $ extranät -s $ ip -j $ ACTION
gjort

I nästa granskning kommer vi att göra portomfång och också fastställa policyer organiserade bland annat bland namn ... Jag väntar på dina kommentarer och önskemål.


Bli först att kommentera

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.