Lécci nézzétek már át... Egyszerű iptables....

Fórumok

Sziasztok!
Átnáznétek ezt az IPTABLES konfigot, mert kezdő vagyok és 1 napig barkácsoltam. Ez egy FTP szerver, és ezen kívül csak ssh-t engedek neki, de azt is csak 1 gépről.
Mindenféle hiba vagy javaslat érdekelne, azaz ez így kellő védelmet nyújt-e ha kiteszem a netre? Ja és a feketelistát elfogadja, mert nem tudtam tesztelni...
Köszi előre is.

#!/bin/bash

IPTABLES=/sbin/iptables

# Feketelista: ezekrol nem fogadunk el bejovo csomagokat

FEKETELISTA=" 1.0.0.0/8 2.0.0.0/8 5.0.0.0/8 7.0.0.0/8 10.0.0.0/8 23.0.0.0/8 27.0.0.0/8 31.0.0.0/8 36.0.0.0/8 37.0.0.0/8 \
39.0.0.0/8 41.0.0.0/8 42.0.0.0/8 49.0.0.0/8 50.0.0.0/8 58.0.0.0/8 70.0.0.0/8 71.0.0.0/8 72.0.0.0/8 73.0.0.0/8 \
74.0.0.0/8 75.0.0.0/8 76.0.0.0/8 77.0.0.0/8 78.0.0.0/8 79.0.0.0/8 92.0.0.0/8 93.0.0.0/8 94.0.0.0/8 95.0.0.0/8 \
96.0.0.0/8 97.0.0.0/8 98.0.0.0/8 99.0.0.0./8 100.0.0.0/8 101.0.0.0/8 102.0.0.0/8 103.0.0.0/8 104.0.0.0/8 \
105.0.0.0/8 106.0.0.0/8 107.0.0.0/8 108.0.0.0/8 109.0.0.0/8 110.0.0.0/8 111.0.0.0/8 112.0.0.0/8 113.0.0.0/8 \
114.0.0.0/8 115.0.0.0/8 116.0.0.0/8 117.0.0.0/8 118.0.0.0/8 119.0.0.0/8 120.0.0.0/4 121.0.0.0/8 122.0.0.0/8 \
123.0.0.0/8 124.0.0.0/8 125.0.0.0/8 126.0.0.0/8 127.0.0.0/8 172.0.0.0/8 173.0.0.0/4 174.0.0.0/8 175.0.0.0/8 \
176.0.0.0/8 177.0.0.0/8 178.0.0.0/8 179.0.0.0/8 180.0.0.0/8 181.0.0.0/8 182.0.0.0/8 183.0.0.0/8 184.0.0.0/8 \
185.0.0.0/8 186.0.0.0/8 187.0.0.0/8 197.0.0.0/8 223.0.0.0/8 224.0.0.0/3 "

# Torlunk minden szabalyt

$IPTABLES -F
$IPTABLES -X
$IPTABLES -Z
echo "Minden szabaly torlese..................OK"

# Eloszor minden csomagot eldubunk

$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP
echo "Forgalom leallitasa.....................OK"

# Anti-Synflood, Anti-Spoofing vedelem

echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
echo "Anti-Synflood, Anti-Spoofing vedelem....OK"

$IPTABLES -N feketelista
echo "Feketelista betoltve....................OK"

# Loopback-en engedelyezzuk az IO forgalmat
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

# Engedjuk befele, ami tolunk szarmazik
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# A tcp kapcsolatok valoban syn bittel kezdodnek-e
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

# Ssh-t csak az en gepemrol fogadja el
$IPTABLES -A INPUT -p tcp -s xxx.yyy.zzz.vvv --dport 22 -j ACCEPT
echo "Ssh port megnyitva a rendszergazda gep fele........OK"

# FTP-t engedjuk, mert ez egy FTP szerver :)
$IPTABLES -A INPUT -p tcp --dport 21 -j ACCEPT
echo "FTP port nyitva.........................OK"

# Pinget engedem kintrol
$IPTABLES -A INPUT -p icmp -j ACCEPT --icmp-type echo-request

$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A OUTPUT -p icmp -j ACCEPT --icmp-type echo-request

$IPTABLES -A INPUT -j DROP
echo "Tuzfal bealltas kesz...................OK"

Hozzászólások

A FEKETELISTA mire jo? nem hasznalod semmire...

A vegen az "$IPTABLES -A INPUT -j DROP" felesleges, hiszen az INPUT policy ugyis DROP.

Nincsenek a gepen belul olyan user-eid akik kapcsolatot kezdhetnenek kifele, ugyhogy az OUTPUT-on szures teljesen felesleges.

Es erre en is kivancsi lennek: az "-m state" hasznalata lerontja a teljesitmenyt, hiszen ott minden alkalommal egy tablazatban kell keresni. Nem lenne erdemes ezt a szabalyt a lista legvegere tenni?

Szerintem nem kell a feketelista lánc, elég egy:

iptables -A INPUT -s $FEKETELISTA -j DROP
szabály.
-
budacsik

$IPTABLES -A INPUT -p tcp -s xxx.yyy.zzz.vvv --dport 22 -j ACCEPT
echo "Ssh port megnyitva a rendszergazda gep fele........OK"

fix ipd van ??mert ha nem netrol nem tudsz be sshzni ! vagy netrol nem akarsz racsatlakozni ??? en mondjuk beletennek 1 3x probalkozasi lehetoseget es ha nem sikerul 2 perc mulva probalkozhat az illeto ujra. Ezt csak akkor ha kirakod netre is az ssht. Meg mondjuk az en maniam h mas portra teszem az ssht.

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p TCP -s xxx.yyy.zzz.vvv --syn --dport ssh -j ACCEPT
iptables -A INPUT -p TCP --syn --dport ssh -m recent --update --seconds 120 --hitcount 3 -j DROP
iptables -A INPUT -p TCP --syn --dport ssh -m recent --set -j ACCEPT
echo "SSH Blokkolo....................OK"

ezaltal a te ipdrol akarmikor probalkohatsz. masrol meg 3 utan 2 perces varakozas.
Remelem nem basztam valahol el. ssh helyere portot irjal. Meg nem ertem ssh legalabb biztonsagos es azt nem akarod netre kitenni ? :D meg ftp helyett sftp t hasznalnek bar ez fugg milyen ftp lesz mert ha valami nagy pub ftp akkor eleg nehez ravenni az embereket h sftp hasznaljanak ha meg magan ftp akkor mindenkepp sftpt ajanlanek. De lehet hulyen latom a dolgokat.