Управление сетью в Linux. Сетевые интерфейсы. Межсетевой экран
Цель работы: Научится управлять сетевыми подключениями в ОС Linux.
Задачи работы:
- Ознакомиться с основными конфигурационными файлами сети;
- Настроить сетевые подключения различными способами;
- Изучить содержимое файла сетевой фильтрации;
- Настроить межсетевой экран.
Теоретическая часть
В ОС Linux присутствуют следующие файлы конфигурации сети вне зависимости от версии дистрибутива:
- /etc/hosts - в этом файле можно прописать IP-адреса и имена узлов локальной сети, но обычно здесь указывается только IP-адрес узла localhost (127.0.0.1), потому что сейчас даже в небольшой локальной сети устанавливается собственный DNS-сервер;
- /etc/hosts.allow – содержит IP-адреса узлов, которым разрешен доступ к сервисам данного узла;
- /etc/hosts.deny – содержит IP-адреса узлов, которым запрещен доступ к сервисам данного узла;
- /etc/iftab – содержит таблицу интерфейсов, т. е. соответствие имен интерфейсов и их МАС-адресов;
- /etc/motd – файл задает сообщение дня (Message of the day). Данный файл используется многими сетевыми сервисами, например, FTP-, SSH-серверами, которые при регистрации пользователя могут выводить сообщение из этого файла;
- /etc/resolv.conf – задает IP-адреса серверов DNS;
- /etc/services – база данных сервисов, задающая соответствие символьного имени сервиса (например, рорЗ) и номера порта (110/tcp, tcp - это наименование протокола).
Прежде чем начать работу, убедитесь, что драйвер сетевого устройства корректно установлен, кабель (при проводном соединении) исправен и подсоединен.
Команда
$ sudo lshw -C network
позволяет посмотреть подключенные сетевые устройства. Пример вывода команды (рис. 3.1):
Рис. 3.1. Просмотр подключенных сетевых устройств
При выводе информации вы можете увидеть следующие свойства устройства: description – тип устройства, product – название адаптера, vendor - производитель устройства, logical name - имя сетевого интерфейса, serial- физический адрес устройства (mac-адрес), driver - используемый драйвер, driverversion - версия драйвера, link - наличие ссылки, speed - текущая скорость подключения.
Обратите внимание на имя сетевого интерфейса - eth0. Это имя будет далее применяться для настройки именно данной сетевой карты. Где eth обозначает что используется Ethernet интерфейс, а 0 - номер устройства. Если у вас установлено несколько сетевых устройств то соответственно им будет присвоено имена: eth0, eth1, eth2 и т.д.
Различные сетевые утилиты, предназначенные для автоматического конфигурирования сети должны быть выключены. Для отключения запущенного Network Manager введите команду, представленную на рис. 3.2.
Рис. 3.2. Остановка NetworkManager
Network Manager после этого не выгрузится, но не будет видеть никаких соединений.
Отключение автоматического запуска Network Manager:
1. Откройте для редактирования файл /etc/rc.local,например командой:
$ sudo gedit /etc/rc.local
2. Добавьте в него (перед строкой со словом exit 0) выключение NM (рис. 3.3):
Рис. 3.3. Редактирование файла rc.local
Настройка проводной сети
Для настройки IP адреса, шлюза по умолчанию, маски подсети, отредактируйте файл конфигурации /etc/network/interfaces, например так:
$ sudo gedit /etc/network/interfaces
Для статического IP отредактируйте данный файл так, как представлено на рис. 3.4:
Рис. 3.4. Настройка сетевого интерфейса
Где:
- iface eth0 inet static - указывает, что интерфейс (iface eth0) находится в диапазоне адресов IPv4 (inet) со статическим ip (static);
- address 192.168.0.1 - указывает что IP адрес (address) нашей сетевой карты 192.168.0.1;
- netmask 255.255.255.0 - указывает что маска подсети (netmask) имеет значение 255.255.255.0;
- gateway 192.168.0.254 - адрес шлюза (gateway) по умолчанию 192.168.0.254;
- auto eth0 - указывет системе что интерфейс eth0 необходимо включать автоматически при загрузке системы с вышеуказанными параметрами.
eth0 - имя подключаемого своего интерфейса. Список интерфейсов можно посмотреть набрав (рис. 3.5):
$ ifconfig –a
Рис. 3.5. Вывод списка интерфейсов
Пример конфигурации для динамического IP приведен на рис. 3.6:
Рис. 3.6. Конфигурация для динамического IP
Временная настройка IP адреса и маски подсети
При необходимости задать пробные настройки, выполните (рис. 3.7):
Рис. 3.7. Временные настройки адаптера
Где 192.168.0.1 - IP адрес, 255.255.255.0 - маска подсети.
eth0 - подключаемый сетевой интерфейс.
Данные настройки пропадут после перезагрузки системы и не повлияют на файл /etc/network/interfaces.
Межсетевой экран
Ядро linux содержит подсистему (модуль) Netfilter, которая используется для управления приходящими или проходящими через сервер пакетами. Все современные брандмауэры используют эту систему для фильтрации tcp пакетов. Без интерфейса эта система мала полезна для администратора. Для управления используется iptables. При получении пакета вашим сервером, он передается Netfilter для принятия им решения: принять, обработать, или отбросить его. Таким образом, iptables это все, что нужно для управления брандмауэром. Для управления iptable существует множество программ, в том числе и ufw, которая в Ubuntu используется по умолчанию.
Ufw представляет из себя простой механизм для создания правил фильтрации пакетов IPv4 и IPv6. Данный пакет, после установки, по умолчанию отключен. Для включения ufw необходимо ввести команду:
Рис. 3.8. Команда включение ufw
После запуска межсетевого экрана необходимо открыть все необходимые порты. Это делается командой, приведенной на рис. 3.9.
Рис. 3.9. Открытие порта
В данном примере межсетевой экран открывает 22 порт, который используется ssh. Для того, что бы закрыть открытый порт, необходимо ввести команду, приведенную на рис. 3.10.
Рис. 3.10. Закрытие порта
При вводе данной команды, мы получили сообщение, что правило обновлено. Так же какое-либо правило можно удалить, для этого необходимо воспользоваться командой (рис.3.11):
Рис. 3.11. Удаление правила
Возможно разрешить доступ для определенных хостов или сетей. На рис. 3.12 показано как разрешить доступ хосту с ip адресом 192.168.0.2 на хост с любым ip по протоколу ssh. Если заменить 192.168.0.2 на 192.168.0.0/24 то мы разрешим протокол ssh для любого хоста этой локальной сети.
Рис. 3.12. Определение доступа для определенных хостов
При указании опции --dry-run будет выводить результат применения правила, но применяться они не будут. Например, если набрать команду:
sudo ufw --dry-run allow http
будет показана цепочка применяемых правил для открытия порта HTTP.
Для отключения ufw, просмотра состояния брандмауэра и вывода дополнительной информации о нем, необходимо воспользоваться соответствующими командами, приведенными на рис. 3.13.
Рис. 3.13. Команды остановки и просмотра состояния ufw
Если порт который вы хотите открыть или закрыть определен в файле /etc/services, вы можете указывать текстовое имя порта вместо его номера. Например, в приведенных выше примерах, можно заменить 22 на ssh.
Практическая работа
1. Выведет на экран все подключенные сетевые интерфейсы;
2. Отключите Network Manager, и отключите автоматический запуск Network Manager'а;
3. Настройте свой адаптер, задав следующие параметры:
IP: 192.168.0.1
Маска сети: 255.255.255.0
4. Включите межсетевой экран и добавьте в него правило: запретить входящий трафик по 80му порту;
5. Запретите любой исходящий трафик по 20му порту;
6. Разрешить доступ по 20му порту с ip-адреса 192.168.0.1.
Контрольные вопросы
1. Какие файлы конфигурации сети существуют в Linux?
2. Каким образом присваиваются имена интерфейсам в Linux?
3. Какого назначение модуля Ufw?
4. Каким образом осуществляется фильтрация пакетов в Linux?