All those translations are correct, but they heavily depend on the situation you are using them. Teacher is, by definition, someone who teaches, and all those four words in Italian refer to someone who are giving you a lesson about something. The first one, insegnante, is probably the one with a broader meaning, it can be applied to your salsa instructor or your high school teacher, but also to your driving instructor. Literally, it means "someone who teaches". Istruttore instead is linked with professional instructors, again your salsa instructor is okay, your guitar teacher too, and if you do rock climbing and someone is teaching you, that's an istruttore as well, it is the literal translation of instructor, and it applies in the same context. However you wouldn't call a teacher or a university professor "istruttore".
Maestro and Professore deserve a different paragraph. Traditionally, they are both linked with school teaching, Maestro with junior and elementary schools, while Professore is used from middle school to the university. However, Maestro has become synonym of "Top" in a discipline, originally it was used for orchestra directors as they were the best among the musicians, but nowadays it is used in a broader range of cases, including junior and elementary schools.