Firewall fråga. [LÖST]

Konfiguration av nätverk, hur man använder Ubuntu som server, och håller sin dator säker
Användarvisningsbild
sund
Inlägg: 123
Blev medlem: 02 sep 2006, 15:22
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Kumla

Firewall fråga. [LÖST]

Inlägg av sund »

Tjo tjo.

Jag köpte mig en äldre hoj för att andvända som router och följde Hemmarouter guiden jag hittade i forumet.

Dock så verkar det som att ipmasq själv sitter och uppdaterar iptables, och man blir ombedd att skriva in sina
iptables kommandon i /etc/ipmasq/rules istället för att dom fortfarande ska finnas kvar när ipmasq uppdaterar.

Vad jag egentligen undrar är väl om man kan köra sina forwardings utan att andvända ipmasq? och bara andvända iptables istället för att öppna portar och forwarda vidare viss trafik till min webserver.

Vad jag också behöver är nån form av addressöversättning rent i iptables.
Jag tror att jag kan forwarda ut trafik igenom eth0 till eth1 och vise versa igenom att knappa in följande.

# Forward only established and related connections to the lan for incoming packets

Kod: Markera allt

iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Forward all OUT connections from the lan

Kod: Markera allt

 iptables -A FORWARD -o eth1 -i eth0 -j ACCEPT
Och sedan har jag skrivit själv ett exempel på hur tex en http forward kommer se ut.

Kod: Markera allt

iptables -A FORWARD -p tcp --sport 80 -d 13.37.0.2 -j ACCEPT
vilket skickar alla tcp paket på port 80 till servern på det lokala nätverket med adressen 13.37.0.2

Det som jag inte lyckats utröna om iptables än är ifall det är på samma vis som när man konfigurerar en access lista på.
om jag lägger till ett entry i iptables, finns det då en implicit null längst ner i iptables som droppar alla paket som inte matchades emot de entryn jag skrivit in?

Har ni andra lösningar för detta , kanske till och med tips på hur jag uppnår port forwarding med ipmasq?
Det enda jag inte har stöd för är X, så inga firestarter program eller någe annat med Gui kan jag andvända mig utav.

edit: jag läste i tråden på http://ubuntuforums.org/showthread.php?t=159661&highlight=iptables+howto
och funderade lite på hans script i slutet av howton, dock så innefattar den inte någon NAT.
Senast redigerad av 1 DeepThought, redigerad totalt 15 gånger.
Användarvisningsbild
webaake
Inlägg: 3962
Blev medlem: 09 maj 2007, 09:46
OS: Xubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

SV: Firewall fråga.

Inlägg av webaake »

Kolla denna sida:

http://easyfwgen.morizot.net/gen/

Efter att ha testat bl a firestarter m m så fastnade jag för denna.  Mycket lärorikt och lätt att senare modifiera.
Xubuntu på flera maskiner. Men inte Unity!
Mer Terminalanvändande i Ubuntu vore bra. Och Xfce. Och Mate.
Emil.s
Inlägg: 6633
Blev medlem: 12 dec 2006, 23:20
OS: Ubuntu
Ort: /Dalarna/Hedemora/
Kontakt:

SV: Firewall fråga.

Inlägg av Emil.s »

Hm, det här med router/brandvägg börjar bli vanligt. Ska nog skriva ihop något själv tror jag. En basic guide för shorewall tror jag. :)

Men jag kan ju passa på att rekommendera shorewall endå, då de har riktigt bra dokumentation på deras sida:
http://shorewall.net/
http://shorewall.net/shorewall_setup_guide.htm
Home sweet ~/ = http://sandnabba.se
Användarvisningsbild
maths57
Inlägg: 2911
Blev medlem: 22 jun 2007, 15:10
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

SV: Firewall fråga.

Inlägg av maths57 »

Det finns väl ingenting om iptables och brandväggar på vår portal än? Är det dags? Men ämnet är ju inte helt enkelt.
Användarvisningsbild
sund
Inlägg: 123
Blev medlem: 02 sep 2006, 15:22
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Kumla

