Сортировка без учета регулярного выражения

Во-первых, я хочу повторить то, что уже было сказано. :Debian обслуживает несколько иную группу пользователей, чем многие другие основные дистрибутивы, особенно Ubuntu. Debian ориентирован на людей, которые знают, как работает система, и которые не боятся время от времени вносить изменения в обмен на высокую степень контроля над системой. Ubuntu, например, обслуживает совсем другую целевую аудиторию :людей, которые просто хотят, чтобы все работало, и которым на самом деле (наплевать )на то, что происходит под капотом, и, конечно же, они не хотят изменить конфигурацию системы, чтобы все заработало. Это влияет на ряд аспектов результирующей системы. И в какой-то степени это одна из прелестей Linux; одну и ту же базовую систему можно использовать для создания сред, отвечающих различным потребностям. Помните, что Ubuntu является производной от Debian и по сей день сохраняет большое сходство с Debian.

gufw is not even in DVD1's packages.

Первый диск содержит самое популярное программное обеспечение, как определено опцией -при сборе анонимной статистики с установленных систем. Тот факт, что gufw не находится на первом диске, просто указывает на то, что это не очень популярный пакет (с точки зрения установленного базового )пакета в Debian. Его также легко установить, если у вас есть базовая система с работающей сетью, если вы предпочитаете ее альтернативам.

Are people expected to connect to the Internet before getting a firewall? Why?

Ну, во-первых, я считаю, что Debian допускает установку по сети. (Не только загрузка пакетов из сети во время обычной установки, но и буквально запуск установки с другого хоста, отличного от того, который устанавливается на . )Брандмауэр, настроенный по умолчанию с ограничительным набором правил, может помешать этому. То же самое с установками, которым требуется исходящий доступ к сети во время процесса установки для целей, отличных от простой загрузки самых последних версий устанавливаемых пакетов.

Во-вторых,есть то, о чем я упоминал выше; как правило, Debian ожидает, что вы знаете, что делаете. Если вам нужен брандмауэр, ожидается, что вы сможете настроить его самостоятельно, и ожидается, что вы лучше, чем сопровождающие Debian, знаете, каковы ваши конкретные потребности. В этом отношении Debian немного похож на OpenBSD, только не так сильно. (Когда есть выбор между тем, чтобы сделать базовую систему немного более безопасной или сделать ее немного более удобной, сопровождающие OpenBSD практически всегда делают выбор в пользу безопасности. Это отражается в их базовой статистике уязвимостей безопасности системы, но имеет огромные последствия для удобства использования.)

И, конечно же, техническая поддержка :Брандмауэра включена в базовую систему. Просто для него установлено разрешающее правило all -, установленное ядром по умолчанию, и базовая установка Debian ничего не делает, чтобы это изменить. Вы можете запустить пару команд, чтобы ограничить поток трафика.

Even if all ports are closed by default various installed, updated or downloaded programs could open them (or not?) and I wish for not even a single bit leaving my machine without my permission.

Во-первых, брандмауэры обычно используются для ограничения входящего трафика. Если вы хотите ограничить исходящий трафик, это совсем другое дело; конечно, выполнимо, но требует гораздо большей адаптации к вашей конкретной ситуации. Брандмауэр по умолчанию -блокирует исходящий трафик, оставляя открытыми часто используемые порты (, где часто используемые порты могут быть ftp/20+21, ssh/22, smtp/25, http/80, https/443, pop3/110, imap/143 и набор других ), а также разрешение трафика, связанного с установленными сеансами, не будут намного более безопасными, чем разрешенный по умолчанию -брандмауэр. Лучше убедиться, что набор пакетов, установленных базовой системой, ограничен набором хорошо понятных, настроенных безопасных пакетов, и разрешить администратору устанавливать соответствующие правила брандмауэра, если ему требуется дополнительная защита.

Во-вторых, закрытый порт (, который отвечает на TCP SYN TCP RST/ACK ,обычно сообщается как «отказ в соединении» --обычно это состояние порта TCP по умолчанию в действующей системе, поддерживающей TCP/IP, при отсутствии противоположной конфигурации или программного обеспечения, прослушивающего его )не имеет значения уязвимость даже в системе, не подключенной через отдельный брандмауэр. Единственная существенная уязвимость в полностью -закрытой конфигурации может быть связана с уязвимостью в реализации стека TCP/IP ядра. Но пакеты уже проходят через код netfilter(iptables)в ядре, и там тоже может таиться ошибка. Логика ответа, что приводит к «отказу в соединении» на другом конце, достаточно проста, и мне трудно поверить, что это может быть основным источником ошибок, не говоря уже об ошибках, связанных с безопасностью -; ошибки, связанные с сетевыми службами, почти всегда находятся внутри самих служб, и если они не работают или не прослушивают ничего, кроме петлевых интерфейсов, злоумышленнику действительно не к чему подключиться и использовать.

В-третьих, пакеты обычно устанавливаются как root, из которого вы (пакет )можете изменять правила iptables в любом случае без вашего ведома. Таким образом, вы не получаете ничего, кроме требования, чтобы администратор-человек вручную разрешал трафик через брандмауэр хоста. Если вам нужна такая изоляция, у вас должен быть брандмауэр отдельно от хоста, который он защищает.

So I just found out about iptables but I guess the question still remains as iptables as firewall seems to be rather unknown to most, its default rules and the accessability & ease of usage.

На самом деле я бы сказал, что противоположное верно; iptables в качестве брандмауэра хорошо известен . Он также доступен практически в каждой системе Linux, с которой вы, вероятно, столкнетесь. (Он заменил ipchains во время разработки, которая привела к версии ядра Linux 2.4 примерно в 2000 году или около того. Если я правильно все помню,Самым большим -видимым пользователем изменением между ними для общего случая использования брандмауэра было то, что встроенные -цепочки правил теперь назывались в верхнем регистре, например INPUT, а не в нижнем регистре, например input.)

Во всяком случае, iptables может делать что-то помимо брандмауэра, что широко не используется или не понимается. Например, его можно использовать для перезаписи IP-пакетов до того, как они будут пропущены через брандмауэр.

0
17.10.2020, 21:08
3 ответа

Вы всегда можете добавить символ после части, которую хотите пропустить, и отсортировать оттуда по (, а затем удалить этот символ):

Если ваш sedподдерживает опцию -E(, последние версии GNU sedделают это, а более старые версии будут использовать -rвместо этого, хотя это менее переносимо на не -реализации GNU):

<file sed -E 's/^(www\.|m\.)?/&:/' | sort -t: -k2 | sed 's/://'

Переносимо, вы можете сделать то же самое с awkилиperl:

<file awk '{sub(/^(www\.|m\.)?/, "&:"); print}' | sort -t: -k2 | sed 's/://'
<file perl -pe 's/^(www\.|m\.)?/$&:/' | sort -t: -k2 | sed 's/://'

Хотя с POSIX sedвы всегда можете сделать:

<file sed -e 's/^www\./&:/;t' -e 's/^m\./&:/;t' -e 's/^/:/' |
  sort -t: -k2 | sed 's/://'

Или вы можете добавить .к началу строк, которые не начинаются с www.или m.и сортировать по той части, которая следует за первой.:

<file sed -e '/^www\./b' -e '/^m\./!s/^/./' | sort -t. -k2 | sed 's/^\.//'
4
18.03.2021, 22:56

Посмотрим:

sed 's;^\([wm\.]*\)\(.*\)$;\2 \1\2;' file | sort | awk '{ print $2 }'
2
18.03.2021, 22:56

Только с perl:

perl -e 'print sort {$a=~s/^(www|m)\.//r cmp $b=~s/^(www|m)\.//r} <>'

$aи $b— это специальные переменные в Perl, позволяющие задавать пользовательские sortсравнения

s/^(www|m)\.//rудалит начальные части www.или m.из входных строк перед применениемsort

<>в этом контексте даст массив входных строк

преобразование Шварца вариант:

perl -e 'print map { $_->[0] }
         sort { $a->[1] cmp $b->[1] or $a->[0] cmp $b->[0] }
         map { [$_, s/^(www|m)\.//r] } <>'

Аналогично, сruby:

# can golf it to {_1.sub(/^(www|m)\./, "")} on latest version
ruby -e 'puts readlines.sort_by {|s| s.sub(/^(www|m)\./, "")}'
4
18.03.2021, 22:56

Теги

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