[Firehol-support] SNAT behaviour
Daniel L. Miller
dmiller at amfes.com
Tue Jul 19 23:40:39 BST 2005
Sure enough - using device aliases results in error messages. That's
not the answer.
Daniel L. Miller wrote:
> I'm not finding that example. In my case, I already defined eth1 -
> eth1:6 for various addresses.
>
> For some reason, I didn't think firehol would work with device aliases
> - that I had to use the base device name. I'm trying the aliases now
> to see what changes.
>
> Rick Marshall wrote:
>
>> this is an excellent howto on this - i think in the firehol examples.
>> it centres around creating secondary interfaces eth1:0 etc in your
>> case. i followed it for a setup and it worked very well.
>>
>> rick
>>
>> Daniel L. Miller wrote:
>>
>>> I'm puzzled by the behaviour I'm experiencing with SNAT. I have a
>>> group of static external IP's, that I'm trying to utilize for
>>> different purposes. I'd like to keep the IP(s) I use for external
>>> access from my LAN separate from the IP's I use for outside access
>>> to my internal services. So . . .
>>>
>>> version 5
>>> FIREHOL_LOG_MODE="ULOG"
>>>
>>> AMFESLAN_IF="eth0"
>>> AMFESLAN_LAN="192.168.0.0/24"
>>> AMFESLAN_IP="192.168.0.1"
>>> AMFESLAN_BCAST="192.168.0.255"
>>>
>>> AMFESEXT_IF="eth1"
>>> AMFESEXT_LAN="67.106.235.97/27"
>>> AMFESEXT_IP="67.106.235.126"
>>> AMFESEXT_BCAST="67.106.235.127"
>>>
>>> PROXY_IF="eth1"
>>> PROXY_LAN="67.106.235.124/27"
>>> PROXY_IP="67.106.235.124"
>>> PROXY_BCAST="67.106.235.127"
>>>
>>> BASTION_IP="192.168.0.2"
>>> ROUTER_IP="192.168.0.1"
>>>
>>> # provide Internet access for lan
>>> snat to "${PROXY_IP}" outface "${PROXY_IF}" src "${AMFESLAN_LAN}"
>>>
>>> # provide web services
>>> dnat to "${BASTION_IP}" inface "${AMFESEXT_IF}" dst "${AMFESEXT_IP}"
>>> proto tcp dport 993 log "forwarding imaps"
>>> dnat to "${BASTION_IP}" inface "${AMFESEXT_IF}" dst "${AMFESEXT_IP}"
>>> proto tcp dport 80 log "forwarding http"
>>>
>>> # bittorrent re-direct to one workstation
>>> dnat to "${DANIEL_IP}" inface "${PROXY_IF}" dst "${PROXY_IP}" proto
>>> tcp dport 6881:6889 log "forwarding bittorrent"
>>> dnat to "${DANIEL_IP}" inface "${AMFESEXT_IF}" dst "${AMFESEXT_IP}"
>>> proto tcp dport 6881:6889 log "forwarding bittorrent"
>>>
>>> # redirect for external addresses from internal network - this
>>> allows laptops to use the published imap address in and outside the lan
>>> snat to "${ROUTER_IP}" outface "${AMFESLAN_IF}" src
>>> "${AMFESLAN_LAN}" dst "${BASTION_IP}" proto tcp dport 143 log "src
>>> internal
>>> dnat to "${BASTION_IP}" inface "${AMFESLAN_IF}" dst "${AMFESEXT_IP}"
>>> proto tcp dport 143 log "dst internal re-dir"
>>> snat to "${ROUTER_IP}" outface "${AMFESLAN_IF}" src
>>> "${AMFESLAN_LAN}" dst "${BASTION_IP}" proto tcp dport 993 log "src
>>> internal
>>> dnat to "${BASTION_IP}" inface "${AMFESLAN_IF}" dst "${AMFESEXT_IP}"
>>> proto tcp dport 993 log "dst internal re-dir"
>>>
>>> server_bittorrent_ports="tcp/6881 tcp/6882 tcp/6883 tcp/6884
>>> tcp/6885 tcp/6886 tcp/6887 tcp/6888 tcp/6889"
>>> client_bittorrent_ports="default 6881 6882 6883 6884 6885 6886 6887
>>> 6888 6889"
>>>
>>> interface "${AMFESLAN_IF}" lan src "${AMFESLAN_LAN}"
>>> policy accept
>>>
>>> interface "${AMFESEXT_IF}" internet src not "${UNROUTABLE_IPS}
>>> ${AMFESLAN_LAN}" dst "${AMFESEXT_IP}"
>>> protection strong 100/sec 50
>>> # server ident reject with tcp-reset
>>> server smtp accept
>>> server smtps accept
>>> server submission accept
>>> server dcc accept log "DCC server"
>>> server ssh accept log "ssh"
>>> server ntp accept
>>> server ping accept
>>> client all accept
>>>
>>> interface "${PROXY_IF}" proxy src not "${UNROUTABLE_IPS}
>>> ${AMFESLAN_LAN}" dst "${PROXY_IP}"
>>> protection strong 100/sec 50
>>> client all accept
>>>
>>> router lan2amfesext inface "${AMFESLAN_IF}" outface "${AMFESEXT_IF}"
>>> src "${AMFESLAN_LAN}" dst not "${UNROUTABLE_IPS}"
>>> route all accept
>>>
>>> router lan2proxy inface "${AMFESLAN_IF}" outface "${PROXY_IF}" src
>>> "${AMFESLAN_LAN}" dst not "${UNROUTABLE_IPS}"
>>> route all accept
>>>
>>> router proxy2lan inface "${PROXY_IF}" outface "${AMFESLAN_IF}"
>>> route bittorrent accept
>>>
>>> router internet2lan inface "${AMFESEXT_IF}" outface "${AMFESLAN_IF}"
>>> protection strong 100/sec 50
>>> # route ident reject with tcp-reset
>>> route http accept
>>> route imaps accept
>>> route bittorrent accept
>>> route fpadmin accept
>>> route webmin accept
>>> route firebird accept
>>>
>>> The problem I'm having is that any client that connects to the
>>> Internet, appears to be connecting from my "${AMFESEXT_IP}" address,
>>> instead of the "${PROXY_IP}" address. Since the only SNAT line that
>>> references the Internet uses the proxy address - I'm a little puzzled.
>>>
>>> Daniel
>>
More information about the Firehol-support
mailing list