Windows elérés Linux tűzfalon keresztül

Fórumok

Windows elérés Linux tűzfalon keresztül

Hozzászólások

Hali!

Egy cég olyan feladattal keresett meg, hogy már működő Windows
alapú rendszerüket egy Linux-ot futtató géppel védenék.
A belső hálón néhány gép kapcsolódik egy Windows szerverhez, ami elé kerülne a Linuxos masina. Ezzel semmi gond, de a Windows szerveren olyan alkalmazás fut, amit egy szoftverfejlesztő cég távolról menedzsel. Nekik arra van szükségük, hogy néhány titkosított porton elérjék a Windows szervert. A szoftverfejlesztő cég fix IP címmel rendelkezik. Az jó megoldás -e ha a meghatározott IP cím felől érkező kéréseket forwardolom a belső háló windows szervere felé? A titkosított csatorna nem kavarhat be ebben az esetben?

[quote:c883eb551c="killgates"]Hali!

Egy cég olyan feladattal keresett meg, hogy már működő Windows
alapú rendszerüket egy Linux-ot futtató géppel védenék.
A belső hálón néhány gép kapcsolódik egy Windows szerverhez, ami elé kerülne a Linuxos masina. Ezzel semmi gond, de a Windows szerveren olyan alkalmazás fut, amit egy szoftverfejlesztő cég távolról menedzsel. Nekik arra van szükségük, hogy néhány titkosított porton elérjék a Windows szervert. A szoftverfejlesztő cég fix IP címmel rendelkezik. Az jó megoldás -e ha a meghatározott IP cím felől érkező kéréseket forwardolom a belső háló windows szervere felé? A titkosított csatorna nem kavarhat be ebben az esetben?

Hacsak nem akarod oket conntrackelni (a'la ftp, dcc, ...), nem latom mit kavarna be.

nem latom mit kavarna be.

Igazából én sem, de nem túl sok munkáért jó pénzt adnak és nem szeretném ha valami gebasz lenne. :)

titkosított porton? az mit jelent? olyan nem létezik. Egy sima port forward megodlja a problemádat. Ebben az esetben úgy fogják látni a windows-os gépet, mintha közvetlenül ő lenne azon a porton keresztül az internetre kapcsolva..

Hat ez szanalmas. Es ilyen emberket keresnek meg cegek?
Mondjuk latszik az orszagon...

esetleg vpn??
amugy meg igen itt kerdes hogy milyen protokol sima tcp vagy vissza is pofazik ha kel ha nem...

[quote:e2049c93e2="killgates"]Hali!

Egy cég olyan feladattal keresett meg, hogy már működő Windows
alapú rendszerüket egy Linux-ot futtató géppel védenék.
A belső hálón néhány gép kapcsolódik egy Windows szerverhez, ami elé kerülne a Linuxos masina. Ezzel semmi gond, de a Windows szerveren olyan alkalmazás fut, amit egy szoftverfejlesztő cég távolról menedzsel. Nekik arra van szükségük, hogy néhány titkosított porton elérjék a Windows szervert. A szoftverfejlesztő cég fix IP címmel rendelkezik. Az jó megoldás -e ha a meghatározott IP cím felől érkező kéréseket forwardolom a belső háló windows szervere felé? A titkosított csatorna nem kavarhat be ebben az esetben?

Én csináltam pont ilyet, de a portszámót a windózos fejlesztőknek meg kellett adniuk. Különben honnan tudnád, hogy mit kell átdobni a windózos szerverre. Ha kell megtudom adni a tűzfalscriptet - iptables alapú.

üdv: meditor

Na, előkotortam neked, ezzel el tudsz indulni.

Mejegyzés: a "/usr/local/bin/rc_gb.sh" egy üzenetkiíró
script, nyugodtan kiszedegetheted a rá való hivatkozásokat.
---------------------------------------------------------

#!/bin/sh
# /etc/rc.d/rc.firewall start/stop firewall
#
# Meditor Digital Startegies since 1989.
# A.D. 2005.

