Iran has fired dozens of missiles into Israel in retaliation for the invasion of Lebanon and the killing of Hamas and Hezbollah leaders.