There is no real villain in the Ramayana. Everyone acts according to their Dharma.
Ravana is a noble scholar and ruler, whose enmity with Rama comes solely from Rama's injuring of Shurpanakha.
Shurpanakha was injured because she attacked Sita after Lakshmana rejected her advances.
Vibhishana opposes his brother because he recognizes that Rama poses a danger to Lanka, and wishes to preserve the kingdom.
Kaikeyi has Rama exiled because, as a mother, it is her Dharma to ensure what is best for her son, who would be king upon Rama's exile.
Sure, some of these actions might be morally questionable in our world, but they totally fit into the Hindu, duty-based definition of morality.