WORLD_IP="xxx.xxx.xxx.xxx"
MY_NETWORK="192.168.5.0/24"
WIN_SERVER_IP="192.168.5.15"
IN_PRE="iptables -A INPUT -m state -p tcp --dport"
IN_POST="! --state INVALID -j ACCEPT"
OUT_PRE="iptables -A OUTPUT -m state -p tcp --sport"
OUT_POST="--state ESTABLISHED,RELATED -j ACCEPT"

EXTDEV=eth0
INTDEV=eth1

firewall_start1() {
echo -n " Starting firewall - section: #1"

if test -x /usr/sbin/iptables
then
#1 delete all

iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# set loglevel: 1 = verbose
#iptables -A INPUT -s 192.168.2.3/24 -j LOG --log-prefix meditor_fwI_: --log-level 2
#iptables -A OUTPUT -d 192.168.2.3/24 -j LOG --log-prefix meditor_fwO_: --log-level 2

#2 enable ping, local interface, MY_NETWORK and DNS_UDP

iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A INPUT -s 127.0.0.1 -i lo -j ACCEPT
iptables -A OUTPUT -d 127.0.0.1 -o lo -j ACCEPT
iptables -A INPUT -s $MY_NETWORK -i $INTDEV -j ACCEPT
iptables -A OUTPUT -d $MY_NETWORK -o $INTDEV -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

/usr/local/bin/rc_gb.sh good

else
/usr/local/bin/rc_gb.sh skip
/usr/local/bin/rc_gb.sh Not_exist:_/usr/sbin/iptables. -n
echo "Warning: /usr/sbin/iptables not exist!"> /etc/rc.d/rc.fw.status
fi
}

firewall_start2() {
echo -n " Starting firewall - section: last"

if test -x /usr/sbin/iptables
then

#BASIC enable ftp:ssh, http, dns, smtp, pop3
$IN_PRE 20:25 $IN_POST
$OUT_PRE 20:25 $OUT_POST
$IN_PRE 53 $IN_POST
$OUT_PRE 53 $OUT_POST
$IN_PRE 80 $IN_POST
$OUT_PRE 80 $OUT_POST
$IN_PRE 110 $IN_POST
$OUT_PRE 110 $OUT_POST

$IN_PRE 59 $IN_POST
$OUT_PRE 59 $OUT_POST

# SSL
$IN_PRE 443 $IN_POST
$OUT_PRE 443 $OUT_POST
$IN_PRE 465 $IN_POST
$OUT_PRE 465 $OUT_POST
$IN_PRE 989:995 $IN_POST
$OUT_PRE 989:995 $OUT_POST

#HIGH
$IN_PRE 1024:65535 $IN_POST
$OUT_PRE 1024:65535 $OUT_POST

#Allow all connections OUT and only related ones IN
iptables -A FORWARD -i $EXTDEV -o $INTDEV -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $INTDEV -o $EXTDEV -j ACCEPT

#enable MASQUERADING
iptables -t nat -A POSTROUTING -j SNAT --to-source $WORLD_IP

#forwarding to winserver - vnc at first
iptables -A INPUT -p tcp --dport 5900:5910 -i $EXTDEV -j ACCEPT
iptables -A PREROUTING -t nat -p tcp -d $WORLD_IP --dport 5900:5910 -j DNAT --to $WIN_SERVER_IP:5900:5910
iptables -A FORWARD -p tcp -d $WIN_SERVER_IP --dport 5900:5910 -o $INTDEV -j ACCEPT
iptables -A POSTROUTING -t nat -p tcp -d $WIN_SERVER_IP --dport 5900:5910 -s $MY_NETWORK -j SNAT --to $WORLD_IP

#forwarding to winserver - telnet and freinds
iptables -A INPUT -p tcp --dport 23:25 -i $EXTDEV -j ACCEPT
iptables -A PREROUTING -t nat -p tcp -d $WORLD_IP --dport 23:25 -j DNAT --to $WIN_SERVER_IP:23:25
iptables -A FORWARD -p tcp -d $WIN_SERVER_IP --dport 23:25 -o $INTDEV -j ACCEPT
iptables -A POSTROUTING -t nat -p tcp -d $WIN_SERVER_IP --dport 23:25 -s $MY_NETWORK -j SNAT --to $WORLD_IP

#forwarding to winserver - some low port
iptables -A INPUT -p tcp --dport 800:850 -i $EXTDEV -j ACCEPT
iptables -A PREROUTING -t nat -p tcp -d $WORLD_IP --dport 800:850 -j DNAT --to $WIN_SERVER_IP:800:850
iptables -A FORWARD -p tcp -d $WIN_SERVER_IP --dport 800:850 -o $INTDEV -j ACCEPT
iptables -A POSTROUTING -t nat -p tcp -d $WIN_SERVER_IP --dport 800:850 -s $MY_NETWORK -j SNAT --to $WORLD_IP

#forwarding to winserver - 8080
iptables -A INPUT -p tcp --dport 8080 -i $EXTDEV -j ACCEPT
iptables -A PREROUTING -t nat -p tcp -d $WORLD_IP --dport 8080 -j DNAT --to $WIN_SERVER_IP:8080
iptables -A FORWARD -p tcp -d $WIN_SERVER_IP --dport 8080 -o $INTDEV -j ACCEPT
iptables -A POSTROUTING -t nat -p tcp -d $WIN_SERVER_IP --dport 8080 -s $MY_NETWORK -j SNAT --to $WORLD_IP

/usr/local/bin/rc_gb.sh good
/usr/local/bin/rc_gb.sh See_/etc/rc.d/rc.fw.status_for_firewall_setup. -n
iptables -L > /etc/rc.d/rc.fw.status

else
/usr/local/bin/rc_gb.sh skip
/usr/local/bin/rc_gb.sh Not_exist:_/usr/sbin/iptables. -n
echo "Warning: /usr/sbin/iptables not exist!"> /etc/rc.d/rc.fw.status
fi
}

