Sziasztok!
Egy netes leírás alapján készítettem egy firewall scriptet,
ami nem nagyon akar működni. Elindítása után még a http sem
megy :(
Bár NAT-os scriptből alakítottam át. Nem akarok NAT-olni,
csak a helyi gépet akarom védeni. Nem közvetlenül külső
ip-m van, hanem egy belső hálóról csatlakozok ki a netre egy
gatewayen keresztül. Részben a net-es támadóktól, részben a
szomszédos gépektől akarom megvédeni.
echo "0" > /proc/sys/net/ipv4/ip_forward
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -N rossz_tcp_csomagok
$IPTABLES -N megengedett
$IPTABLES -N tcp_csomagok
$IPTABLES -N udp_csomagok
$IPTABLES -N icmp_csomagok
# rossz csomagok
# $IPTABLES -A rossz_tcp_csomagok -p tcp --tcp-flags SYN,ACK SYN,ACK \
# -m state --state NEW -j REJECT --reject-with tcp-reset
# $IPTABLES -A rossz_tcp_csomagok -p tcp ! --syn -m state --state NEW -j LOG \
# --log-prefix "New not syn:"
# $IPTABLES -A rossz_tcp_csomagok -p tcp ! --syn -m state --state NEW -j DROP
# megengedett
$IPTABLES -A megengedett -p TCP --syn -j ACCEPT
$IPTABLES -A megengedett -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A megengedett -p TCP -j DROP
# TCP szabalyok
$IPTABLES -A tcp_csomagok -p TCP -s 0/0 --dport 21 -j megengedett
$IPTABLES -A tcp_csomagok -p TCP -s 0/0 --dport 22 -j megengedett
$IPTABLES -A tcp_csomagok -p TCP -s 0/0 --dport 80 -j megengedett
$IPTABLES -A tcp_csomagok -p TCP -s 0/0 --dport 113 -j megengedett
# UDP ports
$IPTABLES -A udp_csomagok -p UDP -s 0/0 --destination-port 53 -j ACCEPT
$IPTABLES -A udp_csomagok -p UDP -s 0/0 --destination-port 123 -j ACCEPT
$IPTABLES -A udp_csomagok -p UDP -s 0/0 --destination-port 2074 -j ACCEPT
$IPTABLES -A udp_csomagok -p UDP -s 0/0 --destination-port 4000 -j ACCEPT
# windowsos broadcast ellen:
# $IPTABLES -A udp_csomagok -p UDP -i eth0 -d $BRCAST \
# --destination-port 135:139 -j DROP
# DHCP keresek ellen:
# $IPTABLES -A udp_csomagok -p UDP -i eth0 -d 255.255.255.255 \
# --destination-port 67:68 -j DROP
# ICMP szabalyok
$IPTABLES -A icmp_csomagok -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
$IPTABLES -A icmp_csomagok -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
# INPUT lanc:
# rossz TCP csomagok:
$IPTABLES -A INPUT -p tcp -j rossz_tcp_csomagok
# windowsos multicast ellen
# $IPTABLES -A INPUT -i eth0 -d 224.0.0.0/8 -j DROP
# fura csomagok:
# $IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
# --log-level DEBUG --log-prefix "IPT INPUT packet died: "
# OUTPUT lanc:
# rossz TCP csomagok
$IPTABLES -A OUTPUT -p tcp -j rossz_tcp_csomagok
# szabalyok:
$IPTABLES -A OUTPUT -p ALL -s 127.0.0.1 -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $IPCIMEM -j ACCEPT
# fura csomagok:
# $IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
# --log-level DEBUG --log-prefix "IPT OUTPUT packet died: "
- 2056 megtekintés
Hozzászólások
Ja és próbáltam úgy is, h az össze komment ki van szedve. Legelőször így,
aztán kommenteltem ki a dolgokat, de így sem megy.
A parancsokat értem, h mit csinálnak. De még nem vagyok elég profi az egészből...
- A hozzászóláshoz be kell jelentkezni
Ha csak ezt az érintett gépet szeretnéd védeni, akkor a FORWARD láncnak nincs szerepe, a forwarding ki van kapcsolva, policy DROP-ra állítva. Eddig tökéletes.
Az OUTPUT-ból most először a rossz_tcp_csomagok láncra ugrik, ami teljesen üres (ki van kommentezve). Aztán a 127.0.0.1 forrású mehet, ez valószínűleg most jó, de célszerűbb és általánosabb, ha az INPUT láncban input interfésznek a lo-t adod meg, és/vagy az OUTPUBAN a teljes 127.0.0.0/8 loopback tartományt. Végül kiengedi a saját IP-det, a többi a default policy alapján eldobásra kerül.
Az INPUT láncból elugrik a rossz_tcp_csomagok láncra, ami üres, és utána a default policy DROP miatt eldobásra kerül az összes csomag.
Be kellene engedni azokat a csomagokat, amelyek a te IP-dre érkeznek, ez a szabály most hiányzik, és ezért nem működik a gépedről semmilyen olyan protokoll, amely az elküldött kérésre választ vár, illetve kintről sem tudnak a te gépeden lévő szolgáltatást igénybevenni.
A megengedett, tcp_csomagok, udp_csomagok, icmp_csomagok láncok nincsenek használatban.
Természetesen ez így túl sok mindent nem ér, szűkíteni kell a be- és kiengedett csomagok körét. Egy csomagszűrő tűzfal megfelelően erős szabályainak a megalkotása meghaladja az itteni kereteket, csak néhány mondatban, amire érdemes figyelni. Tűzfalgyártásánál először meg kell vizsgálni a gépen futó alkalmazások, szolgáltatások által használt IP-ket, protokollokat, portokat, a kapcsolat kezdeményezésének irányát, és a nem szükségeseket tiltani, vagy a szükségeseket engedni. Ehhez jó kindulási alap a netstat. Megfontolandó az érvénytelen forrás- és célcímek ellenőrzése, valamint a reverse path check bekapcsolása is. Érdemes figyelni a broadcastot igénylő protokollokra (például a DHCP) is.
- A hozzászóláshoz be kell jelentkezni
A windowsos multicast elé beírtam ezt, ahogy mondtad, és már jó.
#
# Rules for incoming packets from the internet.
#
$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED \
-j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
Köszi szépen.
- A hozzászóláshoz be kell jelentkezni
A tűzfal használata után a yahoo-s sign-in seal-em eltűnt.
Vajon mitől? Lehet, h nem a tűzfal a hibás?
- A hozzászóláshoz be kell jelentkezni
Nem használok Yahoot, de a Yahoo oldalának információjából nekem az derül ki, hogy ez a sign-in seal valójában cookie-alapú dolog, és csak a böngészővel van kapcsolatban. Nem törlődtek a cookie-k? Lépj be újra, aztán böngésző bezárása, és újra próbáld meg.
http://help.yahoo.com/l/us/yahoo/edit/privacy/edit-35.html
A tűzfalnak ehhez nem lehet köze, hacsak nem olyan megoldást is használ a cookie mellett, ami a böngészőtől függetlenül kommunikál a szerverrel (pl. Java alkalmazás). De ennek nem látom esélyét.
- A hozzászóláshoz be kell jelentkezni
Valszeg törölhettem a cookie-t...
- A hozzászóláshoz be kell jelentkezni
Másik dolog, ami nem működik. Használom a Last.FM lejátszót, szépen jön is a zene,
meg minden, de mikor kilépek, akkor nem tűnik el a tálcáról.
Csak akkor fordul elő, ha fut a tűzfal.
Ha ekkor újraindítom, akkor a következő hibaüzenettel jön:
"Something is seriously wrong with the network subsystem.
The application failed to open a socket and start listening for
submissions from player plugins
Details: Could not bind listening socket. Socket error: 98"
- A hozzászóláshoz be kell jelentkezni