2010-01-05, 13:20
  #1
Medlem
Hej!

Har satt upp ett litet NATat nätverk på en Arch-maskin. Burken delar ut lokala IP-adresser och har även en DNS-server körandes, allt fungerar som förväntat.

Linan mot internet är däremot väldigt seg, och även om jag hatar att begränsa access så är detta ett måste för att majoriteten av användare ska kunna få en bra uppkoppling.

Följande är vad jag använder i iptables:

Kod:
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE
echo > /proc/sys/net/ipv4/ip_forward 

Har förgäves försökt att lägga in saker i både INPUT och OUTPUT utan väntat resultat, därför vänder jag mig till experterna här, hoppas ni kan hjälpa mig på rätt väg
Citera
2010-01-05, 16:21
  #2
Medlem
h-kans avatar
Lite mer info så ska du nog kunna få hjälp.

En ifconfig output och vilka regler du vill ha hade hjälpt.
Citera
2010-01-05, 19:25
  #3
Medlem
Sconemans avatar
INPUT och OUTPUT tabellerna styr trafik till och ifrån maskinen i fråga och har inget med NATning att göra. Här finns att läsa: http://www.frozentux.net/iptables-tu...-tutorial.html

/ Sconeman.
Citera
2010-01-06, 21:18
  #4
Medlem
Citat:
Ursprungligen postat av h-kan
Lite mer info så ska du nog kunna få hjälp.

En ifconfig output och vilka regler du vill ha hade hjälpt.

