Toon posts:

Iptables

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb geprobeert om een scriptje te schrijven, maar blijkbaar werkt die niet. Ziet er iemand wat er eventueel fout zou kunnen zijn?

Ik wil zekers een DROP ALL ,ACCECPT SOME strategie aannemen

Mijn script:

#!/bin/sh

#FIREWALL SCRIPT

INET_IFACE="eth0"
LOCALHOST_IP="127.0.0.1/32"
THRUSTED_IPS="0/0"
IPT="iptables"

#Initialisation, flush current set
echo "Initiating the firewall..."
$IPT -F
$IPT -t nat -F
$IPT -X
$IPT -t nat -X

#Default policy
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

#Make new chains
$IPT -N icmp_chain
$IPT -N udp_chain
$IPT -N tcp_chain

#ICMP Chain
$IPT -A icmp_chain -p ICMP -s 0/0 --icmp-type ping -j ACCEPT

#TCP Chain
$IPT -A tcp_chain -p TCP -s $THRUSTED_IPS --dport 21 -j ACCEPT
$IPT -A tcp_chain -p TCP -s 0/0 --dport 23 -j ACCEPT
$IPT -A tcp_chain -p TCP -s 0/0 --dport 80 -j ACCEPT
$IPT -A tcp_chain -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT

#UDP Chain
$IPT -A udp_chain -p UDP -s 0/0 --source-port 53 -j ACCEPT

###########################
#Main
###########################

#INPUT
$IPT -A INPUT -p ICMP -i $INET_IFACE -j icmp_chain
$IPT -A INPUT -p TCP -i $INET_IFACE -j icmp_chain
$IPT -A INPUT -p UDP -i $INET_IFACE -j icmp_chain

#OUTPUT
$IPT -A OUTPUT -p ALL -s $LOCALHOST_IP -j ACCEPT

echo "Done.."

Verwijderd

Op dinsdag 26 maart 2002 20:31 schreef gabberatski het volgende:
Ik heb geprobeert om een scriptje te schrijven, maar blijkbaar werkt die niet.
wat werkt niet :?

Verwijderd

Topicstarter
ik kan niet extern pingen

ftp localhost werkt niet

men kan niet van buitenaf via ssh connecteren

  • yeadder
  • Registratie: Maart 2001
  • Niet online
Op dinsdag 26 maart 2002 20:53 schreef gabberatski het volgende:
ik kan niet extern pingen

ftp localhost werkt niet

men kan niet van buitenaf via ssh connecteren
en als je dit script runt geeft iptables geen fout meldingen ??

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 14:47

Kees

Serveradmin / BOFH / DoC
#INPUT
$IPT -A INPUT -p ICMP -i $INET_IFACE -j icmp_chain
$IPT -A INPUT -p TCP -i $INET_IFACE -j icmp_chain
$IPT -A INPUT -p UDP -i $INET_IFACE -j icmp_chain

Dit klopt zowiezo al niet :)
-j tcp_chain lijkt mij eerder een goede oplossing..

bovendien, waarom een aparte ICMP chain als je die toch accept? accept het dan meteen :)

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Verwijderd

Topicstarter
oeps, yeah, te snel geyankt precies

Verwijderd

Topicstarter
Ok, heb nog wat wijzigingen aangebracht, maar het werkt nog altijd niet.

Ik kan nog altijd niet extern pingen, of iemand extern via ssh laten connecten.

Hier is mijn script

#!/bin/sh
#FIREWALL SCRIPT

INET_IFACE="eth0"
LOCALHOST_IP="127.0.0.1/32"
THRUSTED_IPS="0/0"
IPT="iptables"

#Initialisation, flush current set
echo "Initiating the firewall..."
$IPT -F
$IPT -t nat -F
$IPT -X
$IPT -t nat -X

#Default policy
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD DROP

#Make new chains
$IPT -N icmp_chain
$IPT -N udp_chain
$IPT -N tcp_chain

#ICMP Chain
$IPT -A icmp_chain -p ICMP -s 0/0 --icmp-type ping -j ACCEPT

