Creëer je eigen firewall met iptables met behulp van dit eenvoudige script

Ik heb enige tijd nagedacht over twee dingen over deze iptables: de meeste van degenen die naar deze tutorials zoeken zijn beginners en ten tweede zijn velen al op zoek naar iets vrij eenvoudigs en al uitgewerkt.

Dit voorbeeld is voor een webserver, maar u kunt gemakkelijk meer regels toevoegen en deze aanpassen aan uw behoeften.

Als je "x" ziet veranderen voor je ip's


#!/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 output (output) allemaal uitleggen omdat het uitgaande verbindingen zijn #, input verwijderen we alles, en geen enkele server mag doorsturen. iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP #Intranet LAN intranet = eth0 #Extranet wan extranet = eth1 # Status behouden. Alles wat al is verbonden (tot stand gebracht) blijft als volgt: iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT # Loop device. iptables -A INPUT -i 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 # 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 ACCEPT # monitoring bijvoorbeeld als ze zabbix of een andere snmp service iptables -A INPUT -p tcp -s 192.168.xx / 24 -i $ intranet --dport 10050 -j ACCEPT # icmp, ping nou, het is aan jou iptables -A INPUT -p icmp -s 192.168.xx / 24 - i $ intranet -j ACCEPTEER #mysql met postgres is poort 5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j ACCEPTEER #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 server LAN_RANGE = "192.168.xx / 21 "# LAN-bereik van uw netwerk of uw vlan # Ip's die nooit het extranet mogen betreden,is om een ​​beetje # logica te gebruiken als we een puur WAN-interface hebben, het zou nooit # LAN-type verkeer via die interface moeten invoeren 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 / XNUMX "# Standaardactie - uit te voeren wanneer een regel overeenkomt met ACTION =" DROP "# Pakketten met hetzelfde ip-adres van 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 stel het zo voor het geval je een bepaald netwerk hebt, maar dit is overbodig met de volgende # regel erin the loop "for" iptables -A INPUT -i $ extranet -s $ LAN_RANGE -j $ ACTION iptables -A OUTPUT -o $ extranet -s $ LAN_RANGE -j $ ACTION ## Alle SPOOF-netwerken niet toegestaan ​​door wan voor ip in $ SPOOF_IPS do iptables -A INPUT -i $ extranet -s $ ip -j $ ACTION iptables -A OUTPUT -o $ extranet -s $ ip -j $ ACTION gedaan

Zoals altijd wacht ik op uw opmerkingen, blijf op de hoogte op deze blog, bedankt