UFW - отклоняют исходящий за исключением Кв. - получают обновления?

К сожалению, ZFS является действительно только опцией на Солярисе, его производные (Illumos (Shillix, OpenIndiana, и др.)) и FreeBSD. В то время как ZFS может использоваться в системах Linux через FUSE, это очень медленно, и так как это - процесс блокирования существуют некоторые глюки. Например, если Вы привыкли делать, zfs отправляют | zfs, получают на том же поле, которое не будет работать над ZFS-FUSE.

В то время как это нигде не рядом как многофункциональное, BTRFS, кажется, обеспечивает часть функциональности, найденной в ZFS, и я подозреваю, что это работало бы лучше и было бы значительно более стабильным.

И в то время как существует материал zfsonlinux, который является едва больше, чем, "смотрят, я заставил его работать" усилие. Мне, который подразумевает, что это находится все еще прямо в области интереса для разработчиков файловой системы, и нигде около качества или устойчивости, которой я потребовал бы для своих персональных полей игры, а тем более чего-либо, что имело данные по нему, что я на самом деле заботился о.

1
задан 24 October 2018 в 12:55
3 ответа

Расширение ответа Халеда кратким примером: ...

Программа Python для перечисления IP-адресов, связанных с обновлениями программного обеспечения:

#!/usr/bin/env python
import re, subprocess
re1 = re.compile("deb http://(.+?)/")
re2 = re.compile("Address:\s*(\d+\.\d+\.\d+\.\d+)")
IPv4 = {}
with open("/etc/apt/sources.list") as f:
  for line1 in f:
    m1 = re1.match(line1)
    if(m1):
      url = m1.group(1)
      p = subprocess.Popen(["nslookup", url], stdout=subprocess.PIPE)
      out,err = p.communicate()

      # Parse the output of nslookup:
      next_line_is_address = False
      for line2 in out.split("\n"):
        if(line2.startswith("Name:")):
          next_line_is_address = True
        elif(next_line_is_address):
          m2 = re2.match(line2)
          if(m2):
            IPv4[m2.group(1)] = True
          next_line_is_address = False

print "\n".join(sorted(IPv4.keys()))
# or call "ufw allow..." to allow port 80 outbound to these addresses

Пример вывода (по состоянию на январь 2014 г.):

user@pc:~$ ./ubuntu_servers.py 
194.169.254.10
91.189.91.13
91.189.91.14
91.189.91.15
91.189.92.156
91.189.92.190
91.189.92.200
91.189.92.201

whois 91.189.92.201 говорит, что 91.189.91.0/24 принадлежит Canonical, поэтому, если мы настраиваем брандмауэр, этот диапазон адресов может быть полезным запомнить.

1
ответ дан 3 December 2019 в 18:48

Обычно я не использую ufw. Я использую iptables напрямую.

Ubuntu обычно получает обновления по протоколу http. Итак, вам нужно открыть исходящий HTTP-порт. Если вы хотите ограничить свои правила на определенных хостах, вам необходимо выяснить IP-адреса репозиториев Ubuntu /etc/apt/sources.list .

Лучшее решение - перенаправить HTTP-трафик на веб-прокси и разрешить только определенные домены / URL. Это более точно, чем преобразование имен в IP-адреса для их блокировки с помощью брандмауэра.

2
ответ дан 3 December 2019 в 18:48

Мой ответ для более общего случая, не только для apt-get .

Запретить все исходящие IP-адреса, кроме одного IP-адреса

sudo ufw default deny outgoing
sudo ufw allow out to 11.22.33.44

Чтобы быстро вернуться, снова разрешите все исходящие IP-адреса

sudo ufw default allow outgoing

Чтобы запретить все исходящие IP-адреса, кроме HTTP и HTTPS, на одном IP-адресе

Вы можете ввести более строгие ограничения:

sudo ufw default deny outgoing
sudo ufw allow out to 11.22.33.44 port http   # TCP 80
sudo ufw allow out to 11.22.33.44 port https  # TCP 443

Два приведенных выше правила разрешают только TCP, вам необходимо указать протокол (tcp или udp). Вы даже можете ввести более строгие ограничения, указав интерфейс как eth0, например, чтобы избежать использования WiFi ... Но я думаю, что это бесполезно ...

Проверьте / очистите свои правила UFW

Если другой IP-адрес все еще доступен , происхождение может быть некоторыми остаточными правилами. Рекомендуется проверить текущие правила UFW:

sudo ufw status numbered

Возможно, вам придется удалить некоторые правила загрязнения:

sudo ufw delete 3   # Attention:
sudo ufw delete 2   # 2 and 3 are examples

Также разрешить DNS

Ваше программное обеспечение может использовать доменное имя вместо цифрового IP-адреса.

Как UFW использует числовой IP-адрес, следующий пример руководства должен быть написан, чтобы его можно было легко выполнить снова при изменении IP-адресов.

Получить IP-адрес DNS
$ resolvectl status | grep -2 'DNS Server'
      DNSSEC setting: no
    DNSSEC supported: no   Current DNS Server: 22.22.22.20
         DNS Servers: 22.22.22.20
                      22.22.22.21
                      2b01:a00::2
Разрешить DNS (TCP и UDP) только для ваших DNS-серверов
$ sudo ufw allow out to 22.22.22.20 port 53
Rule added
$ sudo ufw allow out to 22.22.22.21 port 53
Rule added
Разрешить DNS ( TCP и UDP) только для ваших DNS-серверов
$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 11.22.33.44 443/tcp        ALLOW OUT   Anywhere     (log, out)
[ 3] 22.22.22.20 53             ALLOW OUT   Anywhere     (out)
[ 4] 22.22.22.21 53             ALLOW OUT   Anywhere     (out)
0
ответ дан 3 December 2019 в 18:48

Теги

Похожие вопросы