Я бы хотел, чтобы 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