SV: Firewall fråga.

Inlägg av sund »

Emil.s skrev: Hm, det här med router/brandvägg börjar bli vanligt. Ska nog skriva ihop något själv tror jag. En basic guide för shorewall tror jag. :)

Men jag kan ju passa på att rekommendera shorewall endå, då de har riktigt bra dokumentation på deras sida:
http://shorewall.net/
http://shorewall.net/shorewall_setup_guide.htm
Andvänder du ipmasq tillsammans med shorewall, eller är det antingen eller?
Som det ser ut just nu så fungerar alla portar utåt för mig, har jag skapat en connection så kommer den igenom.
Men portar som ska forwardas till min server från utsidan har jag inte fått igång än.
Dock hittade jag den utmärkta funktionen med local dns adresser i dnsmasq :D
Så jag kommer åt allt om jag sitter på lanet, men inte utifrån internet som har med brandväggen att göra.
Senast redigerad av 1 sund, redigerad totalt 12 gånger.
Användarvisningsbild
sund
Inlägg: 123
Blev medlem: 02 sep 2006, 15:22
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Kumla

SV: Firewall fråga.

Inlägg av sund »

Gaah va frustrerande.

Kör fortfarande ipmasq, men låter ett script ifrån http://easyfwgen.morizot.net/gen/ sköta iptables nu.

Kommer fortfarande inte igenom från utsidan till insidan  :'(
Det enda jag kommer åt är själva routern, så portforwarding tar inte som det ska.

Ni får gärna kika på scriptet och komma med förslag.

http://paste.ubuntu-nl.org/40556/

Det jag försökt i oändlighet att mixtra med är INPUT , tcp_inbound , FORWARD och PREROUTING kedjorna, men utan lycka.
Senast redigerad av 1 sund, redigerad totalt 13 gånger.
Användarvisningsbild
maths57
Inlägg: 2911
Blev medlem: 22 jun 2007, 15:10
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

SV: Firewall fråga.

Inlägg av maths57 »

Rätta mig om jag har fel:
* All utgående trafik fungerar och du får det du begär utifrån.
* Kontakt mellan maskinerna inom LAN.
* Ingen kontakt utifrån till servern.

Man skulle kunna tänka sig att det är fel på inställningen som dirigerar trafiken genom routern till servern.
$IPT -A FORWARD -p tcp -i $INET_IFACE --destination-port 80 --destination 13.37.0.2 -j ACCEPT
$IPT -t nat -A PREROUTING -p tcp -i $INET_IFACE --destination-port 80:80 -j DNAT --to-destination 13.37.0.2:80
$IPT -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
Det märkliga är att du på två ställen anger en fast IP (13.37.0.2) och ett med maskerad.
Användarvisningsbild
sund
Inlägg: 123
Blev medlem: 02 sep 2006, 15:22
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Kumla

SV: Firewall fråga.

Inlägg av sund »

maths57 skrev: Rätta mig om jag har fel:
* All utgående trafik fungerar och du får det du begär utifrån.
* Kontakt mellan maskinerna inom LAN.
* Ingen kontakt utifrån till servern.

Man skulle kunna tänka sig att det är fel på inställningen som dirigerar trafiken genom routern till servern.
$IPT -A FORWARD -p tcp -i $INET_IFACE --destination-port 80 --destination 13.37.0.2 -j ACCEPT
$IPT -t nat -A PREROUTING -p tcp -i $INET_IFACE --destination-port 80:80 -j DNAT --to-destination 13.37.0.2:80
$IPT -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
Det märkliga är att du på två ställen anger en fast IP (13.37.0.2) och ett med maskerad.
Exakt så som du säger är det, allt funkar förutom forwarding.

Att jag har skrivit som jag gort är för att jag inte vet riktigt om man gör forwardingreglen i FORWARD eller PREROUTING.
Har hittat exempel där vissa andvänder ena och vise versa  :-X

här tex hittade jag ett sett att skriva det på

http://wiki.kartbuilding.net/index.php/Iptables_forward
Användarvisningsbild
maths57
Inlägg: 2911
Blev medlem: 22 jun 2007, 15:10
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

