Categories: Server Linux

Маскарадинг в моей сети

Как организовать раздачу интернета через шлюз под управлением Debian GNU/Linux? Очень просто.

Разрешим пересылку пакетов:

gateway:~# echo 1 > /proc/sys/net/ipv4/ip_forward

Создадим файл ipmasq.sh в котором будут прописаны правила для iptables:

#!/bin/sh

# “внешний” интерфейс, “смотрящий” в интернет

EXTIF=”eth1″

# внутренний интерфейс в локальную сеть

INTIF=”eth0″

/sbin/iptables -P INPUT ACCEPT

/sbin/iptables -F INPUT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -F OUTPUT
/sbin/iptables -P FORWARD DROP
/sbin/iptables -F FORWARD
/sbin/iptables -t nat -F

# разрешаем прохождение пакетов извне в локальную сеть только для установленных соединений

/sbin/iptables -A FORWARD -i $EXTIF -o $INTIF -m state –state ESTABLISHED,RELATED -j ACCEPT

/sbin/iptables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT

/sbin/iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

Теперь, если запустить этот файл, интернет будет доступен всем машинам в локальной сети.

Как я уже упоминал ранее, у меня был разрешён доступ по связкам mac-ip, чтобы пользователи не меняли свои ip адреса и не пользовались “чужим интернетом”. Реализовать это тоже довольно просто. Строку

/sbin/iptables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT

Нужно заменить, например, на следующий набор правил:

/sbin/iptables -A FORWARD -s 192.168.0.1 -d 0.0.0.0/0 -m mac –mac-source 00:15:e9:xx:xx:xx -j ACCEPT

/sbin/iptables -A FORWARD -s 192.168.0.2 -d 0.0.0.0/0 -m mac –mac-source 00:15:f2:xx:xx:xx -j ACCEPT

/sbin/iptables -A FORWARD -s 192.168.0.3 -d 0.0.0.0/0 -m mac –mac-source 00:13:8f:xx:xx:xx -j ACCEPT

/sbin/iptables -A FORWARD -s 192.168.0.4 -d 0.0.0.0/0 -m mac –mac-source 00:15:60:xx:xx:xx -j ACCEPT

Таким образом машинам с ip адресами 192.168.0.1 — 192.168.0.4 будет разрешён доступ в интернет. Компьютерам с другими ip адресами в интернет выйти не получится.

admin

Share
Published by
admin

Recent Posts

Настройка Mercurial по HTTPS

Иногда mercurial, при скачивании и комитах ругается на https. Особенно на самоподписанные сертификаты. Чтобы заработал…

2 месяца ago

Компиляция libvirt в Ubuntu

Компиляция libvirt Подробнее

2 месяца ago

Ошибка libvirt permission denied: решение

Если возникает ошибка libvirt destroy lxc permission denied , при попытке остановить контейнер: _x000D_# virsh…

2 месяца ago

Настройка редиректа в NGINX

Файлы с примерами редиректа для nginx Подробнее

2 месяца ago

Включение gzip в NGINX

Как включить gzip сжатие в Nginx ? Подробнее

2 месяца ago

Удаление postinst-скрипта в Linux

Иногда возникает ситуация, когда криво настроенные пакеты не устанавливаются в системе. У меня это произошло…

2 месяца ago