Сценарий:
Я построил сервер (S) с openvpn.
И может быть несколько клиентов vpn (C1 ~ C10), обеспечивающих SSH / FTP / HTTP за буквой S
Несколько пользователей (U1 ~ U10) в Интернете будут входить в систему через 'S', чтобы получить доступ к своей машине (C1 ~ C10).
Предположим, что IP-адрес U3 равен 60,60,60,60.
S ip - 220.220.220.220
IP-адрес vpn C3 - 10.8.0.6
а порт пересылки - "55555"
Если пользователь (U3) вводит правильный user / pwd
-> 'S' запросит, какой клиент (C3) принадлежит пользователю, и получит его IP,
затем ДИНАМИЧЕСКИ переадресует пользователя (U3) его клиенту (C3) с помощью:
//(only the 60.60.60.60 can access 10.8.0.6)
iptables -t nat -I PREROUTING -i eth0 -s 60.60.60.60 -p tcp --dport 55555 -j DNAT --to-destination 10.8.0.6:80
Пока это успех.
Но после выхода пользователя из системы я удаляю это правило с помощью
iptables -t nat -D PREROUTING -i eth0 -s 60.60.60.60 -p tcp --dport 55555 -j DNAT --to-destination 10.8.0.6:80
Это правило больше не существует в 'iptables -t nat -L -n',
но пользователь U3 все еще может напрямую обращаться к C3 с 220.220.220.220:55555
Это правило продолжает работать, даже если я набираю следующее и перезагружаюсь.
iptables -t -nat -F
Помогите! Может ли кто-нибудь сказать мне, что не так или есть лучший способ
Я нашел, в чем проблема.
Я тестирую то, что указано выше, с помощью HTTP, но на стороне «U3» есть прокси-сервер.
То есть вы видите старые данные, кэшированные прокси.
Попробуйте другие протоколы, такие как SSH или NC, результат правильный.
Но ... это означает, что этот механизм iptables может не работать, если пользователь использует прокси,
Как я мог решить эту проблему?
Но ... это означает, что этот механизм iptables может не работать, если пользователь использует прокси. Как я мог решить эту проблему?
Вы можете обслуживать контент с Cache-Control: no-cache, no-store
и надеюсь, что прокси уважает это.