GNU/Linux >> Znalost Linux >  >> Panels >> Panels

IPtables Block IP

Dnes vám ukážeme, jak zablokovat ip adresu pomocí iptables. V následujícím článku přidáváme do skriptu firewallu černou listinu, která vám umožní zablokovat jakékoli zneužívající IP adresy nebo rozsahy IP ve vašem Debianu nebo Ubuntu založený virtuální server. Iptables je aplikační program pro uživatelský prostor, který umožňuje správci systému konfigurovat tabulky poskytované firewallem linuxového jádra (implementované jako různé moduly Netfilter ) a řetězce a pravidla, která ukládá. Blokování IP adresy pomocí iptables je poměrně snadný úkol a nemělo by to trvat déle než 5 minut.

Než budete pokračovat, ujistěte se, že jste si přečetli tutoriál o tom, jak zabezpečit/navrhnout firewall ve vašem linux vps. To zahrnuje:

  • Vyprázdnění starých pravidel brány firewall
  • Určení portů služeb
  • Nastavení výchozích zásad
  • Nastavení pravidel brány firewall
  • Uložení pravidel brány firewall

Blokovat IP pomocí iptables

Chcete-li zablokovat některé zneužívající IP adresy nebo rozsah IP adres, můžete použít následující iptables pravidla:

## iptables -I INPUT -s 1.2.3.4 -j DROP
## iptables -I INPUT -s 1.2.0.0/16 -j DROP

Vytvoření černé listiny v iptables

Pro lepší čitelnost a údržbu je dobré mít všechny zneužívající IP adresy v jednom konkrétním souboru, například /etc/blacklist.ips . Tímto způsobem můžete přidat IP adresy nebo podsítě do tohoto souboru (jedna IP nebo podsíť na řádek ) a použijte fwall-rules skript níže k blokování čehokoli uvedeného v tomto souboru.

Vytvořte nebo upravte /usr/local/bin/fwall-rules a udělejte to následovně:

#!/bin/bash
#
# iptables firewall script
# https://www.rosehosting.com
#

IPTABLES=/sbin/iptables
BLACKLIST=/etc/blacklist.ips

echo " * flushing old rules"
${IPTABLES} --flush
${IPTABLES} --delete-chain
${IPTABLES} --table nat --flush
${IPTABLES} --table nat --delete-chain

echo " * setting default policies"
${IPTABLES} -P INPUT DROP
${IPTABLES} -P FORWARD DROP
${IPTABLES} -P OUTPUT ACCEPT

echo " * allowing loopback devices"
${IPTABLES} -A INPUT -i lo -j ACCEPT
${IPTABLES} -A OUTPUT -o lo -j ACCEPT

${IPTABLES} -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
${IPTABLES} -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

## BLOCK ABUSING IPs HERE ##
#echo " * BLACKLIST"
#${IPTABLES} -A INPUT -s _ABUSIVE_IP_ -j DROP
#${IPTABLES} -A INPUT -s _ABUSIVE_IP2_ -j DROP

echo " * allowing ssh on port 5622"
${IPTABLES} -A INPUT -p tcp --dport 5622  -m state --state NEW -j ACCEPT

echo " * allowing ftp on port 21"
${IPTABLES} -A INPUT -p tcp --dport 21  -m state --state NEW -j ACCEPT

echo " * allowing dns on port 53 udp"
${IPTABLES} -A INPUT -p udp -m udp --dport 53 -j ACCEPT

echo " * allowing dns on port 53 tcp"
${IPTABLES} -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT

echo " * allowing http on port 80"
${IPTABLES} -A INPUT -p tcp --dport 80  -m state --state NEW -j ACCEPT

echo " * allowing https on port 443"
${IPTABLES} -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT

echo " * allowing smtp on port 25"
${IPTABLES} -A INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT

echo " * allowing submission on port 587"
${IPTABLES} -A INPUT -p tcp -m state --state NEW -m tcp --dport 587 -j ACCEPT