SV: Firewall fråga.

Inlägg av maths57 »

Din postrouting regel ser ut så här
$IPT -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
Men på den där andra sidan ser den ut så här
iptables -t nat -A POSTROUTING -d 10.0.0.1 -j MASQUERADE
Du har en växel -o medan den andra har en växel -d. Testa att ändra.
Användarvisningsbild
sund
Inlägg: 123
Blev medlem: 02 sep 2006, 15:22
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Kumla

SV: Firewall fråga.

Inlägg av sund »

Kod: Markera allt

$IPT -t nat -A POSTROUTING -d $INET_IFACE -j MASQUERADE
eth0 isnt a networks address.

Kod: Markera allt

$IPT -t nat -A POSTROUTING -d "mitt ip på eth0" -j MASQUERADE
vart ingen skillnad :(

Jag skulle ge min högra arm för att få veta rätt å slätt hur man från dator 1 forwardar vidare all trafik på en viss port till dator 2 på samma port.
Dock så kanske det har å göra med att dator 1 kör Nat imellan 2 interface också. men endå.
Användarvisningsbild
webaake
Inlägg: 3962
Blev medlem: 09 maj 2007, 09:46
OS: Xubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

SV: Firewall fråga.

Inlägg av webaake »

Kör sysctl -a i terminalen och kolla att du har alla moduler igång:

# Unless you have kernel module auto-loading disabled, you should not
# need to manually load each of these modules.  Other than ip_tables,
# ip_conntrack, and some of the optional modules, I've left these
# commented by default.  Uncomment if you have any problems or if
# you have disabled module autoload.  Note that some modules must
# be loaded by another kernel module.

# core netfilter module
/sbin/modprobe ip_tables

# the stateful connection tracking module
/sbin/modprobe ip_conntrack

# filter table module
# /sbin/modprobe iptable_filter

# mangle table module
# /sbin/modprobe iptable_mangle

# nat table module
# /sbin/modprobe iptable_nat

# LOG target module
# /sbin/modprobe ipt_LOG

# This is used to limit the number of packets per sec/min/hr
# /sbin/modprobe ipt_limit

# masquerade target module
# /sbin/modprobe ipt_MASQUERADE

# filter using owner as part of the match
# /sbin/modprobe ipt_owner

# REJECT target drops the packet and returns an ICMP response.
# The response is configurable.  By default, connection refused.
# /sbin/modprobe ipt_REJECT

# This target allows packets to be marked in the mangle table
# /sbin/modprobe ipt_mark

# This target affects the TCP MSS
# /sbin/modprobe ipt_tcpmss

# This match allows multiple ports instead of a single port or range
# /sbin/modprobe multiport

# This match checks against the TCP flags
# /sbin/modprobe ipt_state

# This match catches packets with invalid flags
# /sbin/modprobe ipt_unclean

# The ftp nat module is required for non-PASV ftp support
/sbin/modprobe ip_nat_ftp

# the module for full ftp connection tracking
/sbin/modprobe ip_conntrack_ftp

# the module for full irc connection tracking
/sbin/modprobe ip_conntrack_irc


Kanske nån saknas?
Xubuntu på flera maskiner. Men inte Unity!
Mer Terminalanvändande i Ubuntu vore bra. Och Xfce. Och Mate.
Användarvisningsbild
sund
Inlägg: 123
Blev medlem: 02 sep 2006, 15:22
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Kumla

SV: Firewall fråga.

Inlägg av sund »

aktiverade de som jag andvänd i vissa regler, som masquerade och dnat.

gorde ingen skillnad, men nu körs dom iaf.
Användarvisningsbild
webaake
Inlägg: 3962
Blev medlem: 09 maj 2007, 09:46
OS: Xubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

SV: Firewall fråga.

Inlägg av webaake »

Har du deaktiverat ipmasq? Iptables gör allt du behöver genom scriptet.
Xubuntu på flera maskiner. Men inte Unity!
Mer Terminalanvändande i Ubuntu vore bra. Och Xfce. Och Mate.
Användarvisningsbild
sund
Inlägg: 123
Blev medlem: 02 sep 2006, 15:22
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Kumla

SV: Firewall fråga.

Inlägg av sund »

jodå jag stoppar den innan jag laddar in scriptet.
Användarvisningsbild
webaake
Inlägg: 3962
Blev medlem: 09 maj 2007, 09:46
OS: Xubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

SV: Firewall fråga.

Inlägg av webaake »

JAg har jämfört min och din brandvägg lite mer nu ( min är också genererad på samma ställe) och du har inte lagt till de öppnade portana i 'kedjorna' (chains).

Mitt tips är att stryka detta med Masquerade, och köra typ så här istället;
Öppnad porten:
$IPT -A udp_inbound -p UDP -s 0/0 --destination-port 29900 -j ACCEPT
$IPT -A tcp_inbound -p TCP -s 0/0 --destination-port 29900 -j ACCEPT
Forward:
$IPT -A FORWARD -p udp -i $INET_IFACE --destination-port 29900 \
        --destination xxx.xxx.xxx.xxx -j ACCEPT
$IPT -A FORWARD -p tcp -i $INET_IFACE --destination-port 29900 \
        --destination xxx.xxx.xxx.xxx -j ACCEPT

Detta är alla rader i min firewall för att öppna port 29900 och skicka all trafik på den till en viss dator i mitt lokala nätverk. Detta funkar fint med ett stort antal portar för spel och P2p m m.

Ur ditt script:
# User-Specified Chains
#
# Create user chains to reduce the number of rules each packet
# must traverse.

echo "Create and populate custom rule chains ..."
.....
# Used for UDP packets inbound from the Internet
$IPT -N udp_inbound

# Used to block outbound UDP services from internal network
# Default to allow all
$IPT -N udp_outbound

# Used to allow inbound services if desired
# Default fail except for established sessions
$IPT -N tcp_inbound

# Used to block outbound services from internal network
# Default to allow all
$IPT -N tcp_outbound
......

JAg är ingen guru på detta men alla trafik går i chains i detta script och är inte porten/portarna tillåtna i respektive kedja så blir det svårt, tror jag. Dessutom har jag inga alls masquerade-rader.
Lycka till!
Senast redigerad av 1 webaake, redigerad totalt 14 gånger.
Xubuntu på flera maskiner. Men inte Unity!
Mer Terminalanvändande i Ubuntu vore bra. Och Xfce. Och Mate.
Användarvisningsbild
webaake
Inlägg: 3962
Blev medlem: 09 maj 2007, 09:46
OS: Xubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

SV: Firewall fråga.

Inlägg av webaake »

För NAT/Masq (dela ip) är nog detta tillräckligt:

###############################################################################
#
# POSTROUTING chain
#

$IPT -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE

###############################################################################
Såvitt jag förstår säger denna rad att allt som går ut (-o) på WAN-interfacet skall maskeras = ges samma ip som det externa även om det kommer från en annan dator i det interna nätverket. Så, som sagt, du borde kunna stryka ALLA individuella rader med Masquerade.

DU! Jag är tacksam för dina frågor! De får mig att förstå min egen brandvägg bättre!
Xubuntu på flera maskiner. Men inte Unity!
Mer Terminalanvändande i Ubuntu vore bra. Och Xfce. Och Mate.
Användarvisningsbild
sund
Inlägg: 123
Blev medlem: 02 sep 2006, 15:22
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Kumla

SV: Firewall fråga.

Inlägg av sund »

hehe kanoners :) ska kika på det när jag kommer hem.
Användarvisningsbild
sund
Inlägg: 123
Blev medlem: 02 sep 2006, 15:22
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Kumla