# Stop IP packet forwarding:
firewall_stop() {
echo -n " Switch off firewall."

if test -x /usr/sbin/iptables
then
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -L > /etc/rc.d/rc.fw.status

/usr/local/bin/rc_gb.sh good
/usr/local/bin/rc_gb.sh Warning:_firewall_switched_off! -n

else
/usr/local/bin/rc_gb.sh skip
/usr/local/bin/rc_gb.sh Not_exist:_/usr/sbin/iptables. -n
echo "Warning: /usr/sbin/iptables not exist!"> /etc/rc.d/rc.fw.status
fi
}

# Restart IP packet forwarding:
firewall_restart() {
firewall_stop
sleep 1
firewall_start1
sleep 1
firewall_start2
}

##############################################
# Uncomment these three lines if you are in #
# testing mode and firewall make any trouble #
#firewall_stop #
#echo "Your firewall parameters is: $1 $2" #
#exit 0 #
##############################################

case "$1" in
'start') case "$2" in
'1')
firewall_start1
;;
'last')
firewall_start2
;;
*)
firewall_start1
firewall_start2
;;
esac
;;
'stop')
firewall_stop
;;
'restart')
firewall_restart
;;
*) echo "$0 start[section]|stop|restart"
esac

# end of firewall script

Hat ez szanalmas. Es ilyen emberket keresnek meg cegek?
Mondjuk latszik az orszagon...

Ez az, így van jól megmondtad...

Én csináltam pont ilyet, de a portszámót a windózos fejlesztőknek meg kellett adniuk. Különben honnan tudnád, hogy mit kell átdobni a windózos szerverre. Ha kell megtudom adni a tűzfalscriptet - iptables alapú.

Igen, persze, akkor rosszul fogalmaztam megadtak három portot, és ha ezekre a portokra érkezik kérés a szintén megadott ip cím felől akkor azokat a kéréseket kell átdobni a windows szervernek. És a windows szerver valamint a fejlsztők közötti adatcsere zajlik titkosítva .

A szkriptet köszi.