Portál AbcLinuxu, 1. května 2025 17:20
Ucel tohoto clanku neni prednaset nejake rozumy..na to nemam znalosti:)....spis bych byl rad, kdyby se pod nim rozjela diskuze na tema zabezpeceni serveru..a ja, popr dalsi zacinajici admini..by si z ni mohli odnest maximum...a tak prijit k dalsim znalostem..vedle tech co si nastuduji sami. Takze strucne popisi co jsem si na serveru nastavil ja...a budu to prokladat dotazy, o kterych bych se rad pobavil.
iptables -A INPUT -p tcp --syn -j syn_flood
iptables -A syn_flood -m limit --limit 1/s --limit-burst 3 -j RETURN
iptables -A syn_flood -j DROP
Hezci mi prijde povolit navazani spojeni na konkretni portynapr. 4x za minutu z konkretniho IP. Pomoci modulu recent se toho da dokazat snadno.
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
Jak to resite vy? Co vam prijde lepsi?
#!/bin/bash
# based on iptables found somewhere in the internet ;))
modprobe ip_conntrack_ftp
IPTABLES="/sbin/iptables"
INTERFACE=$1
if [[ "$INTERFACE" == "" ]]
then
echo "INTERFACE variable unset! Aborting"
exit 1
fi
echo -n "Attempting to bring up firewall on $INTERFACE: "
#Flush old rules:
$IPTABLES -F
$IPTABLES -X
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP
iptables -N icmp-chain
$IPTABLES -A icmp-chain -i $INTERFACE -p icmp --icmp-type echo-reply -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A icmp-chain -i $INTERFACE -p icmp --icmp-type echo-request -m limit --limit 5/s -m state --state NEW -j ACCEPT
$IPTABLES -A icmp-chain -i $INTERFACE -p icmp --icmp-type destination-unreachable -m state --state NEW -j ACCEPT
$IPTABLES -A icmp-chain -i $INTERFACE -p icmp --icmp-type time-exceeded -m state --state NEW -j ACCEPT
$IPTABLES -A icmp-chain -i $INTERFACE -p icmp --icmp-type timestamp-reply -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A icmp-chain -j DROP
$IPTABLES -N services
$IPTABLES -A services -p tcp -i $INTERFACE --dport 22 -m state --state NEW -m recent --set
$IPTABLES -A services -p tcp --dport 22 -i $INTERFACE -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
$IPTABLES -A services -p tcp -i $INTERFACE --dport 22 -m state --state NEW -j ACCEPT
$IPTABLES -A services -p tcp -i $INTERFACE --dport 80 --sport 1024:65535 -m state --state NEW -j ACCEPT
$IPTABLES -A services -p tcp -i $INTERFACE --dport 443 --sport 1024:65535 -m state --state NEW -j ACCEPT
a dalsi sluzby...
$IPTABLES -A services -j DROP
$IPTABLES -A INPUT -i $INTERFACE -p ip -f -j DROP
$IPTABLES -A INPUT -i $INTERFACE -p tcp --tcp-flags ALL ACK,RST,SYN,FIN -j DROP
$IPTABLES -A INPUT -i $INTERFACE -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
$IPTABLES -A INPUT -i $INTERFACE -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
$IPTABLES -A INPUT -i lo -s 127.0.0.1 -j ACCEPT
$IPTABLES -A OUTPUT -o lo -d 127.0.0.1 -j ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A OUTPUT -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p icmp -j icmp-chain
#ports allowed cos of port sentry
TCP_PORT_SENTRY="1 11 15 79 111 119 540 635 1080 12346 20034 27665"
UDP_PORT_SENTRY="1 7 9 69 161 513 635 640 641 31335 32770 32771 32772"
for watch in $TCP_PORT_SENTRY; do
$IPTABLES -A INPUT -i $INTERFACE -p tcp --dport $watch -j ACCEPT
done
for watch in $UDP_PORT_SENTRY; do
$IPTABLES -A INPUT -i $INTERFACE -p tcp --dport $watch -j ACCEPT
done
$IPTABLES -A INPUT -i $INTERFACE -m state --state NEW -j services
echo "done."
Tiskni
Sdílej:
for watch in $UDP_PORT_SENTRY; do $IPTABLES -A INPUT -i $INTERFACE -p tcp --dport $watch -j ACCEPT done
Modul recent používám pro ochranu SSH, ale v mém případě moc využívaný není. Démon mi totiž nevisí na portu 22, kam směřuje většina automatizovaných útoků. Na portu 22 mám tarpitJakym zpusobem vytvarite tuto past? Ja pouzivam tinyhoneypot ale hledam neco lepsiho, vite o necem?.
Nicmene je to skutecne tak zhave?Já myslím, že vůbec ne. Dokonce bych řekl, že pokud nepoužíváte vyloženě slabá hesla a máte vypnutý PermitRootLogin, můžete mít SSH klidně na portu 22, firewallem k němu přístup nijak neomezovat, a přesto být v relativním bezpečí. Mít SSH na jiném portu se hodí (pouze) k odražení automatizovaných útoků, protože ty v drtivé většině případů portscan neprovádí a předpokládají, že SSH bude na portu 22. Když ho u vás nenajdou, půjdou "o dům dál". Zkušený útočník bez problémů najde SSH na kterémkoliv portu. Pokud použije sniffer, odhalí třeba i port knocking. Nicméně, podle mého soudu, i zkušený útočník bude dávat přednost strojům se slabším zabezpečením, protože mu průnik do nich zabere mnohem méně času a úsilí. Pokud tedy nebude mít nějaký explicitní důvod, proč se probourat zrovna na váš server.
mam za to, ze kdyz mam zakazane prihlasovani pres heslo...a svuj klic mam chraneny passphrase...tak clovek, ktery by se byl schopen lognout by musel byt takoveho kalibru, ze nejake pasti v podobe toho cos rikal ho asi neprekvapiPřesně tak. Tohle zabezpečení je více než dostatečné. Ono v pohodě stačí i silnější heslo a přihlašování bez klíče. Samozřejmě je třeba dbát zejména na to, odkud se hlásíte (keylogger, apod.).
nebo je to snazsi nez sem si myslel? prolomit ssh??Neřekl bych. Zejména pak, pokud pravidelně aktualizujete.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.