Israeli forces in southern Lebanon have opened fire on protesters demanding their withdrawal in line with a ceasefire agreement, killing at least 22 people and injuring 124, Lebanese health officials reported.