Я надеюсь, что смогу объяснить свою проблему.Я создаю сервер proxy
, который находится между клиентами и Интернетом.
Это Debian
приложение iptables
и Node.JS
приложение.
Как source
и destination
IP
являются чужими адресам proxy
server
Мне нужно это, чтобы разрешить packets
в iptables
:
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT
Приложение Node.JS
captures
packets
с raw-socket
и проанализируйте packet
в соответствии с адресами source
и destination
IP
.
Если packet
«разрешен», он будет отправлен сraw-socket
.send(...)
.
Моя задача состоит в том, чтобы я хотел DROP
исходный packets
входящий, которые captured
на Node.JS
, но все еще позволяют Node.JS
отправлять packets
с иностранными source
IP
адресами.
Так что мои iptables
FORWARD
правила немного сложны для понимания.С одной стороны, мне нужно, чтобы они разрешали Node.JS
отправлять пользовательские packets
, но с другой стороны, я не хочу, чтобы оригинальные packets
проходили через весь сервер.Вроде как парадокс.
Кажется, будто оригинал packet
входит в мой eth0
интерфейс, но raw-socket
генерирует packet
в другом.
Так что, возможно, я мог быdo:
iptables -A FORWARD -i eth0 -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT
Но не совсем уверен, кто-нибудь может прокомментировать мой вызов?