Såhär ser det ut just nu:
Kod:
[root@Arch ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD 
(policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT 
(policy ACCEPT)
target     prot opt source               destination
[root@Arch ~]# iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       udp  
--  10.0.0.0/24         anywhere            udp dpt:domain to:10.0.0.1:53
ACCEPT     all  
--  10.0.0.11           anywhere
ACCEPT     all  
--  10.0.0.10           anywhere
ACCEPT     all  
--  10.0.0.7            anywhere
ACCEPT     all  
--  10.0.0.3            anywhere
ACCEPT     all  
--  10.0.0.2            anywhere
ACCEPT     all  
--  10.0.0.5            anywhere
ACCEPT     tcp  
--  10.0.0.0/24         10.0.0.1           tcp dpt:www
DNAT       tcp  
--  10.0.0.0/24         anywhere            tcp dpt:www to:10.0.0.1:1011

Chain POSTROUTING 
(policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  
--  10.0.0.0/24         anywhere

Chain OUTPUT 
(policy ACCEPT)
target     prot opt source               destination
[root@Arch ~]

Kod:
# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:19:CB:54:xx.xx
          inet addr
:xx.xx.xx.xx  Bcast:x.x.x.x  Mask:255.255.254.0
          inet6 addr
: * Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU
:1500  Metric:1
          RX packets
:47162161 errors:0 dropped:0 overruns:0 frame:0
          TX packets
:44172054 errors:0 dropped:0 overruns:0 carrier:0
          collisions
:0 txqueuelen:1000
          RX bytes
:1845419071 (1759.9 Mb)  TX bytes:3940806878 (3758.2 Mb)
          
Interrupt:21 Base address:0xe000

eth1      Link encap
:Ethernet  HWaddr *
          
inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr
: * Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU
:1500  Metric:1
          RX packets
:89159 errors:0 dropped:0 overruns:0 frame:0
          TX packets
:97818 errors:0 dropped:0 overruns:0 carrier:0
          collisions
:0 txqueuelen:100
          RX bytes
:15112722 (14.4 Mb)  TX bytes:98087589 (93.5 Mb

Anledningen till att jag accepterar vissa hosts är för att jag kör en captive portal på burken så användaren måste acceptera reglerna innan denne kommer ut på internet.

Det jag vill göra är alltså att blockera utgående portar som kommer från eth1 (LAN) och går ut genom eth0 (WAN).
__________________
Senast redigerad av chx86 2010-01-06 kl. 21:25.
Citera
2010-01-06, 22:22
  #5
Bannlyst
Citat:
Ursprungligen postat av chx86
Såhär ser det ut just nu:
Kod:
[root@Arch ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD 
(policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT 
(policy ACCEPT)
target     prot opt source               destination
[root@Arch ~]# iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       udp  
--  10.0.0.0/24         anywhere            udp dpt:domain to:10.0.0.1:53
ACCEPT     all  
--  10.0.0.11           anywhere
ACCEPT     all  
--  10.0.0.10           anywhere
ACCEPT     all  
--  10.0.0.7            anywhere
ACCEPT     all  
--  10.0.0.3            anywhere
ACCEPT     all  
--  10.0.0.2            anywhere
ACCEPT     all  
--  10.0.0.5            anywhere
ACCEPT     tcp  
--  10.0.0.0/24         10.0.0.1           tcp dpt:www
DNAT       tcp  
--  10.0.0.0/24         anywhere            tcp dpt:www to:10.0.0.1:1011

Chain POSTROUTING 
(policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  
--  10.0.0.0/24         anywhere

Chain OUTPUT 
(policy ACCEPT)
target     prot opt source               destination
[root@Arch ~]

Kod:
# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:19:CB:54:xx.xx
          inet addr
:xx.xx.xx.xx  Bcast:x.x.x.x  Mask:255.255.254.0
          inet6 addr
: * Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU
:1500  Metric:1
          RX packets
:47162161 errors:0 dropped:0 overruns:0 frame:0
          TX packets
:44172054 errors:0 dropped:0 overruns:0 carrier:0
          collisions
:0 txqueuelen:1000
          RX bytes
:1845419071 (1759.9 Mb)  TX bytes:3940806878 (3758.2 Mb)
          
Interrupt:21 Base address:0xe000

eth1      Link encap
:Ethernet  HWaddr *
          
inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr
: * Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU
:1500  Metric:1
          RX packets
:89159 errors:0 dropped:0 overruns:0 frame:0
          TX packets
:97818 errors:0 dropped:0 overruns:0 carrier:0
          collisions
:0 txqueuelen:100
          RX bytes
:15112722 (14.4 Mb)  TX bytes:98087589 (93.5 Mb

Anledningen till att jag accepterar vissa hosts är för att jag kör en captive portal på burken så användaren måste acceptera reglerna innan denne kommer ut på internet.

Det jag vill göra är alltså att blockera utgående portar som kommer från eth1 (LAN) och går ut genom eth0 (WAN).

Du vill alltså blockera all utgående trafik?
Ändra isf Chain OUTPUT (policy ACCEPT) till DENY men bara för eth1.

Dock förstår jag inte vad du vill
Citera
2010-01-07, 03:54
  #6
Medlem
wasfuns avatar
omöjligt att hjälpa dig för vi förstår inte ens vad du vill göra. Om det nu är som -rwxr-x säger att du vill blockera all trafik som kommer från ditt LAN som ska till WAN, varför ens köra Masquerading?
Citera
2010-01-07, 10:09
  #7
Medlem
Citat:
Ursprungligen postat av wasfun
omöjligt att hjälpa dig för vi förstår inte ens vad du vill göra. Om det nu är som -rwxr-x säger att du vill blockera all trafik som kommer från ditt LAN som ska till WAN, varför ens köra Masquerading?

Kanske var lite otydlig innan, ber om ursäkt för detta Det jag vill göra är att blockera vissa utgående portar. Vill t.ex. inte att port 27015 skall gå att nå ut på nätet, däremot skall 80, 443 osv fungera.
Citera
2010-01-07, 10:36
  #8
Medlem
Sconemans avatar
Citat:
Ursprungligen postat av chx86
Kanske var lite otydlig innan, ber om ursäkt för detta Det jag vill göra är att blockera vissa utgående portar. Vill t.ex. inte att port 27015 skall gå att nå ut på nätet, däremot skall 80, 443 osv fungera.

Blocka de portarna i forwarding kedjan då?

/ Sconeman.
Citera
2010-01-07, 13:44
  #9
Medlem
Citat:
Ursprungligen postat av Sconeman
Blocka de portarna i forwarding kedjan då?

/ Sconeman.

Har redan försökt det, med följande resultat:
Kod:
# iptables -t nat -A FORWARD -i eth1 -p tcp --dport 443 -j DROP
iptables v1.4.6:
The "nat" table is not intended for filteringthe use of DROP is therefore inhibited.


Try `
iptables -h' or 'iptables --help' for more information. 

Kan inte droppa paket alls när jag använder -t nat. Droppar jag paketen i min vanliga INPUT eller OUTPUT-chain så fungerar det lokalt på server, dvs servern kommer inte ut på de portarna jag definierar i iptables. Klienter som är anslutna genom det NATade nätet kommer dock ut ändå.
Citera
2010-01-07, 14:43
  #10
Medlem
Sconemans avatar
Citat:
Ursprungligen postat av chx86
Har redan försökt det, med följande resultat:
Kod:
# iptables -t nat -A FORWARD -i eth1 -p tcp --dport 443 -j DROP
iptables v1.4.6:
The "nat" table is not intended for filteringthe use of DROP is therefore inhibited.


Try `
iptables -h' or 'iptables --help' for more information. 

Kan inte droppa paket alls när jag använder -t nat. Droppar jag paketen i min vanliga INPUT eller OUTPUT-chain så fungerar det lokalt på server, dvs servern kommer inte ut på de portarna jag definierar i iptables. Klienter som är anslutna genom det NATade nätet kommer dock ut ändå.

Prova att filtrera på table "filter" istället för "nat". Eller att helt enkelt inte specificera table så ska den defaulta till "filter.

/ Sconeman.
Citera
2010-01-07, 17:05
  #11
Medlem
Citat:
Ursprungligen postat av Sconeman
Prova att filtrera på table "filter" istället för "nat". Eller att helt enkelt inte specificera table så ska den defaulta till "filter.

/ Sconeman.

Löste problemet, tack som fan!
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in