If it's inbred data for a backcross or intercross, R/qtl is an obvious choice. You'll need to process your data into the formats expected by R/qtl (in R), but there are plenty of examples for that. If you have outbred data, the package qtl.outbred can preprocess the marker data into genotype probabilities that R/qtl can handle. The web service GridQTL might be another option. The package MAPfastR (in press) might also be worth checking out.
Disclaimer: I am the second author on the paper on MAPfastR, and the underlying methodology for genotype probability computations used in qtl.outbred was developed by me. Some code from my group also used to be employed in the epistasis mode of GridQTL, which to my knowledge is currently offline.