Hi Haengie,
~도 되다 = "may" = used when asking someone 'if you can do something', basically asking for permission to do something
EG. 창문을 열어도 돼요? - "May i open a window?" 일찍 퇴근해도 되세요? "May i leave work early?"
~면 되다 = "can" = this is the response to ~도 되다 = it gives the person 'permission' to do something
EG. 창문을 열어도 돼요? === 네, 열면 돼요 (yes, you can do it[open the window])
일찍 퇴근해도 되세요? === 네, 하면 돼요 (yes, you can do that)
~면 안 되다 = 'cannot' do something (it is prohibited) EG.여기에 담배를 피면 안 돼요 = You cannot smoke here (it is not giving permission to do something) EG. 7시 30분까지 퇴근하면 안 돼요 = You are not allowed to leave work until 7:30.
~안 아/어/해도 되다 = ~지 않아도 되다 = "not necessary" to do something. EG. 항상 완별하지 않아도 돼요 - You don't have to be perfect all the time. EG. 모든 것을 안 먹도 돼요 = You don't (not necessary) have to eat everything.
Hope this helped. The differences are more to do with nuance.