*** Виртуальный роутер *** на TinyCore от Aminuxer { Ваша доверенная сеть } \ { Эта VM } \ { Недоверенные / заражённые VM / подсети } Мини-шлюз с файерволом для мониторинга/изоляции других ВМ/подсетей с менее доверенными сервисами. Также будет полезен при изучении iptables, ipset, vlan, qinq, бриджинга. Для особых эстетов - Traffic Control, Quagga 42 Мб .ova --> 55 Mb .vmdk * DHCP-клиент на первой сетевухе eth0 - EXT, аплинк * DHCP-сервер на второй сетевухе - INT, к другим ВМ * Поддержка VLAN / QinQ (см. пример /opt/eth1-vlan69.sh) * Серверы DNS / DHCP / TFTP на DNSMasq * SSH-сервер на аплинке EXT, eth0 (авторизация по ключам) * tc - поддержка Traffic Control / QoS * brctl - бриджи / STP * Quagga - протоколы динамической марщрутизации BGP/RIP/OSPF * Эмулятор SMTPd /opt/other/fake_smtpd.sh для ловли спама * tcpdump * Сканер портов nmap * links, wget, mc, iperf3, htop, sshpass, nc, iproute2 * Файервол iptables /opt/fw.sh : + Списки адресов на ipset /opt/fw-pre.sh + Изоляция между подсетями INT-EXT (запрет доступа в локалку) /opt/fw.sh + Отключение файерврола /opt/other/fw_bypass.sh + Ручной дополнительный блоклист banist /opt/other/txt2_banlist.sh + Hashlimit - лимит DNS/NTP/SSDP флуда из INT LAN в интернет + Лимиты SSH/Mail траффика из INT LAN в интернет + probability - эмуляция нестабильно канала, см. VLAN69 Ограничения pps / полосы в отдельно тегированном влане VLAN69 TCZ-Пакеты: ipset iptables bash net-bridging-5.15.10-tinycore bridge-utils dnsmasq quagga openssh inetutils iperf3 iproute2 htop links mc nmap tcpdump wget sshpass Использование: - установите VirtualBox, импортируйте ova-файл - в настройках VM первой сетевой карте поставьте режим NAT или сетевой мост с доверенной сетью, откуда у вас интернет. Как правило, это ваша основная сетевая карта. - для второй сетевой карты укажите либо внутреннюю сеть с заданным именем (если планируется обслуживать только локальные ВМ), либо сетевой мост с тем интерфейсом, где у вас подсоединена недоверенная сеть - Если планируется обслуживать более 20 машин - добавьте одно-два ядра и 128-256 Мб памяти - Запустите ВМ. Система при первой загрузке сгенерит ключи для SSHd и залогинится локально - введите команду backup для сохранения этих ключей. - ВМ готова к работе Если у вас нет DHCP-сервера во внешней сети. - После старта ВМ с помощью vi / mcedit отредактируйте /opt/eth0.sh Закомментируйте dhcpc, раскомментируйте и исправьте настройки сетевой карты в примере. - выполните команду backup и перезагрузитесь. Если вам нужные другие адреса во внутренней недоверенной сети. - По умолчанию есть основная сеть на второй сетевой карте eth1 c 192.168.8.0/24 и поверх неё - ещё одна тегированная локальная сеть - влан69 с 192.168.69.0/24 - Обе сети не имеют доступа в доверенную локалку на eth0 - Для изменения настроек отредактируете файлы /opt/eth1.sh и /usr/local/etc/dnsmasq.conf Для влана-69 - файл /opt/eth1-vlan69.sh - Поменяйте адреса 192.168.** на нужные вам. - выполните команду backup и перезагрузитесь Двойное тегирование QinQ - раскомментируйте пример в /opt/eth1-vlan69.sh - добавьте по аналогии строчки настроек файервола в /opt/fw.sh По умолчанию доступ закрыт. - backup, reboot Удалённый и локальный доступ (SSH) - Для отмены локального автологина: * смените пароль рута: passwd root * touch /etc/sysconfig/noautologin * backup * reboot После перезагрузки потребуется ввести пароль. По умолчанию стоит root / rootroot - Доступ через SSH по-умолчанию стоит только по ключам. * Для более удобного скачивания ключей есть mc / wget / links * После добавления ключей не забудьте команду backup - Для доступа через SSH по паролю сперва установите пароли, затем отредактируйте /usr/local/etc/ssh/sshd_config поставьте PasswordAuthentication yes + можно поставить AllowUsers root в конце файла * не забудьте о команде backup Сетевой мониторинг и анализ - список правил файервола: iptables --list -vn - списки ipset ipset list - Мониторинг траффика: /opt/other/eth1_tcpdump.sh - сканер портов nmap - спам-ловушка (фейк-SMTPd) /opt/other/fake_smtpd.sh Загрузка и системные особенности - TinyCore по своим принципам управления больше похожа на линукс-прошивку железки, чем на десктопный дистрибутив. - Между ребутами сохраняется только то, что перечислено в /opt/.filetool.lst и что не забыли засабмитить командой backup ! - Схема загрузки: * ядро + базовая ФС из /mnt/sda1/tce/boot грузятся * затем подключаются образы доп.софта из /mnt/sda1/tce/optional * восстанавливается ранее сохранённый бекап скриптов и конфигов из /mnt/sda1/tce/mydata.tgz * Запускаются базовые сервисы * Запускается /opt/bootsync.sh, из него уже /opt/bootlocal.sh и всё остальное - Для добавления новых вланов можно написать свой скрипт типа /opt/eth1.sh или исправить существующий. - Я добавил несколько полезных скриптов в /opt/other - Файервол может быть весьма навороченным по конфигу. Если вы что-то сломали в его конфиге - всегда можно перевести шлюз в прозрачный, менее безопасный режим скриптом /opt/other/fw_bypass.sh - Для использования крупных файлов под tcpdump-ы, логи или TFTP-сервер лучше выделить отдельный диск, чем расширять системный. Для этого выключите ВМ, добавьте ещё один виртуальный диск нужного размера, запустите ВМ, с помощью fdsik /dev/sdb создайте там раздел, отформатьте с помощью mkfs.ext4 /dev/sdb1 , в /opt/bootlocal.sh добавьте например такую строчку: mkdir /mnt/sdb1 && mount /dev/sdb1 /mnt/sdb1 Выполните backup и reboot После ребута проверьте подключение диска командой df -h -t ext4 - Для установки других пакетов зайдите пользователем tc: su - tc , запустите менеджер пакетов tce , с помощью кнопок [S], [I] и подсказок поставьте требуемое. Там ещё 14 Мб места есть. - Если место в корне таки кончилось / не хватает, и таки хочется расширить. Выключаем ВМ, докидываем памяти в ВМ, грузим Knoppix, ресайзим раздел, например GParted-ом.