#TCP Chain
$IPT -A tcp_chain -p TCP -s $THRUSTED_IPS --dport 21 -j ACCEPT
$IPT -A tcp_chain -p TCP -s 0/0 --dport 22 -j ACCEPT
$IPT -A tcp_chain -p TCP -s 0/0 --dport 80 -j ACCEPT
$IPT -A tcp_chain -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT

#UDP Chain
$IPT -A udp_chain -p UDP -s 0/0 --source-port 53 -j ACCEPT

###########################
#Main
###########################

#INPUT
#$IPT -A INPUT -p ALL -d $LOCALHOST_IP -j ACCEPT
$IPT -A INPUT -p ICMP -i $INET_IFACE -j icmp_chain
$IPT -A INPUT -p TCP -i $INET_IFACE -j tcp_chain
$IPT -A INPUT -p UDP -i $INET_IFACE -j udp_chain

#OUTPUT
$IPT -A OUTPUT -p ALL -s $LOCALHOST_IP -j ACCEPT

echo "Done.."

Verwijderd

Topicstarter
*kick*

  • GarBaGe
  • Registratie: December 1999
  • Laatst online: 13:38
Ik gebruik IPchains, ipv IPtables, maar mijn laatste regel in mijn input en output-chain is een "log" regel, om al het verkeer te loggen...
Al het "incourante" verkeer wordt gelogd, maar als ik teveel filter, wordt dat ook gelogd. Erg handig :)

Verder DROP je alles in je FORWARD-chain (niet erg handig) en laat je OUTPUT chain wel heel erg weinig verkeer door (alleen alles met als source je locale netwerk...)

Ryzen9 5900X; 16GB DDR4-3200 ; RTX-4080S ; 7TB SSD


Verwijderd

Topicstarter
$IPT -P OUTPUT ACCEPT


Dus ik accepteer alle output verkeer

Das toch goe?

Verwijderd

Op dinsdag 26 maart 2002 20:53 schreef gabberatski het volgende:
ik kan niet extern pingen

ftp localhost werkt niet

men kan niet van buitenaf via ssh connecteren
werk je als client of als server?
Client:
* zet de firwall eens uit, werkt alles dan?
Server:
* zet eens alleen de echte basis regels in.
* heb je de gateway ingevuld
* heb je IPV4-routing aanstaan.
Voor IPChains heb ik wel een basis set, met Iptables geen ervaring. Hier zit dus vrijwel geen bescherming in, maar je kunt wel tenminste testen of eea werkt. Probeer eerst eens de vergelijkbare basisregels van IPTables werkend te krijgen en dan pas de verdere bescherming to te voegen.


basisregels vooor IPChains:
---------------------------
/sbin/ipchains -F input
/sbin/ipchains -F forward
/sbin/ipchains -F output
/sbin/ipchains -M -S 7200 10 60
/sbin/ipchains -A input -j ACCEPT -i eth1 -s 0/0 68 -d 0/0 67 -p udp
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -j MASQ -s 192.168.0.0/24 -d 0.0.0.0/0
/sbin/ipchains -A forward -s 192.168.0.0/24 -j MASQ

Verwijderd

Topicstarter
Als ik INPUT & OUTPUT accept, dan werkt dat ding wel...

Snap het echt nie

  • Heidistein
  • Registratie: Februari 2002
  • Laatst online: 20-05 16:04

Heidistein

Blah

(jarig!)
werp eens een blik in deze firewall.
Dit is die van mij, werkt als een tiet, en heeft hetzelfde idee als die van jou.
Ik zie zo 1234 niet wat bij jou mist eigenlijk...
(note wel dat hier nog een lading NAT spul tussen staat)

Maybee we are alone... After all.


Verwijderd

code:
1
2
3
4
5
6
#!/bin/sh

#FIREWALL SCRIPT

INET_IFACE="eth0"
LOCALHOST_IP="127.0.0.1/32"

