Avatar billede secusr Nybegynder
27. marts 2006 - 20:58 Der er 7 kommentarer og
1 løsning

Iptables: bestemt ip til bestemt service

Hej exp.

Jeg har følgende simpelt script:

# Flush
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
iptables -t nat -F OUTPUT
iptables -F

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Port forwarding
iptables -t nat -A POSTROUTING -s $LAN_IP_NET -j MASQUERADE
iptables -A FORWARD -j ACCEPT -i $LAN_NIC -s $LAN_IP_NET
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Åbner porte
iptables -A INPUT -j ACCEPT -p tcp --dport 80
iptables -A INPUT -j ACCEPT -p tcp --dport 21
iptables -A INPUT -j ACCEPT -p tcp --dport 22

# Routing
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


# Slå forward til
echo 1 > /proc/sys/net/ipv4/ip_forward

Hvad skriver jeg hvis jeg vil have det til at det kun er bestemte ipadresser der kan tilgå ssh servicen, hvis man kan?
Kan man også gøre så det f.eks kun er bestemte ipadresser der kan køre en shutdown -h now?
Hvis ikke dette kan lade sig gøre, kan man så gøre så serveren kun kan slukkes via ssh.
Avatar billede langbein Nybegynder
27. marts 2006 - 23:22 #1
Jeg har ikke testkjørt noen ting, men på litt blindt øyemål:

# Flush

Ville ikke tro at det er nødvendig å flushe nat chain tre ganger, men gir den ingen feilmelding så la gå ..

-P sette policies .. ok slik kan det gjøres ..

# portforwarding

Scriptet kan ikke være komplett (??) dette kan vel ikke fungere med mindre tekststrengen tilordnes verdi ett eller annet sted:

iptables -t nat -A POSTROUTING -s $LAN_IP_NET -j MASQUERADE

Dette kunne vel på den annen side godt fungere:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Åpning av porter for bestemt avsender ip:

iptables -A INPUT -i eth0 -s 123.123.123.123 -p tcp --dport 22 -j ACCEPT
Avatar billede langbein Nybegynder
27. marts 2006 - 23:27 #2
Fra min egen lokale "script generator" (men stadig uttestet):

# Enable forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

# Load some kernel modules
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp

# Flush
iptables -t nat -F
iptables -F
iptables -X
iptables -Z

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Enable Masquerade and statefull inspection all forwarding
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth1 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Open ports on router pc for server/services
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -s 123.123.123.123 -p tcp --dport 22 -j ACCEPT

# STATE RELATED for local processes on firewall machine
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


Ellers:
eth0 = Internett

Kjøres:

bash <filnavn>
eth1 = lan
Avatar billede secusr Nybegynder
28. marts 2006 - 09:51 #3
Følgende linje ser ud til at kunne bruges.

iptables -A INPUT -i eth0 -s 123.123.123.123 -p tcp --dport 22 -j ACCEPT

Men hvad nu hvis jeg vil have mere end 1 IP adresse til at kunne tilslutte sig til port 22?
Kan man så skrive: iptables -A INPUT -i eth0 -s 123.123.123.123, 145.145.145.146, 148.148.148.148 -p tcp --dport 22 -j ACCEPT?

Kan man gøre så root kun kan logge på fra bestemte IP adresser?
Avatar billede langbein Nybegynder
28. marts 2006 - 17:02 #4
Husker ikke om man kan sette opp flere ip med komma mellom. Ville vel tro det.
Ellers så kan man jo i alle tilfeller sette opp flere linjer under hverandre som åpner for hver sin avsender ip:

iptables -A INPUT -i eth0 -s 123.123.123.123 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -s 123.123.123.123 -p tcp --dport 22 -j ACCEPT

Ellers så vil jeg tro at man også kan åpne for et helt nettverk, om lag 254 Pc slik:

iptables -A INPUT -i eth0 -s 123.123.123.0/255.255.255.0 -p tcp --dport 22 -j ACCEPT

Når det gjelder iptables så må man rett og slett bare teste ut.

"Kan man gøre så root kun kan logge på fra bestemte IP adresser?"

Det vil jo virke omtrent slik. Først sjekker den for godkjent ip og hvis den er det så kan man logge på eventuelt som root.

Dette vil jo virke på en ganske sikker måte, fordi den eneste måten man kan få et svar og ellers komunikasjonen til å kjøre ved tcp, det er ved å oppgi den riktige avsender ip.
Avatar billede langbein Nybegynder
28. marts 2006 - 17:10 #5
Kanskje bedre og enklere for å åpne for et avsender nettverk:

iptables -A INPUT -i eth0 -s 123.123.123.0/24 -p tcp --dport 22 -j ACCEPT

(Åpne for port 22 for alle fra nettverk no 123.123.123.0)
Avatar billede secusr Nybegynder
28. marts 2006 - 19:29 #6
Mange tak for det langbein, smidder du et svar så har jeg nemlig nogle points til dig;)
Avatar billede langbein Nybegynder
29. marts 2006 - 00:21 #7
Håper det virker .. si til hvis det ikke gjør det .. :-)
Avatar billede secusr Nybegynder
29. marts 2006 - 09:48 #8
Det skal jeg nok:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester