Как разрешить только туннельные подключения к порту?

Я бы хотел, чтобы git-daemon проходил через постоянный туннель ssh. Я выполнил эту задачу. Как мне заблокировать любое удаленное нетуннелированное соединение с портом GIT_DAEMON (9418 в моем случае)?

Я уже пробовал простые правила в iptables (заблокировать все, кроме localhost):

$ iptables -A INPUT -p tcp -d ! localhost --destination-port 9418 -j DROP

Но он также блокирует туннель (поскольку сохраняет исходный IP-адрес). Если у меня есть еще один хост для брандмауэра, это можно сделать, просто заблокировав любое удаленное подключение к этому порту, но мне нужен этот хост для выполнения этой работы.

Туннель создается одним из двух способов:

Для Windows :

plink.exe -N -i <key> -L 127.0.0.1:9418:192.168.1.69:9418 tunnel@192.168.1.69

Для Linux:

ssh -N -i <key> -L 127.0.0.1:9418:192.168.1.69:9418 tunnel@192.168.1.69
5
задан Ben Burns 11 March 2012 в 17:32
поделиться