Статья последний раз была обновлена 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Как видите у меня это интерфейс Eth1 , ему я задал статичный адрес 0.1 на конце. В данном примере как вы можете заметить строка шлюза (gateway) закомменчена, и не активна. Почему? Потому что шлюзом (раздающим интернет устройством) по отношению к самому себе, внутри сервера, будет являться вторая карта, а через интерфейсы это не настроить. Эту взаимосвязь мы легко и не принужденно сконфигурируем далее через iptables.
Почему выдал 0.1 адрес? Потому что во всех сетях такой адрес имеют устройства-шлюзы, то есть те, которые раздают инет. К тому же в домашней сети это нас убережет от гемороя с дополнительными гаджетами. Например многие медиаплееры по дефолту всегда смотрят на 0.1 устройство, и пытаются взять с него интернет.
Конфигруируем вторую карту —
auto eth0
iface eth0 inet dhcpУ меня все настройки на нее получаются от провайдера автоматически, и ничего дополнительного не указывается. Если у вас не так, укажите настройки от вашего провайдера, как правило это адреса шлюзов провайдера / сетей и масок. Отличающихся от ваших локальных. Поэтому конфликтов быть не должно. В моем случае потребовалась дополнительная настройка pppoe / l2tp соединения от корбины — билайн. Чтобы интернет все же пошел ко мне в офис через внешнюю карту eth0.
В большинстве случаев требуется указание нейм-серверов провайдера (если ваш провайдер не раздает 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 и так далее. Открывайте порты какие вам нужны. Обращаю ваше внимание еще раз на то, что если какая то программа будет пробовать что-то скачать / закачать через неуказанный тут порт, то у вас ничего не выйдет.
Номера портов разделяются пробелами а диапозоны через двоеточие между цифрами (без пробела). Так же удостоверьтесь что записи портов аналогичны и для UDP и для TCP вкладок, иначе будут казусы в духе того, что информацию программа отправляет, а получить не может — и наоборот.
Далее нас спросят о правилах CIDR и внутренней подсети. У нас внутренняя подсеть это 192.168.0.0/24 (это вписываем туда), эта запись позволит всем компьютерам сети 192.168.х.х получать внешнюю информацию. Вы можете так же отдавать интернет только избранным компьютерам или устройствам с определенным сетевыми адресами, укажите их тут же, строго ограничив адресацию.
Далее файрволл попросится перезагрузиться, перегружаемся и смотрим что получилось.
А получилось следующее — на компьютере в локальной сети я указал явно адрес и шлюзом выставил наш раздающий компьютер-роутер с адресом 192.168.0.1 , НС-сервера на компьютере клиенте я установил провайдерские и ns-сервера гугла (адрес 8.8.8.8). И вуа-ля, интернет есть на нем.
Кстати провод из локальной сетевой карты этого шлюзового компьютера у меня воткнут во внутренний роутер с вай-фаем, который работает в режиме свича и обеспечивает гигабитное соединение (обе карты в самом компьютере — роутере так же гигабитные), о том как настроить сеть с двумя роутерами (читай наш компьютер с адресом 0.1 тоже роутер теперь) читайте в статье «организация сети с двумя роутерами«.
Однако попробовав приконнектиться к сети с устройством, которое не умело само задавать себе адрес и шлюз, меня ждал облом! Раздачу адресов то мы не настроили. А это уже в следующей статье — по настройке DHCP сервера.
http://i-adept.ru/shlyuz-na-linux-debian-ubuntu-razdacha-interneta-linux-router-linux/
- Как узнать IP-адрес по MAC-адресу - 07.04.2023
- Пинг проходит, а страницы в браузере не открываются - 07.04.2023
- Что если сайт пингуется «извне», но не открывается из под «локалки»? - 07.04.2023