Tag: Debian

  • Маршрутизатор на Debian

    При наличии более одного компьютера возникает потребность в организации совместного доступа в интернет. В условиях небольшого офиса или домашней сети подойдут стандартные решения SOHO, но как только количество компьютеров переваливает за 5-10 уже необходимо находить другие решения. Один из вариантов программный роутер с возможностью расширения функций (таких как кэширование, учет трафика, разграничение доступа, резка рекламы и банеров и т.д.). Установка и настройка программного роутера задача не такая уж и сложная, если иметь представление из чего он состоит и как работает. Рассмотрим простейший вариант реализации шлюза.

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

    • операционная система – Debian
    • набор железа – подойдет любой старенький компьютер PIII и выше с двумя сетевыми картами;
    • данные на имеющуюся сеть (провайдер, поставьте свои данные) eth0:

    IP адрес: 192.168.10.5
    шлюз: 192.168.10.254
    DNS: 192.168.10.1

    • данные на внутреннюю локальную сеть (куда будем раздавать интернет) eth1:

    IP адрес: 10.0.60.254 (наш новый шлюз)

    С параметрами определились, можно начинать устанавливать. Систему ставим минимальную, из задач на сервере нам понадобится только OpenSSH, остальное нет необходимости ставить. Первым делом настроим сетевые интерфейсы, чтоб не сидеть за косолью, а подключиться с рабочей машины и все делать удаленно. Настройки сетевых интерфейсов находятся в файле /etc/network/interfaces, приводим примерно в такой вид, напоминаю, данные необходимо подставить свои.

    user$ sudo nano /etc/network/interfaces
    # Сетевая петля                 
    auto lo
    iface lo inet loopback
    # Основной интерфейс от провайдера
    auto eth0 eth1
    iface eth0 inet static
            address 192.168.10.5
            netmask 255.255.255.0
            network 192.168.10.0
            broadcast 192.168.10.255
            gateway 192.168.10.254
            dns-nameservers 192.168.10.1
            dns-search localdomain.lan
    # Дополнительный интерфейс локальная сеть
    iface eth1 inet static
            address 10.0.60.254
            netmask 255.255.255.0

    Перезапускаем сеть, чтоб сделанные изменения вступили в силу.

    user$ sudo /etc/init.d/networking restart

    Немного отредактируем некоторые файлы, чтоб потом все заработало без лишних \”танцов с бубнами\”

    user$ sudo nano /etc/resolv.conf
    search localdomain.lan
    nameserver 192.168.10.1

    С этого файла кэширующий сервер DNS будет брать настройки. Осталось совсем немного, настроить NAT и DNS. Это только слышать страшно, а делать просто. Для этого установим волшебный пакет – dnsmasq. Dnsmasq является простым в настройке кеширующим DNS и DHCP(опционально) сервером. Разработан специально для применения в небольших, в том числе и домашних сетях, использующих NAT и соединяющихся с Интернет посредством модема, ADSL и прочих вариантов.

    user$ sudo aptitude install dnsmasq

    После установки dnsmasq уже настроен (нам пока этого хватит) и работает. Далее сообщим нашей системе о том, что она работает в режиме роутера и должна раздавать в сеть интернет. Для этого необходимо создать файл, в который будем впоследствии писать правила фильтрации трафика на сетевых интерфейсах.

    user$ sudo touch /usr/local/bin/set_firewall
    user$ sudo nano /usr/local/bin/set_firewall
    #!/bin/sh
    #
    # Константы
    # Интерфейс смотрящий в интернет
    INET_IFACE=\"eth0\"
    #
    # Сброс всех правил
    iptables -F INPUT
    iptables -F FORWARD
    iptables -F OUTPUT
    iptables -P INPUT ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD ACCEPT
    #
    # Включаем режим прозрачности
    iptables -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
    #
    # Включаем режим пересылки пакетов
    echo \"1\" > /proc/sys/net/ipv4/ip_forward
    user$ sudo chmod +x /usr/local/bin/set_firewall
    user$ sudo /usr/local/bin/set_firewall

    Это самый минимум для раздачи интернета в сеть. Интернет должен быть и на роутере, и в сети. Для того, чтобы режим роутера включался автоматически, необходимо добавить запуск нашего файла после запуска сетевых интерфейсов.

    user$ sudo touch /etc/network/if-up.d/firewall
    user$ sudo nano /etc/network/if-up.d/firewall
    #!/bin/sh
    /usr/local/bin/set_firewall
    user$ sudo chmod +x /etc/network/if-up.d/firewall

    Стоит предупредить, что это самый минимум для раздачи интернета в сеть в таком виде это использовать нельзя! Обязательно нужно защитить порты снаружи, об этом поговорим позже.