Наверное, использовать именно его - самый простой способ "защититься". Включается он просто -
$ sudo ufw enable
По-умолчанию он запрещает весь входящий траффик и разрешает исходящий:
$ ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing) New profiles: skip
Теперь посмотрим, что же стоит за всем этим...
На самом деле ufw создает примерно полтора десятка разных цепочек iptables, рассовывая по ним кучу разных правил, так что разобраться, что же сломалось после его применения будет в разы сложнее:
# iptables -L -v -n Chain INPUT (policy DROP 2 packets, 64 bytes) pkts bytes target prot opt in out source destination 344 31500 ufw-before-logging-input all -- * * 0.0.0.0/0 0.0.0.0/0 344 31500 ufw-before-input all -- * * 0.0.0.0/0 0.0.0.0/0 23 2608 ufw-after-input all -- * * 0.0.0.0/0 0.0.0.0/0 5 160 ufw-after-logging-input all -- * * 0.0.0.0/0 0.0.0.0/0 5 160 ufw-reject-input all -- * * 0.0.0.0/0 0.0.0.0/0 5 160 ufw-track-input all -- * * 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ufw-before-logging-forward all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ufw-before-forward all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ufw-after-forward all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ufw-after-logging-forward all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ufw-reject-forward all -- * * 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 254 23653 ufw-before-logging-output all -- * * 0.0.0.0/0 0.0.0.0/0 254 23653 ufw-before-output all -- * * 0.0.0.0/0 0.0.0.0/0 56 3591 ufw-after-output all -- * * 0.0.0.0/0 0.0.0.0/0 56 3591 ufw-after-logging-output all -- * * 0.0.0.0/0 0.0.0.0/0 56 3591 ufw-reject-output all -- * * 0.0.0.0/0 0.0.0.0/0 56 3591 ufw-track-output all -- * * 0.0.0.0/0 0.0.0.0/0
Что радует (или огорчает) - он по-умолчанию сразу разрешает DHCP запросы, так что хотя-бы DHCP-клиент у вас ломаться не должен. Одновременно с этим он разрешает и сервис avahi. Все остальное нужно разрешать самим. Кроме того, он настраивает логирование заблокированных пакетов, так что в dmesg или syslog они будут.
Как же после этого разрешать что-либо?
$ sudo ufw allow 22/tcp
Просто разрешить ssh. Или только себе, скажем:
$ ufw allow from 172.20.1.4 to any port 22 proto tcp
На этом моменте начинает казаться, что ufw писали фанатики синтаксиса ipfw. :)
Дальше - хуже. Удобства от ufw кончаются, как только вам нужно что-то более сложное, например, nat. Тут вам придется таки учить синтаксис iptables:
/etc/ufw/before.rules: *nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 172.16.0.0/24 -o eth0 -j MASQUERADE COMMIT
Такие вот дела, может кому-нибудь и нужен такой малофункциональный фронтенд к пакетному фильтру. У него есть одно достоинство - он загружает и сохраняет правила, что обычно является проблемой. А если кто не хочет и хочет что-то посложнее, в следующей заметке я расскажу, как ноутбучным и десктопным пользователям к NetworkManager прикрутить загрузку правил iptables.
Комментариев нет:
Отправить комментарий