Всем привет!
На компьютерах домашней сети (ADSL-модем -> wi-fi-точка доступа -> компьютеры) хочу использовать следующую конфигурацию iptables:
#Чистим существующие правила во всех цепочках
iptables -F
#Политики по умолчанию
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#Разрешаем 127.0.0.0 - необходимо для нормальной работы ОС
iptables -A INPUT -i lo -j ACCEPT
#Принимаем пакеты для программ, которые уже установили соединение или требуют создание нового соединения
iptables -A INPUT -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
#Запрещаем трафик не открывающий новое соединение и не принадлежащий никакому установленному соединению
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
#Разрешаем новые ICMP запросы, полезно если что-то пойдёт не так
iptables -A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT
Вопросы:
- Достаточно ли всего этого, или требуются ещё какие-то правила (или вообще лучше явно указывать для каких портов разрешены соединения, без применения модуля conntrack)?
- Стоит ли использовать фильтрацию по MAC- и ip-адресам? Если да, то использовать «глобальную» фильтрацию:
или фильтровать пакеты только для отдельных сервисов, например, NFS:
iptables -A INPUT -s 192.168.0.0/24 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -m mac --mac-source mac1,mac2,...,macN -j ACCEPT
где нужно использовать MAC-адреса И компьютеров ЛВС И маршрутизатора?iptables -A INPUT -p tcp --dport 2049 -s 192.168.0.0/24 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -m mac --mac-source mac1,mac2,...,macN -j ACCEPT,
- Запрещать все новые входящие соединения, не обработанные предыдущими цепочками, следует используя:
или ограничиться политиками по умолчанию?
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset iptables -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable iptables -A INPUT -j REJECT --reject-with icmp-proto-unreach
- Будут ли совместимы настройки iptables различных версий при использовании модулей (или для совместимости лучше использовать «простое решение» - явное указанием портов, для которых разрешено устанавливать соединения)? Будут ли проблемы при применении одних и тех же настроек в различных (более-менее современных) дистрибутивах?
На правах оффтопика:
- В Ubuntu и Fedora:
Это ведь не очень хорошо (из-за INPUT, FORWARD policy ACCEPT)? Или Linux настолько защищён при конфигурации по умолчанию, что даже firewall настраивать не нужно/можно в подавляющем большинстве случаев обходиться такой конфигурацией iptables?
sudo iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT udp -- anywhere anywhere udp dpt:domain ACCEPT tcp -- anywhere anywhere tcp dpt:domain ACCEPT udp -- anywhere anywhere udp dpt:bootps ACCEPT tcp -- anywhere anywhere tcp dpt:bootps Chain FORWARD (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere 192.168.122.0/24 state RELATED,ESTABLISHED ACCEPT all -- 192.168.122.0/24 anywhere ACCEPT all -- anywhere anywhere REJECT all -- anywhere anywhere reject-with icmp-port-unreachable REJECT all -- anywhere anywhere reject-with icmp-port-unreachable Chain OUTPUT (policy ACCEPT) target prot opt source destination
- Для обеспечения безопасности («на бытовом уровне») достаточно будет настроить только iptables или очень желательно что-то ещё (тщательная настройка apparmor/selinux, управление правами доступа, мониторинг активности портов, трафика, журналов)?
- Для защиты от дешифровки трафика достаточно использовать WPA2?
- Можно ли в настройках wi-fi роутера указать тот же диапазон ip-адресов для локальной сети, что и в настройках ADSL-модема?