Как насторить брандмауэром UFW на сервере Ubuntu Linux 16.04 LTS , чтобы ограничить трафик на мой личный веб-сервер, на котором размещены мои фотографии и блоги для членов моей семьи?nnUFW является аббревиатурой простой брандмауэр. Он используется для управления брандмауэром Linux и призван обеспечить простой в использовании интерфейс для пользователя. В этом уроке вы узнаете, как использовать UFW с IPTables для управления брандмауэром на Ubuntu Linux 16.04 LTS сервере.n
Установка UFW
UFW входит в состав Ubuntu, но не в Debian Linux. Введите следующую команду APT-GET установите UFW на сервере Debian Linux:n
$ sudo apt-get update n$ sudo apt-get install ufw
Как просмотреть статус UFW?
По умолчанию UFW в неактивном состоянии т.е. нет правил брандмауэра не настроен и весь трафик разрешен. Чтобы увидеть статус, введите следующую команду:n
$ sudo ufw status
Примеры результата:n
Статус: неактивный
Настройка политики по умолчанию
По умолчанию, когда UFW активируется он блокирует весь входящий трафик на межсетевой экран / сервер. Только исходящий трафик разрешен. Вы можете просмотреть правила по умолчанию UFW, введя следующую команду:n
$ grep 'DEFAULT_' /etc/default/ufw
Пример результата:n
DEFAULT_INPUT_POLICY="DROP"nDEFAULT_OUTPUT_POLICY="ACCEPT"nDEFAULT_FORWARD_POLICY="DROP"nDEFAULT_APPLICATION_POLICY="SKIP"
Политика по умолчанию работает хорошо для серверов и ноутбуков / рабочих станции, так как вам нужно только открыть ограниченное количество входящих портов. Это хорошая политика, она закрывает все порты на сервере / брандмауэра, и вам нужно только открыть порты один за другим. Вы можете выполнить следующие команды, чтобы установить политику, блокировать все входящие соединения и разрешить только исходящие соединения от сервера / межсетевого экрана:n
$ sudo ufw default allow outgoing n$ sudo ufw default deny incoming
Создание первого правила брандмауэра, чтобы разрешить подключение к SSH (TCP-порт 22)
Введите следующую команду, чтобы разрешить SSH-соединения с сервером:n
$ sudo ufw allow ssh
ИЛИn
sudo ufw allow 22/tcp
Скажем, если вы работаете в SSH на порту 2020, введите следующую команду:n
$ sudo ufw allow 2020/tcp
Следующие правила открывают доступ к TCP SSH порт 22 только на 10.8.0.1 (т.е. ваш сервер SSH слущает на IP 10.8.0.1 порт 22) из любого места:n
$ ufw allow proto tcp from any to 10.86.115.66 port 22
Как добавить комментарий к правилу?
Используйте следующий синтаксисn
$ sudo ufw rule comment 'my cool comment here'
Откройте порт 53 и напишите комментарий о правиле:n
ufw allow 53 comment 'open tcp and udp port 53 for dns'
Другой пример:n
ufw allow proto tcp from any to any port 80,443 comment 'my cool web app ports'
Включить брандмауэр на основе UFW
Теперь у вас есть политика по умолчанию и SSH порт разрешен. Это безопасно для того, чтобы включить брандмауэр, введите следующую команду:n
$ sudo ufw enable
Примеры выходов:n
Команда может нарушить существующие соединения SSH. Продолжайте операции (Y | N)? У n Брандмауэр активен и включен при запуске системы
После включения, брандмауэр запускается и после перезагрузки.n
Отключить брандмауэр на основе UFW
Если вам нужно остановить брандмауэр и отключить при запуске системы, введите следующую команду:n
$ sudo ufw disable
Примеры вывода:n
Брандмауэр остановлен и отключен при запуске системы
Как я могу проверить статус моих правил?
Используйте команду статус:n
$ sudo ufw status n$ sudo ufw status verbose
Примеры вывода:nn
Status: activenLogging: on (low)nDefault: deny (incoming), allow (outgoing), deny (routed)nNew profiles: skipn n nTo Action Fromn-- ------ ----n192.168.1.10 443/tcp ALLOW Anywheren192.168.1.10 22/tcp ALLOW Anywhere
Добавление большего количества правил (открытие портов и разрешение IP-адреса)
Синтаксис выглядит следующим образом, чтобы открыть порт TCP 22 и 443:n
$ sudo ufw allow 80/tcp n$ sudo ufw allow 443/tcp
Откройте сервер UDP / 1194 (OpenVPN):n
$ sudo ufw allow 1194/udp
Откройте порт 25 (smtpd / сервер электронной почты):n
$ sudo ufw allow 25
Вы можете разрешить диапазоны портов, TCP и UDP 3000 до 5000:n
$ sudo ufw allow 3000:5000/tcp n$ sudo ufw allow 3000:5000/udp
Разрешить соединения с определенного IP-адреса 1.2.3.4, введите следующую команду:n
$ sudo ufw allow from 1.2.3.4
Разрешить соединения с определенного IP-адреса 1.2.3.4, к нашему порту 22, введите следующую команду:n
$ sudo ufw allow from 1.2.3.4 to any port 22 proto tcp
ИЛИ (Dest 222.222.222.222 порт 22)n
$ sudo ufw allow from 1.2.3.4 to 222.222.222.222 port 22 proto tcp
Запрет доступа к порту (с IP и блока IP-адресов)
Синтаксис выглядит следующим образом, чтобы запретить доступ (т.е. просто игнорируя доступ к порту 443) к порту TCP — порт 443:n
$ sudo ufw deny 443/tcp
Запретить все соединения с IP-адреса 1.2.3.4, введите следующую команду:n
$ sudo ufw deny from 1.2.3.4
Запретить все соединения подсети 123.45.67.89/24, введите следующую команду:n
$ sudo ufw deny from 123.45.67.89/24
Запретить доступ с 1.2.3.4 на порт 22:n
$ sudo ufw deny from 1.2.3.4 to any port 22 proto tcp
Отклонять доступ к порту (сообщать пользователю, что он блокируются брандмауэром)
Синтаксис reject просто игнорирует трафик. Если вы хотите позволить пользователя узнать о том, когда трафик отклонен, а не просто игнорировать его, используйте синтаксис:n
$ sudo ufw reject in smtp n$ sudo ufw reject out smtp n$ sudo sudo ufw reject 1194 comment 'No more vpn traffic' n$ sudo ufw reject 23 comment 'Unencrypted port not allowed'
Если кто-то попытается подключиться к порту 23 они получат сообщение reject следующего содержания:n
Telnet: Невозможно подключиться к удаленному узлу: Соединение отклонено
Удаление правил брандмауэра UFW
Теперь вы знаете, как добавить, игнорировать, и получить список правил брандмауэра. Настало время, удалить ненужные правила. Есть два варианта удаления правила. Первый синтаксис:n
$ sudo ufw delete {rule-here}
В этом примере, удалить HTTPS (TCP-порт 443) трафика правило,n
$ sudo ufw delete allow 443
Если вы больше не желаете, разрешать трафик smptd / электронной почты (порт 25), выполните:n
$ sudo ufw delete allow 25
Второй вариант заключается в перечислении список всех текущих правил в пронумерованном виде списка:n
$ sudo ufw status numbered
Примеры выходов:nn
n
Status: activen n To Action Fromn -- ------ ----n[ 1] 10.8.0.1 22/tcp ALLOW IN Anywheren[ 2] Anywhere DENY IN 123.45.67.0/24n[ 3] 22/tcp DENY IN 1.2.3.4 |
nЧтобы удалить 2-е правило ( «UFW игнорировать от 123.45.67.89/24»), наберите команду:n
Deleting:n deny from 123.45.67.0/24nProceed with operation (y|n)? ynRule deleted
Как сбросить брандмауэр?
Синтаксис выглядит следующим образом, что бы сбросить UFW правила к заводским установкам по умолчанию и в неактивный режим, выполните следующую команду:n
$ sudo ufw reset
Примеры вывода:n
Сброс всех правил, установленных по умолчанию. Это может нарушить существующие SSHn соединения. Продолжайте операции (Y | N)? Уn Резервное копирование 'user6.rules' до '' /etc/ufw/user6.rules.20160801_121710n Резервное копирование 'after.rules' до '' /etc/ufw/after.rules.20160801_121710n Резервное копирование 'before.rules' до '' /etc/ufw/before.rules.20160801_121710n Резервное копирование 'after6.rules' до '' /etc/ufw/after6.rules.20160801_121710n Резервное копирование 'user.rules' до '' /etc/ufw/user.rules.20160801_121710n Резервное копирование 'before6.rules' до '' /etc/ufw/before6.rules.20160801_121710
Как перезагрузить брандмауэр?
Синтаксис выглядит следующим образом, перезагрузить брандмауэр:n
$ sudo ufw reload
При редактировании файла конфигурации UFW ‘, вам необходимо запустить команду перезагрузки. Например, вы можете редактировать /etc/ufw/before.rules, введите следующую команду:n
$ sudo nano /etc/ufw/before.rules
ИЛИn
$ sudo vi /etc/ufw/before.rules
Для того, чтобы разрешить весь трафик eth0 введите следующую команду:n
# Разрешить все на eth0n-A ufw-before-input -i eth0 -j ACCEPTn-A ufw-before-output -o eth0 -j ACCEPT
Сохраните и закройте файл. Обновить firwall:n
$ sudo ufw reload
Как просмотреть журналы брандмауэра?
По умолчанию все записи UFW хранятся в /var/log/ufw.log :n
$ sudo more /var/log/ufw.log n$ sudo tail -f /var/log/ufw.log
Примеры вывода:n
1 августа 12:09:48 server2 ядро: [+15727,245115] [UFW BLOCK] IN = BR1 OUT = MAC = 00: 25: 90: 4f: b0: 6f: 44: d3: CA: 5F: 89: 40: 08: 00 SRC = 62.210.181.123 DST = 75.xxx.yyy.zzz LEN = 40 TOS = 0x00 = 0x00 PREC TTL = 245 ID = 20343 DF PROTO = TCP SPT = 2328 ПТР = 80 ОКНО = 512 RES = 0x00 SYN URGP = 0 n 1 августа 12:09:58 server2 ядро: [+15737,485726] [UFW BLOCK] IN = BR1 OUT = MAC = 00: 25: 90: 4f: b0: 6f: 44: d3: CA: 5F: 89: 40: 08: 00 SRC = 187.134.225.91 DST = 75.xxx.yyy.zzz LEN = 46 TOS = 0x00 = 0x00 PREC TTL = 54 ID = 0 DF PROTO = UDP SPT = 54704 DPT = 53413 LEN = 26 n 1 августа 12:09:58 server2 ядро: [+15737,486102] [UFW BLOCK] IN = BR1 OUT = MAC = 00: 25: 90: 4f: b0: 6f: 44: d3: CA: 5F: 89: 40: 08: 00 SRC = 187.134.225.91 DST = 75.xxx.yyy.zzz LEN = 151 TOS = 0x00 = 0x00 PREC TTL = 54 ID = 0 DF PROTO = UDP SPT = 54704 DPT = 53413 LEN = 131
Вы можете искать по файлу журнала с помощью команды grep:n
$ sudo grep something /var/log/ufw.log n$ sudo grep '187.134.225.91' /var/log/ufw.log
Как получить UFW отчеты?
Отчет отображает список правил, так как они были добавлены в командной строке:n
$ sudo ufw reports added
Примеры вывода:n
Добавлены пользовательские правила (см 'UFW статус "для запуска брандмауэра):n UFW разрешить 22n UFW отклонить 23
Необработанные отчет показывают полный межсетевой экранn
$ sudo ufw reports raw n$ sudo ufw reports raw | more
В отчете прослушивания будет отображать порты на системе в состоянии прослушивания для протокола TCP и открытом состоянии для УДП, наряду с адресом интерфейса и кто прослушивает порт. ‘*’ Используется вместо адреса интерфейса, когда исполняемый файл связан со всеми интерфейсами на этом порту. После этой информации список правил, которые могут повлиять на соединения на этом порту. Правила перечислены в порядке, которм оцениваются ядром, а первое соответствие приоритетнее. Обратите внимание, что по умолчанию нет в списке и tcp6 и udp6 показываются только, если IPV6 включено:n
$ sudo ufw show listening n$ sudo ufw reports listening | more
n
tcp:n 22 10.86.115.66 (sshd)n [ 1] allow 22n n 22 10.8.0.1 (sshd)n [ 1] allow 22n n 443 75.xxx.yyy.zzz (openvpn)nudp:n 123 10.8.0.1 (ntpd)n 123 75.xxx.yyy.zzz (ntpd)n 123 10.86.115.66 (ntpd)n 123 * (ntpd)nudp6:n 123 * (ntpd) |
n
nДругие возможные отчеты:n
$ sudo ufw show builtins n$ sudo ufw show before-rules n$ sudo ufw show user-rules n$ sudo ufw show after-rules n$ sudo ufw show logging-rules
Если не получилось настроить фаервол, обращайтесь к нам за помощью, раздел Контакты.
Похожие статьи:
- Как заблокировать IP адрес с помощью ufw на Ubuntu Linux
- Как в nginx настроить бесплатный LetsEncrypt SSL сертификат на Debian или Ubuntu Linux
- Как настроить ufw для перенаправления трафика 80/443 на внутренний сервер, размещенный в локальной сети
- Установка расширения Suhosin PHP на Debian 8 и Ubuntu 14.04