Skip to main content

apache 2.2 - LXC and port overlapping



I've done a lot of searching on Google and browsed what I could find on Server Fault, but can't find any solution to this.



I have a server that is running LXC containers (2 for right now, both Ubuntu). The LXC network is bridged (10.0.3.0/24), with the DHCP server for it being at 10.0.3.1, and I'm using two IPs of that network: 10.0.3.2 (container 1 [CN1]) and 10.0.3.3 (container 2 [CN2]).




I have Apache set up on both, and I have a subdomain set up on DNS for a website of mine that points to my public IP (web1 -> CN1 and web2 -> CN2). The subdomains resolve correctly, but here is where the problem starts.



Depending on which rule I have first in iptables determines which container is hit with the webpage. So if I have external port 80 hit CN1 first, then that index.html file is shown, and if 80 is set for CN2 first, then that index.html file is shown.



What I thought I'd do is set the Apache servers to listen on a different port, so I set CN1 to listen on 801 and CN2 to listen on 802, then I set up iptables to route route external port 80 to both of these, but the same issue still arises.



My ultimate goal is to have web1 and web2 display their respective index.html files without specifying a specific external port (i.e.: ip:81->CN1 and ip:82->CN2). Only other thing I can think of is set up a proxy (i.e.: nginx) on the host and have it proxy requests based on the (sub)domain requested, but I'd rather not do that if possible.



iptables rules:




NAT table



root@SKYNet:~# iptables -t nat -L  
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere anywhere tcp dpt:http to:10.0.3.2:801
DNAT tcp -- anywhere anywhere tcp dpt:http to:10.0.3.3:802

Chain INPUT (policy ACCEPT)

target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 10.0.3.0/24 anywhere


Default table




root@SKYNet:~# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination



I do understand the logic of iptables and routing it to one point, but I thought iptables would basically try to direct the packet to port 801, and if it doesn't match the VHost it'll reject it and iptables will go to the next one (802 in this case).


Answer



iptables is doing its job. iptables has no idea of what is HTTP if your targeting the same port, only the first rule will match whatever happens to the request afterwards.



The only way to achieve what you need is to setup a reverse proxy which will get all HTTP requests and redirect them to the correct HTTP server depending on the host name.


Comments

Popular posts from this blog

linux - iDRAC6 Virtual Media native library cannot be loaded

When attempting to mount Virtual Media on a iDRAC6 IP KVM session I get the following error: I'm using Ubuntu 9.04 and: $ javaws -version Java(TM) Web Start 1.6.0_16 $ uname -a Linux aud22419-linux 2.6.28-15-generic #51-Ubuntu SMP Mon Aug 31 13:39:06 UTC 2009 x86_64 GNU/Linux $ firefox -version Mozilla Firefox 3.0.14, Copyright (c) 1998 - 2009 mozilla.org On Windows + IE it (unsurprisingly) works. I've just gotten off the phone with the Dell tech support and I was told it is known to work on Linux + Firefox, albeit Ubuntu is not supported (by Dell, that is). Has anyone out there managed to mount virtual media in the same scenario?

hp proliant - Smart Array P822 with HBA Mode?

We get an HP DL360 G8 with an Smart Array P822 controller. On that controller will come a HP StorageWorks D2700 . Does anybody know, that it is possible to run the Smart Array P822 in HBA mode? I found only information about the P410i, who can run HBA. If this is not supported, what you think about the LSI 9207-8e controller? Will this fit good in that setup? The Hardware we get is used but all original from HP. The StorageWorks has 25 x 900 GB SAS 10K disks. Because the disks are not new I would like to use only 22 for raid6, and the rest for spare (I need to see if the disk count is optimal or not for zfs). It would be nice if I'm not stick to SAS in future. As OS I would like to install debian stretch with zfs 0.71 as file system and software raid. I have see that hp has an page for debian to. I would like to use hba mode because it is recommend, that zfs know at most as possible about the disk, and I'm independent from the raid controller. For us zfs have many benefits,

apache 2.2 - Server Potentially Compromised -- c99madshell

So, low and behold, a legacy site we've been hosting for a client had a version of FCKEditor that allowed someone to upload the dreaded c99madshell exploit onto our web host. I'm not a big security buff -- frankly I'm just a dev currently responsible for S/A duties due to a loss of personnel. Accordingly, I'd love any help you server-faulters could provide in assessing the damage from the exploit. To give you a bit of information: The file was uploaded into a directory within the webroot, "/_img/fck_uploads/File/". The Apache user and group are restricted such that they can't log in and don't have permissions outside of the directory from which we serve sites. All the files had 770 permissions (user rwx, group rwx, other none) -- something I wanted to fix but was told to hold off on as it wasn't "high priority" (hopefully this changes that). So it seems the hackers could've easily executed the script. Now I wasn't able