В Ubuntu Linux 8.04 появилась прекрасная утилита ufw, представляющая собой фаервол для Ubuntu Linux.

ufw представляет собой надстройку, исключающую необходимость вручную править настройки iptables.

Расскажем по порядку, как установить firewall на Ubuntu.

Устанавливаем ufw  командой:

sudo apt-get install ufw

Для включения фаервола выполняем команду:

sudo ufw enable

для выключения:

sudo ufw disable

Существуют две начальные конфигурации. Первая "максимальной открытости":

sudo ufw default allow

и вторая "максимальная закрытость":

sudo ufw default deny

При первом включении ufw используется "максимальная закрытость".

Запрет принимать входящие подключения устанавливается так:

sudo ufw deny 80/tcp

В этом примере мы запрещаем доступ к 80 порту на нашей машине.

 

Например, нам надо закрыть доступ на удаленном веб-сервере для всех портров, кроме SSH и HTTP.

Для этого выполняем следующие команды:

sudo ufw default deny - закрываем все порты

sudo ufw allow 80/tcp - открываем порт 80 для HTTP соединений

sudo ufw allow 22/tcp - открываем порт 22 для SSH cоединений.

Не стоит забывать, что при выполнении этих команд из окна SSH-терминала сессия может быть разорвана и следует заранее подумать о возобновлении входа. Как вариант, вышеперечисленные команды можно оформить в sh файл и выполнить его на удаленном сервере. 

Послк внесения изменений не помешает перезапустить ufw:

# ufw enable|disable

 

Приведу еще пример использования ufw.

 

Включение и выключение журналирования (logging)

# ufw logging on|off

Можно также настроить ufw для принятия или отклонения входящих пакетов для запущенных в системе сервисов. Сервис должен присутствовать в /etc/services .

Также можно настраивать доступ по формату ‘protocol:port’, или по метаданным (meta-data) входящих пакетов.

Директива ‘allow’ в таком случае добавляет запись о сервисе в /etc/ufw/maps, а директива ‘deny’ удаляет запись о сервисе из /etc/ufw/maps.

# ufw allow|deny [service]

Посмотреть статус, сохрененный в  /var/lib/ufw/maps, можно следующей командой:

# ufw status

Парочка примеров использования ufw:

Разрешить порт 53:

$ sudo ufw allow 53

Удалить разрешение на открытие порта 53:

$ sudo ufw delete allow 53

разрешить доступ к порту 80:

$ sudo ufw allow 80/tcp

закрыть доступ к порту 80:

$ sudo ufw delete allow 80/tcp

Разрешить порты по имени протокола, например smtp:

$ sudo ufw allow smtp

Закрыть проты для протокола smtp:

$ sudo ufw delete allow smtp

Открыть доступ только с определенного адреса IP:

$ sudo ufw allow from 192.168.254.254

Удалить разрешение доступа с этого адреса:

$ sudo ufw delete allow from 192.168.254.254

Просмотреть пронумерованный статус:

$ sudo ufw status numbered

Удалить правило rule

$ sudo ufw delete rule

Открыть доступ к 80 порту только с определенного IP (для примера 192.168.0.101)

$ sudo ufw allow from 10.10.7.4 to any port 80

 

Как и всегда, документацию с примерами вы можете найти командой:

man ufw