Шлюз на Linux (Debian / Ubuntu), раздача интернета linux, роутер linux | iAdept

Статья последний раз была обновлена 04.03.2023



Итак наша задача — сделать из компьютера под управлением Debian / Ubuntu (буду писать для Debian) шлюз или программируемый роутер для раздачи интернетов в локальную сеть. Рассмотрен пример с двумя сетевыми картами в раздающем (шлюзовом) ПК.

Итак сначала настраиваем локальную сеть на одну из сетевых карт, имеющихся у нас. Задаем следующие настройки для нашей локальной карты:

# secondary INTEL

# local connect

auto eth1

iface eth1 inet static

address 192.168.0.1

netmask 255.255.255.0

network 192.168.0.0

broadcast 192.168.0.255

# gateway 192.168.0.1

Как видите у меня это интерфейс Eth1 , ему я задал статичный адрес 0.1 на конце. В данном примере как вы можете заметить строка шлюза (gateway) закомменчена, и не активна. Почему? Потому что шлюзом (раздающим интернет устройством) по отношению к самому себе, внутри сервера, будет являться вторая карта, а через интерфейсы это не настроить. Эту взаимосвязь мы легко и не принужденно сконфигурируем далее через iptables.

Почему выдал 0.1 адрес? Потому что во всех сетях такой адрес имеют устройства-шлюзы, то есть те, которые раздают инет. К тому же в домашней сети это нас убережет от гемороя с дополнительными гаджетами. Например многие медиаплееры по дефолту всегда смотрят на 0.1 устройство, и пытаются взять с него интернет.

Конфигруируем вторую карту —

auto eth0

iface eth0 inet dhcp

У меня все настройки на нее получаются от провайдера автоматически, и ничего дополнительного не указывается. Если у вас не так, укажите настройки от вашего провайдера, как правило это адреса шлюзов провайдера / сетей и масок. Отличающихся от ваших локальных. Поэтому конфликтов быть не должно. В моем случае потребовалась дополнительная настройка pppoe / l2tp соединения от корбины — билайн. Чтобы интернет все же пошел ко мне в офис через внешнюю карту eth0.

ЧИТАЙТЕ ТАКЖЕ:  IPTV и локальная сеть в GNU/Linux - Mr.Cat

В большинстве случаев требуется указание нейм-серверов провайдера (если ваш провайдер не раздает ns-сервера автоматом), все они хранятся в /etc/resolv.conf . Для билайна — корбины это:

nameserver 85.21.192.5

nameserver 213.234.192.7

Отдельно почитать о том как настроить pppoe / ppptp / l2tp для билайна корбины читайте в статье: настраиваем l2tp

Если вы не укажите это, а провайдер автоматом вам не транслирует нс-сервера, то вы попросту не сможете ни работать в интернете, не пинговать внешние ресурсы. В общем пробуйте!

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

Итак, машинка доступна во внутренней сети, на самой машинке у нас есть интернет (проверить легко, залогиньтесь на нее по ssh и попингуйте яндекс например). Как нам раздать то интернет в локалку теперь? Проще простого! Воспользуемся специальной псевдо графической утилитой arno firewall.

apt-get install arno-iptables-firewall

P.s. Чтобы в дальнейшем реконфигурировать файрволл для добавления новых портов например, вводим команду: dpkg-reconfigure arno-iptables-firewall

Тут же вылезет симпатичное окно, которое предложит нам с вами сконфигурировать файрволл, который защитит нашу сеть извне, и будет транслировать интернет в локалку. Файрволл попросит вас указать внешние сетевые интерфейсы и внутренние, если вы используете например пппое-соединение или любое модемное, то кроме имени интерфейса, укажите еще и имя подключения.

На вопросы с DHCP отвечаем да, NAT — включить да, пинговать ли снаружи, как хотите, если будете с внешки лазить в офис / домой то да, в противном случае нет. Далее вас попросят указать, какие порты надо открыть для TCP и UDP подключений (входящего и исходящего траффика). Как правило у каждой программы есть свой порт, который указан в хелпе к ней, а так же имеется набор стандартных портов. 80 / 8080 https, 22 FTP, 21 SSH и так далее. Открывайте порты какие вам нужны. Обращаю ваше внимание еще раз на то, что если какая то программа будет пробовать что-то скачать / закачать через неуказанный тут порт, то у вас ничего не выйдет.

ЧИТАЙТЕ ТАКЖЕ:  MySQL.RU .:. Одобрено лучшими российскими программистами

Номера портов разделяются пробелами а диапозоны через двоеточие между цифрами (без пробела). Так же удостоверьтесь что записи портов аналогичны и для UDP и для TCP вкладок, иначе будут казусы в духе того, что информацию программа отправляет, а получить не может — и наоборот.

Далее нас спросят о правилах CIDR и внутренней подсети. У нас внутренняя подсеть это 192.168.0.0/24 (это вписываем туда), эта запись позволит всем компьютерам сети 192.168.х.х получать внешнюю информацию. Вы можете так же отдавать интернет только избранным компьютерам или устройствам с определенным сетевыми адресами, укажите их тут же, строго ограничив адресацию.

Далее файрволл попросится перезагрузиться, перегружаемся и смотрим что получилось.

А получилось следующее — на компьютере в локальной сети я указал явно адрес и шлюзом выставил наш раздающий компьютер-роутер с адресом 192.168.0.1 , НС-сервера на компьютере клиенте я установил провайдерские и ns-сервера гугла (адрес 8.8.8.8). И вуа-ля, интернет есть на нем.

Кстати провод из локальной сетевой карты этого шлюзового компьютера у меня воткнут во внутренний роутер с вай-фаем, который работает в режиме свича и обеспечивает гигабитное соединение (обе карты в самом компьютере — роутере так же гигабитные), о том как настроить сеть с двумя роутерами (читай наш компьютер с адресом 0.1 тоже роутер теперь) читайте в статье «организация сети с двумя роутерами«.

ЧИТАЙТЕ ТАКЖЕ:  Как я iptv за nat пробрасывал…igmpproxy | diablero's homepage

Однако попробовав приконнектиться к сети с устройством, которое не умело само задавать себе адрес и шлюз, меня ждал облом! Раздачу адресов то мы не настроили. А это уже в следующей статье — по настройке DHCP сервера.


http://i-adept.ru/shlyuz-na-linux-debian-ubuntu-razdacha-interneta-linux-router-linux/

Губарь Маргарита Александровна