You can't use a workflow rule for this, because logging in doesn't trigger workflow rules. Instead, you'll want to schedule a regular check to deactivate users:
public class DeactivateInactiveUsers implements Schedulable {
public void execute(SchedulableContext context) {
User[] selectedUsers = [SELECT Id FROM User WHERE IsActive = TRUE AND Id NOT IN (SELECT UserId FROM LoginHistory WHERE LoginTime = LAST_N_DAYS:30)];
for(User record: selectedUsers) {
record.IsActive = false;
}
Database.update(selectedUsers, false);
}
}
Simply put this into your org, and set a daily schedule, and you're set.