SV: Firewall fråga.

Inlägg av sund »

Jag har nu aktiverat alla moduler förutom 2 som inte verkade relevanta.

och kör på INPUT nu

Kod: Markera allt

# Accept Established Connections
$IPT -A INPUT -p ALL -i $INET_IFACE -m state --state ESTABLISHED,RELATED \
     -j ACCEPT

# Route the rest to the appropriate user chain
$IPT -A INPUT -p TCP -i $INET_IFACE -j tcp_inbound
$IPT -A INPUT -p UDP -i $INET_IFACE -j udp_inbound
$IPT -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
En http request utifrån är inte Established/related, så den hoppar över det och routas vidare till tcp_inbound.

Den första regeln här i tcp_inbound är

Kod: Markera allt

# Web Server
$IPT -A tcp_inbound -p TCP -s 0/0 --source-port 80 --destination-port 80 \
	-j ACCEPT
Paketet skickas då till FORWARD chain om någon regler matchas för port 80 som den ska skicka ut paketet på.

Kod: Markera allt

# Port Forwarding is enabled, so accept forwarded traffic

$IPT -A FORWARD -p tcp -i $INET_IFACE -o $LOCAL_IFACE --destination-port 80 \
        --destination 13.37.0.2 -j tcp_inbound
Som säger, vill du ut på port 80 med protokollet tcp så ska du ut på det lokala interfacet och till datorn med ip't 13.37.0.2

