Использование туннелей на основе ssh сейчас широко распространено. И многие используют его как
универсальное решение для организации туннелей внутрь локальной сети для доступа к различным сервисам.
И в связи с этим очень часто возникает вопрос "А как ограничить возможности такого туннеля".Например:
есть компания, которая обслуживает ваш web сервер. Для выполнения этой работы требуется доступ
к серверу web-server.dmz по портам 80 и 443.Решение:
на сервере ssh, через который создаётся туннель, выполняем:1) добавляем пользователя aaa
2) устанавливаем ему шелл /bin/false (или другой, только так чтобы он не мог залогиниться)
3) Добавляем правила iptables:
iptables -A OUTPUT -d web-server.dmz -p tcp -m tcp --dport 80 -m owner --uid-owner aaa -j ACCEPT
iptables -A OUTPUT -d web-server.dmz -p tcp -m tcp --dport 443 -m owner --uid-owner aaa -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner aaa -j REJECTURL:
Обсуждается: http://www.opennet.me/tips/info/2043.shtml
Bad value for "--uid-owner" option: "aaa"Числовое надо :)
# export AAA=$(id -u aaa);
# iptables -A OUTPUT -d web-server.dmz -p tcp -m tcp --dport 80 -m owner --uid-owner $AAA -j ACCEPT
# iptables -A OUTPUT -d web-server.dmz -p tcp -m tcp --dport 443 -m owner --uid-owner $AAA -j ACCEPT
# iptables -A OUTPUT -m owner --uid-owner $AAA -j REJECT
У меня имя нормально работает.
>У меня имя нормально работает.Наверно айпистолы старый
iptables v1.4.2-rc1
и не забыть проверить чтоб
CONFIG_NETFILTER_XT_MATCH_OWNER=y
Я наконец придумал какой от этого вред :)
Можно узнать каким юзерам разрешено ходить в тунель.
Вот тут, как раз фишка --uid-owner которая работает с именами вместо UID
и сыграет свою злую роль. 8-)
>и сыграет свою злую роль. 8-)Ужасно злую.А что это знание даст?
Вариант для ipfw :
ipfw add allow tcp from me to web-server.dmz 80,443 uid aaa
ipfw add deny tcp from me to any uid aaa
а последняя строка зачем?