echo " * allowing imaps on port 993"
${IPTABLES} -A INPUT -p tcp -m state --state NEW -m tcp --dport 993 -j ACCEPT

echo " * allowing pop3s on port 995"
${IPTABLES} -A INPUT -p tcp -m state --state NEW -m tcp --dport 995 -j ACCEPT

echo " * allowing imap on port 143"
${IPTABLES} -A INPUT -p tcp -m state --state NEW -m tcp --dport 143 -j ACCEPT

echo " * allowing pop3 on port 110"
${IPTABLES} -A INPUT -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT

echo " * allowing ping responses"
${IPTABLES} -A INPUT -p ICMP --icmp-type 8 -j ACCEPT

# DROP everything else and Log it
${IPTABLES} -A INPUT -j LOG
${IPTABLES} -A INPUT -j DROP

#
# Block abusing IPs 
# from ${BLACKLIST}
#
if [[ -f "${BLACKLIST}" ]] && [[ -s "${BLACKLIST}" ]]; then
    echo " * BLOCKING ABUSIVE IPs"
    while read IP; do
        ${IPTABLES} -I INPUT -s "${IP}" -j DROP
    done < <(cat "${BLACKLIST}")
fi

#
# Save settings
#
echo " * SAVING RULES"

if [[ -d /etc/network/if-pre-up.d ]]; then
    if [[ ! -f /etc/network/if-pre-up.d/iptables ]]; then
        echo -e "#!/bin/bash" > /etc/network/if-pre-up.d/iptables
        echo -e "test -e /etc/iptables.rules && iptables-restore -c /etc/iptables.rules" >> /etc/network/if-pre-up.d/iptables
        chmod +x /etc/network/if-pre-up.d/iptables
    fi
fi

iptables-save > /etc/fwall.rules
iptables-restore -c /etc/fwall.rules

ujistěte se, že skript je spustitelný přidáním bitu „x“:

## chmod +x /usr/local/bin/fwall-rules

Uplatnění pravidel

Chcete-li použít pravidla brány firewall a blokovat uživatele, kteří zneužívají, stačí provést fwall-rules skript a je to.

## fwall-rules
 * flushing old rules
 * setting default policies
 * allowing loopback devices
 * allowing ssh on port 5622
 * allowing ftp on port 21
 * allowing dns on port 53 udp
 * allowing dns on port 53 tcp
 * allowing http on port 80
 * allowing https on port 443
 * allowing smtp on port 25
 * allowing submission on port 587
 * allowing imaps on port 993
 * allowing pop3s on port 995
 * allowing imap on port 143
 * allowing pop3 on port 110
 * allowing ping responses
 * BLOCKING ABUSIVE IPs
 * SAVING RULES

Samozřejmě nemusíte blokovat IP adresy pomocí iptables, pokud používáte některou z našich hostingových služeb Linux VPS, v takovém případě můžete jednoduše požádat naše zkušené linuxové administrátory, aby vám zablokovali jakoukoli IP adresu. Jsou k dispozici 24×7 a okamžitě se postarají o váš požadavek.

PS. Pokud se vám líbil tento příspěvek o tom, jak blokovat IP adresy pomocí iptables, sdílejte jej se svými přáteli na sociálních sítích pomocí tlačítek vlevo nebo jednoduše zanechte odpověď níže. Děkuji.


Panels
  1. Virtuální hostitel Nginx – blok serveru Nginx

  2. CentOS / RHEL :Jak blokovat příchozí a odchozí porty pomocí iptables

  3. Linux OS Service „iptables“

  1. Vrátit zpět modifikaci iptables

  2. Proč jsou má síťová připojení odmítána?

  3. Jak blokovat torrenty nebo jakékoli P2P protokoly pomocí Linux IPTables?

  1. Jak blokovat místní podvržené adresy pomocí firewallu Linux

  2. Jak zablokovat IP adresu na serveru Linux

  3. Nakonfigurujte IPTables na hostiteli KVM tak, aby blokoval provoz hostovaného mostu