К сожалению, ZFS является действительно только опцией на Солярисе, его производные (Illumos (Shillix, OpenIndiana, и др.)) и FreeBSD. В то время как ZFS может использоваться в системах Linux через FUSE, это очень медленно, и так как это - процесс блокирования существуют некоторые глюки. Например, если Вы привыкли делать, zfs отправляют | zfs, получают на том же поле, которое не будет работать над ZFS-FUSE.
В то время как это нигде не рядом как многофункциональное, BTRFS, кажется, обеспечивает часть функциональности, найденной в ZFS, и я подозреваю, что это работало бы лучше и было бы значительно более стабильным.
И в то время как существует материал zfsonlinux, который является едва больше, чем, "смотрят, я заставил его работать" усилие. Мне, который подразумевает, что это находится все еще прямо в области интереса для разработчиков файловой системы, и нигде около качества или устойчивости, которой я потребовал бы для своих персональных полей игры, а тем более чего-либо, что имело данные по нему, что я на самом деле заботился о.
Расширение ответа Халеда кратким примером: ...
Программа 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, поэтому, если мы настраиваем брандмауэр, этот диапазон адресов может быть полезным запомнить.
Обычно я не использую ufw. Я использую iptables напрямую.
Ubuntu обычно получает обновления по протоколу http. Итак, вам нужно открыть исходящий HTTP-порт. Если вы хотите ограничить свои правила на определенных хостах, вам необходимо выяснить IP-адреса репозиториев Ubuntu /etc/apt/sources.list
.
Лучшее решение - перенаправить HTTP-трафик на веб-прокси и разрешить только определенные домены / URL. Это более точно, чем преобразование имен в IP-адреса для их блокировки с помощью брандмауэра.
Мой ответ для более общего случая, не только для apt-get
.
sudo ufw default deny outgoing
sudo ufw allow out to 11.22.33.44
sudo ufw default allow outgoing
Вы можете ввести более строгие ограничения:
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 ... Но я думаю, что это бесполезно ...
Если другой IP-адрес все еще доступен , происхождение может быть некоторыми остаточными правилами. Рекомендуется проверить текущие правила UFW:
sudo ufw status numbered
Возможно, вам придется удалить некоторые правила загрязнения:
sudo ufw delete 3 # Attention:
sudo ufw delete 2 # 2 and 3 are examples
Ваше программное обеспечение может использовать доменное имя вместо цифрового 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)