Waarom gebruik je het IP van je loopback interface (lo)? Daar kan niemand anders dan alleen je eigen machine op komen. Ik ga ervan uit, dat je machine maar 1 netwerkkaart heeft (namelijk degene die aan internet hangt, want in een multiple NIC-machine kan niemand dit IP bereiken.
code:
1
TRUSTED_IPS="0/0"

0/0 of mooier 0.0.0.0/0 matcht alle IP's! Gezien de naam (die trusted moet zijn ;) ), wil je juist het tegenovergestelde en maar een select subnet cq host toegang geven. Let daar dus goed op ;)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
IPT="iptables"

#Initialisation, flush current set
echo "Initiating the firewall..."
$IPT -F
$IPT -t nat -F
$IPT -X
$IPT -t nat -X

#Default policy
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

#Make new chains
$IPT -N icmp_chain
$IPT -N udp_chain
$IPT -N tcp_chain

#ICMP Chain
$IPT -A icmp_chain -p ICMP -s 0/0  --icmp-type ping -j ACCEPT

#TCP Chain
$IPT -A tcp_chain -p TCP -s $TRUSTED_IPS --dport 21 -j ACCEPT

Waar is de regel voor ftp-data connecties? ;)
code:
1
2
3
4
5
6
$IPT -A tcp_chain -p TCP -s 0/0 --dport 23 -j ACCEPT
$IPT -A tcp_chain -p TCP -s 0/0 --dport 80 -j ACCEPT
$IPT -A tcp_chain -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT

#UDP Chain
$IPT -A udp_chain -p UDP -s 0/0 --source-port 53 -j ACCEPT

Weet je zeker dat je dit wilt hebben? Fungeert je machine als nameserver? Dit zou typisch een regel zijn voor een OUTPUT rule, gezien de --source-port (een nameserver draait op poort 53), gezien je -s 0/0 slaat dit eigenlijk nergens op. Dat zeg namelijk dat jouw machine vanaf elk IP een verbinding naar buiten zou mogen maken. Ofwel de -s 0/0 wijst meer op het feit, dat je dit bedoelt voor een INPUT chain en daarbij iedereen toegang zou willen geven tot de DNS-server. Kortom dit is een rule die nogal tegenstrijdig is met zichzelf ;)
Daarnaast gaat DNS, zowel over tcp alsook udp poort 53 ;)
code:
1
2
3
4
5
6
7
8
9
###########################
#Main
###########################

#INPUT
#$IPT -A INPUT -p ALL -d $LOCALHOST_IP -j ACCEPT
$IPT -A INPUT -p ICMP -i $INET_IFACE -j icmp_chain
$IPT -A INPUT -p TCP -i $INET_IFACE -j tcp_chain
$IPT -A INPUT -p UDP -i $INET_IFACE -j udp_chain

Waar is je loopbackinterface? Kan je verbinden met een service op 127.0.0.1? (Pingen lukt wel, omdat je dat toch nergens verbiedt, maar daar heeft Kees je al op gewezen ;) )
code:
1
2
#OUTPUT
$IPT -A OUTPUT -p ALL -s $LOCALHOST_IP -j ACCEPT

Waar is hier je externe IP :?
Verkeer naar buiten toe, gaat dus (als het vanaf jou komt) eerst door de OUTPUT chain. De policy daarvan staat op DROP (ofwel niet toegestaan). Je geeft hierboven aan dat alleen 127.0.0.1 naar buiten toe mag verbinden. Dit gebeurt toch al never nooit niet. 127.0.0.1 wordt alleen op de eigen machine gebruikt. Als je een verbinding naar buiten toe maakt, dan gaat dit uiteraard altijd over het IP van de netwerkkaart, waarmee je machine aan het betreffende netwerk hangt. Hier dus je externe IP en je "INET_IFACE". Kortom dit is weer conflicterend ;) Zoals ik al eerder aangaf.

Ik denk dat het niet onverstandig is, om eens goed de documentatie te lezen ;)

Ik hoop dat je met m'n aanwijzingen wat verder komt :)
Pagina: 1