Archive for the ‘FreeBSD’ Category

MySQL Backup & Restore Woes

FreeBSD | Posted by epistasis
Nov 03 2011

First things first… during my frantic search for answers, I read a statement similar to this:

“Anybody who’s come across this post looking for information on how to restore their databases, don’t worry – your data is probably not lost.”

In hindsight, I would likely have been much more effective if remembered this, therefore I’ve put it at the top of this post.

Background

My problem arose when I recently came around to the idea of reinstalling one of my servers. It was running FreeBSD 5.2 x86 and I wanted to upgrade to 8.2 x64. It was with great hesitance that I ended the 521 day uptime record.

Read the rest of this entry »

FreeBSD + pf problem with window scaling

FreeBSD, Problems, Windows | Posted by epistasis
Sep 13 2009

I’ve been having problems for a while with window scaling on my network. I run a FreeBSD router utilising pf for NAT/firewall. Some computers (those with Vista, Windows 7, or recent Ubuntu releases installed) could not establish connections to Google and some other websites, and applications such as Windows Live (MSN) Messenger could not establish connections.

On Windows Vista and Windows 7, disabling window scaling (also called Receive Window Auto-Tuning) with the following command was a successful patch for the problem:

netsh interface tcp set global autotuninglevel=disabled

In Ubuntu the same patch was to modify /etc/sysctl.conf to disable window scaling. I added the following line:

net.ipv4.tcp_window_scaling: 0

This was only a temporary fix however as I did not want to have to disable the feature all the time.

To properly support TCP window scaling, pf must create a state on the initial SYN packet of connection.

If the state is created on a subsequent packet (like when the SYN is  accidentally passed without creating a state, and the state is created on the returning SYN+ACK), pf has missed the window scaling negotiation
containing the scaling factors, and will eventually stall connections. Each peer’s scaling factor is only seen in its SYN packet, and can’t be deduced later on.

Check your ruleset and verify that

a) there is a default block policy
b) all ‘pass’ rules applying to TCP have both ‘keep state’ and ‘flags S/SA’.

That was it! Vista, 7 and Ubuntu were happy again, with default settings so I was able to re-enable Windows auto-tuning by typing:

netsh interface tcp set global autotuninglevel=normal

and for Ubuntu, I was able to erase the line in /etc/sysctl.conf.

FreeBSD chown and chmod

FreeBSD, Problems | Posted by epistasis
Jan 28 2009

Problem: I was recently trying to use chmod and chown in PHP on a FreeBSD system. I found out that these two commands (for obvious) reasons, can only be used by the superuser, therefore I couldn’t change the owner of an uploaded file (via a website) from the www to the user who’s website it was. In Solaris you can just change rstchown to 0 in /etc/system – unfortunately I couldn’t find a similar way to do this in FreeBSD.

Solution: The main solution I have found to this is to just use a cron job as root to chown all the files  (by using an asterisk in the file path) in a certain directory (the upload directory) to the user.. This is also a lot safer than allowing other users to use chmod/chown.

Obviously, if anyone can think of a better way of doing this, please let me know.