The source said authorities caught the man, who had been on the loose after killing his wife with a knife and then going on a shooting rampage in Baakline, 45 km (30 miles) south of the capital Beirut.
The shooter had used a pump-action rifle, the source and state news agency NNA said. NNA said the motive remained unclear.
The security source said that it was a suspected "honor killing" and that five of those killed were Syrian, including two children aged 15 and 10, at the house under construction where the shooting took place.