03 Juni
2011

Citrix Behind IPTables

Setup:

Internal users menggunakan SNAT untuk akses ke Internet

eth0 is the inside network (LAN)
eth1 is the outside network (Internet)
UnAssign=1024:65535 is client port
IP_OUTSIDE is the outside IP trying to access the Citrix server
CTX_PORT="1494" is Citrix incomming port
IP_Citrix="ip.addr.citrix_int" is the Private IP of Citrix server (LAN)
IP_EXT="ip.addr.citrix_ext" is the Public IP of Citrix server (eth1)

Kita asumsikan semua akses dari internal network (LAN) diterima

$IPTABLES -A INPUT -i eth0 -j ACCEPT
$IPTABLES -A OUTPUT -o eth0 -j ACCEPT
$IPTABLES -A FORWARD -i eth0 -j ACCEPT

Tabel Filter berikut ini digunakan untuk menerima user Citrix yang masuk dari Internet:

# Hilangkan tanda komentar bila ingin memantau debug yang terjadi
# $IPTABLES -A INPUT -j LOG -s $IP_OUTSIDE --log-level $debug \
#    --log-prefix "INPUT -s IP_OUTSIDE "
# $IPTABLES -A OUTPUT -j LOG -d $IP_OUTSIDE --log-level $debug \
#    --log-prefix "OUTPUT -d IP_OUTSIDE "
# $IPTABLES -A FORWARD -j LOG -s $IP_OUTSIDE --log-level $debug \
#    --log-prefix "FORWARD -s IP_OUTSIDE "
$IPTABLES -t nat -A PREROUTING -i eth1 -p tcp --syn -s $IP_OUTSIDE \
     --sport $UnAssign -d $IP_EXT --dport $CTX_PORT \
     -j DNAT -d $IP_Citrix
$IPTABLES -A INPUT -i eth1 -p tcp --syn -s $IP_OUTSIDE \
     --sport $UnAssign -d $IP_EXT --dport $CTX_PORT -j ACCEPT
$IPTABLES -A OUTPUT -o eth1 -p tcp -s $IP_EXT --sport $CTX_PORT \
     --dport $UnAssign -j ACCEPT
$IPTABLES -A FORWARD -i eth1 -p tcp --syn -s $IP_OUTSIDE \
     --sport $UnAssign -d $IP_Citrix --dport $CTX_PORT -j ACCEPT

Jangan lupa untuk mengijinkan internal user (LAN) untuk mengakses internet:

   $IPTABLES -t nat -A POSTROUTING -o eth1 -j MASQUERADE
   $IPTABLES -A FORWARD -i eth0 -j ACCEPT

Register your own domain as AddOn domain with Free DNS

Di Terbitkan Oleh Winston Sahusilawane Pada Rubrik Linux : 03 Juni, 2011 |