Сервер в локальной сети

Автор pleshner, 15 апреля 2015, 08:33:16

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

pleshner

Привет всем!
Как мне спрятать сервер в локальной сети от "чужих"?
Есть локальная сеть 192.168.0.*
сервер 192.168.0.100 клиенты входят из сети и удаленно по RDP,
Debian(jessie) в качестве шлюза, wlan0 (192.168.0.213) - в сеть с интернетом, eth0 (192.168.0.200) - на сервер

в rc.local  прописал

# Res-pol
iptables -F
# <Inet>
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
# RDP
iptables -t nat -A PREROUTING -d wlan0 -p tcp --dport 3389 -j DNAT --to-destination 192.168.0.100:3389
iptables -t nat -A POSTROUTING -d 192.168.0.100 -p tcp --dport 3389 -j SNAT --to-source wlan0

не видно сервера ни из сети ни из шлюза :-\

sandaksatru

Цитата: pleshner от 15 апреля 2015, 08:33:16
Как мне спрятать сервер в локальной сети от "чужих"?
Где сидят чужие и как именно его вы хотите спрятать?
У вас два интерфейса смотрят в одну и ту же сеть, или сети разные, но в них совпадает адресация? Являетесь ли вы администратором одной из сетей? В сеть "Интернет" какое устройство роутит трафик? Если не машинка с Debian, то зачем вам два шлюза? Много вопросов и будут ещё, так что распишите лучше всё подробно.

У вас правила после #RDP все прописаны неверно. Я бы порекомендовал новичкам в настройке netfilter использовать или какие-нибудь надстройки над ним (типа Shorewall или arno-iptables-firewall), или всё таки один раз вникнуть в структуру iptables. Вот на викибукс есть хороший ман: https://ru.wikibooks.org/wiki/Iptables
Но поскольку раз уж вы спросили помощи на форуме, мы можем вам помочь с правилами, но распишите подробней что вы хотите и структуру сети.

pleshner

#2
обыкновенная локальная сеть офиса, WIFI без пароля, любой не офисный работник с ноутом, в сети видит сервер.
нужно чтоб вообще не видели его "чужие", поэтому и хочу спрятать за шлюз, + с помощь шлюза ограничить атаки с инета.
wlan0 смотрит в сеть, а eth0 в сервер.

apollyon

Я бы смотрел в сторону организации DMZ (можно с помощью алиасов), и разрешения доступа к серверу только "проверенным" хостам, которые бы получали адреса от dhcp, к примеру - сотрудники получают адреса в диапазоне 192.168.0.1-100 (с привязкой по маку), а гости - .101-.200, и им закрыть доступ в DMZ-сеть

ogost

pleshner, вы не ответили на вопросы, из предоставленного вами непонятно, у вас оба интерфейса в одну сеть смотрят или в разные сети, но совпадает адресация. wlan0 это типа провайдер, что ли? а eth0 это локалка ваша, да?
apollyon, суть dmz в открытии полного доступа всем желающим. под задачи тс не подходит.

pleshner

#5
сейчас так:


а надо так:
на шлюзе:
wlan0 смотрит в локалку, тут же и интернет
eth0 в сервер



endru

я бы объединил всё в bridge, и настраивал правила iptables уже для моста.

sandaksatru

pleshner, Для начала давайте изменим адресацию на маршруте Debian Gateway - Terminal Server. Пусть DG будет 192.168.1.1/30, а TS 192.168.1.2/30 (маска 255.255.255.252). У нас же ведь не больше 2 хостов в этой сети.
Тогда что нужно сделать, чтобы всё работало:

1) Для начала вам нужно пробросить 3389 порт на вашем роутере на DG (192.168.0.213).
2) На самом шлюзе включим сначала форвардинг пакетов. Для этого параметр net.ipv4.ip_forward в фале /etc/sysctl.conf должен быть раскомментирован (без # вначале) и активирован ( =1 ). После ребута форвардинг включится. Если был до этого включен, то идём дальше. Если нет, то, не дожиджаясь перезагрузки, включим его сейчас:
echo 1 > /proc/sys/net/ipv4/ip_forward
3) Далее настроим правила фйервола:

iptables -F #очищает таблицу filter
iptables -t nat -F #очищаем таблицу nat
iptables -P INPUT DROP #закрывает шлюз от входящих пакетов
iptables -P FORWARD ACCEPT #разрешает пересылку во всех направлениях
iptables -A INPUT -i lo -j ACCEPT #разрешаем входящие пакеты с loopback интерфейса
iptables -t nat -A POSTROUTING -o wlan0 -j SNAT --to-source 192.168.0.213 #натим адрес TS для роутера и локальной сети.
iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination 192.168.1.2 #пробрасываем все пакеты, обращённые на 3389 порт, на TS

Так же на этом этапе вы можете открыть дополнительные порты, если они необходимы.
4) Затем нам нужно сделать так, чтобы всё это сохранялось при перезагрузке. Для удобства, чтобы каждый раз нам не редактировать rc.local, давайте сохранять их конфигом куда-нибудь в /etc/iptables.rules, например:
iptables-save > /etc/iptables.rules
А в rc.local перед строкой exit 0 удалим всё, что вы понаписали и оставим только:
iptables-restore < /etc/iptables.rules
В последствии редактировать правила можно будет либо прямо в конфиге, либо вручную в терминале, но не забывая обновлять конфиг командой iptables-save.

Но самое главное, если честно, смысл в таком шлюзе небольшой. У вас так же открыт будет RDP порт. Я так понимаю, TS на винде? Закрыть все порты на вход и оставить только 3389, а также настроить безопасную авторизацию, можно и без использования такого шлюза, на самом вин-сервере. Разве что полезно будет, если нужно совсем закрыть доступ к TS из локальной сети. Для этого в терминале:
iptables -A FORWARD -s 192.168.0.0/24 -j DROP
И не забудьте сохранить.