LINUX.ORG.RU

OpenWrt: пропуск внешнего трафика только по белому списку

 , ,


0

1

Есть роутер Asus r-16 на OpenWrt. Надо пропускать внешний трафик на порт 3389 только с определенных ip. Перерыл кучу статей в инете и нифига не получается, не понимаю, куда и какие правила пихать?

Ранее делал это вручную типа такого

-A rdp_ip -s 7*.1**.1.1/32 -j ACCEPT 
-A rdp_ip -j DROP 

но OpenWrt для простой зоны создает кучу дополнительных зон и непонятно что с ними делать. К тому же белые адреса находятся в файле, а скрипт из него в цикле клепал правила. Здесь надо будет руками к каждому прописывать или можно автоматом?

Ответ на: комментарий от Radjah

Мне нужен из инета доступ по RDP, но просто открывать не очень правильно, вот и делал доступ только с определённых IP. Я понимаю что можно, а наверное даже и нужно, прокидывать VPN, а уже через него кидать RDP. Но некоторым пользователям, почти невозможно объяснить как пользоваться VPN, поэтому я избрал такой путь.

И ещё мне как то нужно ограничивать доступ из внутренней сети в инет по MAC адресу. Ранее тоже делал через циклы. Можно это провернуть через GUI?

zhukovia
() автор топика
Ответ на: комментарий от zhukovia

Можно попробовать ещё с помощью SSH порт пробросить и подключаться к локалхосту.

Использовать klink/plink с ключами, завернуть всё это в какой-нибудь комплект для подключения. Логин и пароль так и так руками вводить после подключения.

Radjah ★★★★★
()
Ответ на: комментарий от zhukovia

для пользователя там ничего нет :)
просто настраиваешь соединения, прописываешь команды и всё. пользователю остается ткнуть пару иконок в гуишном окне и все само работает.

pfg ★★★★★
()
Ответ на: комментарий от pfg

Я не ко всем пользователям могу попасть. Так же бывает что заходят с компа на который ничего не скачать и не установить, те есть только Удаленный рабочий стол. Есть всё же медод в GUI?

zhukovia
() автор топика
Ответ на: комментарий от zhukovia

без разницы. ssh-сервер запускается на той машине, где его можно установить (можно даже на роутере, но скорость будет плачевна).
потом ssh-клиент подключается к ssh-серверу с опцией проброса локального порта на порт удаленной lan-машины.
ну а rdp подключается к локальному проброшенному порту, все остальные сетевые заморочки не его проблемы.

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)
Ответ на: комментарий от Radjah

Нет не вариант. Через скрипты, боле менее понятно как сделать, а вот как с GUI? И непонятно прописывать зоны в GUI (создается много дополнительных зон, например на зону rdp_ip создает zone_rdp_ip_input, zone_rdp_ip_forvard и тп) или лучша в скрипте?

zhukovia
() автор топика
Ответ на: комментарий от zhukovia

Вариант светить жопой RDP наружу изначально не рассматривается. Смысле всех советов - завернуть RDP внутрь туннеля с шифрованием и сделать это максимально удобно для конечного пользователя. SSH принимает коннекты ото всех, но пускает только тех, кто правильный ключ даст. Чтобы какиры долго искали, его можно перевесить на нестандартный порт.

А сервер можно повесить даже на целевую машину, чтобы роутер не одурел от шифрования. Порт пробросить на шлюзе.

pfg подсказал, что есть готовый клиент, который сразу умеет подключаться через ssh-туннель.

Ты говоришь, что VPN скорее всего не получится, потому начали копать в сторону костылей в виде скриптов и всяких сборок, чтобы юзер нажал одну кнопку и получил экран логина удалённой машины.

Radjah ★★★★★
()
Ответ на: комментарий от zhukovia

пофиг. ssh с авторизацией по ключу даже не пытаются вскрывать - какойнить 4к-ключ просто бессмысленно перебирать. год стучались на ssh порт и всегда пытались вскрыть через пароли :)

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)
Ответ на: комментарий от zhukovia

Я же написал, что надо перевесить демон на другой порт, если хакеры беспокоят.

Если тебе просто надо разрешить подключение с определённого адреса, то обычно делается так:

# любые соединения
iptables -A INPUT -s 1.2.3.4/32 -j ACCEPT
# с указанием порта и протокола
iptables -A INPUT -s 1.2.3.4/32 -p tcp -m tcp --dport 3389 -j ACCEPT

Можешь так же сделать отдельную таблицу для разрешённых адресов и перенаправлять все соединения на определённый порт сначала в неё, указав её имя после "-j".

Если у клиента нет постоянного адреса, то такой вариант не подойдёт.

Radjah ★★★★★
()
Ответ на: комментарий от Radjah

Если тебе просто надо разрешить подключение с определённого адреса, то обычно делается так: Можешь так же сделать отдельную таблицу для разрешённых адресов и перенаправлять все соединения на определённый порт сначала в неё, указав её имя после «-j».

Спасибо за ответ. То что можно таким образом сделать я знаю, я же писал в самом начале, что сейчас у меня так и сделано (скриптами) только не на OpenWRT. Я хотел узнать. Можно ли сделать тоже самое но через LuCI? Чтобы скриптами всё опять не прописывать, а видеть и управлять через Web.

zhukovia
() автор топика
Последнее исправление: zhukovia (всего исправлений: 1)
Ответ на: комментарий от vel

Прочитай про ipset.

К сожалению в LuCI нет возможности использовать ipset, можно только вручную прописывать. Но при этом этого не видно в Web морде, а это не соответствует задаче.

zhukovia
() автор топика