Sziasztok!
Van egy feladat, amit nem tudok megoldani: egy tűzfal mögött lévő levelezőszerveren kellene az imap fiókokat elérni.
A tűzfalban szerepel az
iptables -t nat -A PREROUTING -p tcp --dport 993 -j DNAT --to-destination 192.168.0.1
sor, így kívülről tökéletesen működik a dolog, azonban ahogy a belső hálóra kerül a gép, időtúllépéssel elszáll.
A levelező kliensekben a külső fix ip szerepel, mint kiszolgáló.
Alapból minden lánc DROP-ra van állítva.
Mit kellene engedélyeznem, vagy átírnom, hogy működjön?
Tamás
- 1864 megtekintés
Hozzászólások
Esetleg a 995, és a 143 portokat is!?
- A hozzászóláshoz be kell jelentkezni
Ezekre miért lenne szükség? Kívülről sincsenek engedélyezve...
- A hozzászóláshoz be kell jelentkezni
Most esett le, IMAP TLS/SSL -akarsz. Akkor nincs szükség rá, és ötletem sincs. Loggolj, aztán csak lesz valami info...
- A hozzászóláshoz be kell jelentkezni
Sejtésem szerint a gond valahol ott van, hogy a ppp0 címe a megadott fix ip cím, így az ide érkező csomagokat automatikusan továbbítja a megadott ip-re, azonban belső hálóról a csomag először az eth1-re esik be, ami 192.168.0.111, így azt előbb megpróbálja továbbítani a ppp0-ra, onnan viszont nem megy tovább a csomag...
- A hozzászóláshoz be kell jelentkezni
feltetelezem az input lancon a fiter tablaban kinyitottad a megfelelo portokat. Ha igen akkor nincs otletem.
- A hozzászóláshoz be kell jelentkezni
Max a forward láncra lehet szükség, mivel a tűzfal/proxy mögött vannak mindketten, kintről pedig nincs gond.
- A hozzászóláshoz be kell jelentkezni
az osszes iptables rule-t nem tudnad bekuldeni igy sotetbe eleg nehez lovoldozni?
Milenne ha egy:
iptables -t nat -I PREROUTING -i -p tcp --destination --dport 993 -j DNAT --to-destination 192.168.0.1
rule-t hozzaadnal?
- A hozzászóláshoz be kell jelentkezni
#! /bin/sh
### BEGIN INIT INFO
# Provides: firewall
# Required-Start:
# Required-Stop:
# Default-Start: 3
# Default-Stop: 0 1 2 6
# Description: Firewall
### END INIT INFO
case "$1" in
start)
################
# Flush chains #
################
iptables -F
iptables --delete-chain
##########################
# Load conntrack module #
##########################
modprobe ip_tables
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
##################
# Default policy #
##################
# Flush
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
iptables -t nat -F OUTPUT
iptables -F
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
######################
# Localhost enabled #
######################
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
##############
# Masquerade #
##############
iptables -t nat -A POSTROUTING -o ppp+ -j MASQUERADE
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
###############
# Invalid SYN #
###############
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# syn-flood vedelem
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
# Titkos port scan
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
# DoS elleni vedelem
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
###############
# INPUT CHAIN #
###############
iptables -A INPUT -p icmp -j ACCEPT
# ESTABLISHED
iptables -A INPUT -p all -i eth1 -s 192.168.0.0/24 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp -m multiport --dport 20,21,22,25,53,80,110,123,143,443,465,993,995,10000 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i ppp0 -p udp --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i ppp0 -p udp --dport 1194 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 614 -m state --state NEW -j ACCEPT
################
# OUTPUT CHAIN #
################
iptables -A OUTPUT -j ACCEPT -p all
###################
# Port forwarding #
###################
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp -m multiport --dport 20,21,22,43,53,110,123,143,443,614,3389,6881:6999,53062 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p udp -m multiport --dport 20,21,53,110,123,143,443,1194 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ppp+ -p tcp --dport 5800:5900 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ppp+ -p udp --dport 5800:5900 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#
# Spektra banki program portjai: 1523,8101,8105 KHElectra port: 5040
iptables -A FORWARD -p tcp -m multiport --dport 1523,5040,8101,8105,3389,3390,5500,5800,5900 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp -m multiport --dport 993,6000:6004 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p all -d xxx.xxx.xxx.xxx -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#
iptables -t nat -A PREROUTING -i ppp+ -p tcp --dport 5631 -j DNAT --to-destination 192.168.0.30
iptables -t nat -A PREROUTING -i ppp+ -p udp --dport 5632 -j DNAT --to-destination 192.168.0.30
iptables -t nat -A PREROUTING -i ppp+ -p tcp --dport 5900 -j DNAT --to-destination 192.168.0.100
iptables -t nat -A PREROUTING -i ppp+ -p udp --dport 5900 -j DNAT --to-destination 192.168.0.100
iptables -t nat -A PREROUTING -i ppp+ -p tcp --dport 22 -j DNAT --to-destination 192.168.0.1
# iptables -t nat -A PREROUTING -i ppp+ -p tcp --dport 25 -j DNAT --to-destination 192.168.0.1
iptables -t nat -A PREROUTING -p tcp --dport 993 -j LOG
# iptables -t nat -A POSTROUTING -p tcp --dport 993 -j LOG
iptables -t nat -A PREROUTING -p tcp --dport 993 -j DNAT --to-destination 192.168.0.1
# iptables -t nat -A PREROUTING -i ppp+ -p tcp -d xxx.xxx.xxx.xxx --dport 993 -j DNAT --to-destination 192.168.0.1
# iptables -t nat -A PREROUTING -i eth1 -p tcp -d xxx.xxx.xxx.xxx --dport 993 -j DNAT --to-destination 192.168.0.1
iptables -t nat -A PREROUTING -i ppp+ -p udp --dport 1194 -j DNAT --to-destination 192.168.0.1
iptables -t nat -A PREROUTING -p udp --dport 1194 -j DNAT --to-destination 192.168.0.1
########################
# Enable IP Forwarding #
########################
echo 1 > /proc/sys/net/ipv4/ip_forward
;;
stop)
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
;;
restart)
/etc/init.d/firewall stop
/etc/init.d/firewall start
;;
esac
- A hozzászóláshoz be kell jelentkezni
Belinkeltem, de engem inkább az érdekelne, hogyan kellene működnie.
- A hozzászóláshoz be kell jelentkezni
elso tippem:
iptables -A FORWARD -p tcp --destination 192.168.0.0/24 -m multiport --sport 993 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
- A hozzászóláshoz be kell jelentkezni
Köszönöm, holnap reggel kiderül javít-e valamit a helyzeten.
- A hozzászóláshoz be kell jelentkezni
Na megoldotta a probelmat?
- A hozzászóláshoz be kell jelentkezni
Sajnos nem, de ma délután megint ennél a cégnél leszek, talán többre jutok.
- A hozzászóláshoz be kell jelentkezni
Ha jól értem:
Kliens (külső)----+ Ahol a levelező kliens a 192.168.0.1
| a külső kliensek valami pub (pl. internet)
+----T L a belső kliensek valami privát tartomány
ű e
z----v A külső kliensről működik
f e A belsőről nem működik
a l
+----l e
| z
Kliens (belső)----+ ő
A tűzfalban nincs olyan szabály ami esetleg felülbírálja az általad írt szabályt? De elsősorban az érdekelne, hogy jól értem a problémádat (jó-e az ábra).
- A hozzászóláshoz be kell jelentkezni
Na, az ASCII grafika nem igazán jó :), annyi a sok-sok szóköznek, de a fene fog  -ket írni. Szóban, röviden. A tűzfal egyik lábán (külső) lévő kliensről megy az elérés, és a belső lábán lévőről nem?
- A hozzászóláshoz be kell jelentkezni
Mindazonáltal vtommy fentebbi felvetése igencsak érdekes. Ha a belső kliensednek is a tűzfal külső címe van megadva, az szerintem sem igazán jó.
- A hozzászóláshoz be kell jelentkezni
hat szerintem ennek csupan kenyelmi okai vannak. Sajat email server mobil emberek.
Outlook/thunderbird/akarmimas ne kelljen kulon bejovo/kimeno servert allitgatni attol fuggoen hogy hol vannak. Lehetne trukkozni, hogy dns servert a lan-ra amit csak az 192.168.0.0/24 erhet el es o majd megmondja a helyes belso cimet de valoszinu, hogy az mar tul sok macera.
De ez kezenfekvobb megoldas.
Engem inkabb az erdekelne, hogy a problema megoldodott-e.
- A hozzászóláshoz be kell jelentkezni
vpn mehet kivulrol is es belulrol is
udv Zoli
- A hozzászóláshoz be kell jelentkezni
A vpn-nel ugyanez a helyzet, belülről nem megy, mivel a külső fix ip van megadva ott is, hiszen távolról ezt használják.
- A hozzászóláshoz be kell jelentkezni
Pontosan ez a helyzet, ne kelljen a notebookon semmilyen állítgatást tenni, az nem a felhasználó dolga, hanem az enyém.
- A hozzászóláshoz be kell jelentkezni
Gondold végig a csomagok útját a szerverig és vissza:
belső kliens -> tűzfal -> belső szerver
belső szerver -> belső kliens
IP címekkel tán jobban látszik:
kliens által küldött csomag: src IP = 192.168.0.x, dst IP = publikus IP
kliens által kapott csomag: src IP = 192.168.0.1, dst IP = 192.168.0.x
IP szinten szétesett a kapcsolat, természetesen nem működik. Kell egy SNAT a belső kliensekre, hogy a csomagok a szerver felől megjárják a tűzfalat és az vissza tudja
írogatni az IP címeket.
- A hozzászóláshoz be kell jelentkezni
Biztos vagyok benne, hogy ez lesz a megoldás, csak nem tudom a szabályt leírni hozzá :(
- A hozzászóláshoz be kell jelentkezni
Talán valami ilyesmi lesz a megoldás, délután kiderül:
# POSTROUTING statements for 1:1 NAT
# (Connections originating from the home network servers)
iptables -t nat -A POSTROUTING -s 192.168.1.100 -o eth0 -j SNAT --to-source 97.158.253.26
# POSTROUTING statements for Many:1 NAT
# (Connections originating from the entire home network)
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT -o eth0 --to-source 97.158.253.29
- A hozzászóláshoz be kell jelentkezni
Lényegében a következő szabályra van szükséged:
SNAT a tűzfal külső IP címére (vagy egy másik privát IP cím blokkra, hogy a szerveren IP cím alapon meg tudd különböztetni a tűzfalról magáról és a belső kliensekről jövő hívásokat - ha ez érdekes) azon csomagokra, amelyeknek a forráscíme a belső klienseké és a belső szerver felé néző interfészen mennek ki a tűzfalról.
Ha a fönti szabályok ezt jelentik, akkor OK.
- A hozzászóláshoz be kell jelentkezni
A fenti szabályok egy talált iptables scriptből lettek kivágva, de saját hálózatra átírva tökéletesen MŰKÖDIK! :)
Köszönöm mindenkinek a segítséget!
- A hozzászóláshoz be kell jelentkezni