Доброго времени суток уважаемые форумчане! Подскажите, как разрешить одну проблемку. Пытаюсь сделать защиту для игрового сервера, написан клиент и сервер, последний пока тестовый, т.к. может выдавать только строку в консоли :) Принцип работы - в связке с iptables, последний должен быть настроен. Политика на все входящие:
-P INPUT DROP Все входящие пакеты отбрасываются, далее цепочки исключений -A INPUT..... -j ACCEPT разрешаеи всё , что нужно, протоколы и т.п. только порт 2106 не должен быть в исключении(!!!!!), т.к. этот порт игрового сервера авторизации, исключения для этого порта должно выполняться программно учитывая ip(в дальнейшем и MAC) звонящего клиента. В чём затык? Затык в том, что у iptables нет API, разрабы рекомендуют пользоваться system(), а в system можно прописать лишь строковую константу , т.е. например:
system("iptables -A INPUT -s 10.154.177.45 -p tcp --dport 2106 -j ACCEPT"); Но нужно , что бы IP подставлялся извлекаясь из входящего пакета:
system("iptables -A INPUT -s %s %s\n", inet_ntoa(ss.sin_addr) ,"-p tcp --dport 2106 -j ACCEPT"); в таком варианте компилятор выдаёт ошибку. Подскажите , есть ли решение и как оно выглядит. Всем заранее спасибо!
|