Часть 1. Введение.
Часть 2. Подготовка.
Часть 3. Samba 4 AD DC.
Часть 4. FreeRadius. NTLM-авторизация.
Часть 5. Точка доступа Wi-Fi при помощи HOSTAPD.
Часть 6. Доступ в интернет при помощи PPPoE. Фаервол IPTables.
Часть 7. Подключение уже созданного RAID-массива. NFS server.
Часть 8. Баг при подключении к Wi-Fi внутри домена. FreeRadius.
PPPoE
Простейший способ настроить PPPoE соединение это установить утилиту pppoeconf.
apt-get install pppoeconf
Внимание! Теперь вам необходимо отключить Orange Pi от роутера, и поставить плату на его место, сделав так чтобы Orange Pi стал вашим роутером. В моем случае это воткнуть в Ethernet-гнездо Orange Pi кабель от провайдера и соединить компьютер с USB-to-Ethernet адаптером Orange Pi.
После этого к Orange Pi необходимо будет подключаться по новому адресу, заданному у интерфейса br0 в предыдущей части. В моём случае это 192.169.100.1
Если подключение по новому адресу прошло успешно, можно начать конфигурировать доступ в интернет. Запустим pppoeconf
pppoeconf
1) В диалоге POPULAR OPTIONS отвечаем Yes
2) В диалоге ENTER USERNAME необходимо указать свой логин выданный провайдером для доступа в интернет.
3) В диалоге ENTER PASSWORD необходимо указать свой пароль выданный провайдером для доступа в интернет.
4) В диалоге USE PEER DNS отвечаем No, т.к. в файле resolv.conf в качестве DNS прописан наш локальный адрес и нам не нужно его менять.
5) В диалоге LIMITED MSS PROBLEM отвечаем Yes чтобы включить mss clamping, упомянутый во второй части.
6) В диалоге DONE отвечаем Yes, чтобы соединение автоматически поднималось при старте системы.
7) В диалоге ESTABLISH A CONNECTION отвечаем Yes, чтобы немедленно поднять соединение.
Готово. Чтобы проверить доступ в интернет. Скачайте какую-нибудь страничку на Orange Pi при помощи wget или пинганите что-нибудь.
IPTables
Соединение с интернетом установлено, но им пока может пользоваться только сам Orange Pi, да еще и со всеми открытыми в интернет портами.
Для того чтобы обезопасить своё соединение с интернетом и позволить устройствам в локальной сети его использовать необходимо грамотно настроить iptables.
Для этого создадим срипт, содержащий правила iptables, например /home/root/iptables.sh, со следующим содержимым:
#!/bin/sh IPT="iptables" # Интерфейс который смотрит в интернет WAN_IFACE=ppp0 # Интерфейс локальной сеть LAN_IFACE=br0 # Адрес локалки LAN=192.169.100.1/24 # Удаление всех правил из таблиц $IPT -t filter -F $IPT -t nat -F $IPT -t raw -F $IPT -t mangle -F #Удаление всех пользовательских цепочек из таблиц $IPT -t filter -X $IPT -t nat -X $IPT -t raw -X $IPT -t mangle -X # В качестве политики по умолчанию - отброс всех пакетов. # Иными словами, если пакет из указанных таблиц не затронуло ни одно из нижеперечисленных правил, к нему будет применено действие DROP. $IPT -P INPUT DROP $IPT -P FORWARD DROP # Разрешим устройствам из внешки пинговать роутер $IPT -A INPUT -i $WAN_IFACE -p icmp --icmp-type echo-request -j ACCEPT # Также разрешим доступ из внешки к роутеру, но разрешим её только пакетам в установленных(ESTABLISHED) и дочерних(RELATED) соединениях. # Иными словами, пробрасываются только те пакеты, инициаторами соединений которых выступили мы сами. Пакеты соединений со статусом NEW(статус установки соединения) и другими статусами отбрасываются. $IPT -A INPUT -i $WAN_IFACE -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # остальные запросы из внешки - накуй $IPT -A INPUT -i $WAN_IFACE -j REJECT # Разрешим обращение к роутеру от локального интерфейса(localhost) и от устройств из локальной сети $IPT -A INPUT -i lo -j ACCEPT $IPT -A INPUT -i $LAN_IFACE -j ACCEPT #Разрешим доступ с интерфейса eth0 на случай, если понадобится опять подключаться через него $IPT -A INPUT -i eth0 -j ACCEPT #Разрешить устройствам в сети общаться между собой $IPT -A FORWARD -i $LAN_IFACE -o $LAN_IFACE -j ACCEPT # Ниже три правила для обеспечения доступа устройств из локалки в интернет и обратно. # Разрешим устройствам из локалки обрашаться во внешку $IPT -A FORWARD -s $LAN -o $WAN_IFACE -j ACCEPT # Разрешим и обратную связь - из внешки к устройствам в локалке, по аналогии с похожим правилом в цепочке INPUT. $IPT -A FORWARD -d $LAN -m conntrack --ctstate ESTABLISHED,RELATED -i $WAN_IFACE -j ACCEPT # Для всех пакетов из локальной сети во внешку делаем Маскарадинг - подмену адреса источника пакета внешним адресом роутера. $IPT -t nat -A POSTROUTING -s $LAN -o $WAN_IFACE -j MASQUERADE # Также для доступа устройств из локалки в интернет потребуется включить проброс пакетов. echo '1' > /proc/sys/net/ipv4/ip_forward # Вклюим MTU clamping. Это правило было внесено в таблицу mangle утилитой pppoeconf - оставляем как есть. $IPT -A FORWARD -t mangle -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu exit 0
Подставив в начале скрипта свой адрес подсети, если вы используете другой, или поменяв сетевые интерфейсы, если они у вас отличаются, вы получите готовый скрипт, который на базовом уровне обезопасит вас от внешних атак.
Но прежде чем использовать этот скрипт, добавим права на его выполнение:
chmod +x /home/root/iptables.sh
Исполнив этот скрипт, вы можете проверить наличие интернета на сетевых устройствах. Также вы можете протестировать доступ извне при помощи онлайн сканеров — доступ будет только для пинга.
Для того, чтобы правила загружались при старте сети создаем файл /etc/network/if-pre-up.d/firewall со следующим содержимым:
#!/bin/sh /home/root/iptables.sh
Также разрешим выполнение этого файла:
chmod +x /etc/network/if-pre-up.d/firewall
Готово. После перезагрузки Orange Pi будет автоматически раздавать интернет локальным устройствам и будет защищен.
Осталось настроить raid и nfs.