Och som slutkläm så kläs paketet source ip om i MASQUERADE i kedjan POSTROUTING, som gäller för alla paket som kommer ifrån vilken plats som helst och vill in på det lokala interfacet på routern.

Kod: Markera allt

# POSTROUTING chain

$IPT -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
Dock tycker jag denna är lite skumm, den anger att adresser ska översättas när dom går ut igenom mitt internet interface på routern, vilket funkar, annars skulle jag inte kunna komma åt internet.

Men det finns ingen regel som säger att om du ska ut på det LOKALA interfacet så ska också den adressen översättas.
Kan det vara här som det är vajsing? att webservern får en skarp adress tex 193.11.11.11 och webserverns enda egna address som den känner till och kan skicka tillbaka till är 13.37.0.1 , och droppar då paketet?

Har provat så många varianter av portforwarding nu så jag börjar misstänka att adresser utifrån inte översätts ordentlig, men jag har inga bevis för detta dock, bara en fundering.

mitt Nat table ser ut som följer.

Kod: Markera allt

sudo iptables -t nat -Lnv

Chain PREROUTING (policy ACCEPT 1611 packets, 197K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   10  1419 MASQUERADE  0    --  *      eth0    0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 8 packets, 1299 bytes)
 pkts bytes target     prot opt in     out     source               destination 
Mitt interna interface emot det lokala lanet är eth1 och eth0 är riktat utåt emot min ISP.

Edit: läste lite på http://www.lysator.liu.se/~kjell-e/tekla/linux/security/iptables/avancerad-netfilter.html
Och provade hans sätt att forwarda, och då fick jag plötsligt upp porten iaf, man måste alltså översätta inkommande trafik på en viss port med PREROUTING, nu står webläsaren å tuggar lite iaf så porten är uppe , men trafiken hittar inte fram fortfarande.
Senast redigerad av 1 sund, redigerad totalt 15 gånger.
Användarvisningsbild
sund
Inlägg: 123
Blev medlem: 02 sep 2006, 15:22
OS: Ubuntu
Utgåva: 14.04 Trusty Tahr LTS
Ort: Kumla

SV: Firewall fråga.

Inlägg av sund »

Då var det löst.

Efter mycke speckulerande så kom jag fram till att scriptet som genererades fungerar utmärkt, dock så vore det trevligt om dom lade till den fina funktionen att man kan nå sin lokala webserver ifrån den publika dns'en , jag får skriva in min privata dns som cirkulerar i lanet nu.

Men hey! det funkar med port forwarding!
Användarvisningsbild
webaake
Inlägg: 3962
Blev medlem: 09 maj 2007, 09:46
OS: Xubuntu
Utgåva: 22.04 Jammy Jellyfish LTS

SV: Firewall fråga.

Inlägg av webaake »

Kanon!
Xubuntu på flera maskiner. Men inte Unity!
Mer Terminalanvändande i Ubuntu vore bra. Och Xfce. Och Mate.
Skriv svar

Återgå till "Nätverk, säkerhet och servrar"