LINUX.ORG.RU

Сообщения samson_b

 

Подскажите, возможно ли такое архитектурное решение?

Форум — Development

Добрый день, Сейчас работаю над проектом, который делает web scraping данных с одного веб сервера, обрабатывает их и выдает уже пользователю в удобном для него виде. Особенность проекта в том, что пользователю нужны свежие данные и по сути пользователь сам инициирует scraping ожидая довольно оперативно получить результат (в виде web интерфейса). Я написал скрипт, который забирает данные с веб сайта и загружает в БД сервера.

Все в принципе работает на одном пользователе, но я стал задумываться над масштабированием системы. Что-то мне подсказывает, что при увеличении нагрузки (количество запросов) на веб сервер, у него сработает какая-то внутренняя защита и мой сервер, который делает выгрузку будет забанен, как минимум на некоторое время.

Собственно вопрос, можно ли как-то архитектурно сделать так, чтобы выгрузка данных происходила не напрямую с веб сервера на мой сервер, а через комп пользователя, чтобы веб сервер считал, что обращения идут с разных адресов и не забанил сервер за высокую активность?

 

samson_b
()

Perl и Python как scripting languages

Форум — Development

С наступившим господа :)!

Я сисадмин, который доучивается до DevOps, чтобы сменить профиль деятельности. В текущий момент устраняю пробелы в своих знаниях, чтобы соответствовать новой профессии и параллельно ищу работу.

Смотря вакансии, очень часто вижу в них требования знания python для scripting. Так сложилось, что я в своей работе использовал perl и bash, и мне их всегда хватало и учить что-то другое вроде как и не требовалось.

Сейчас, как я понимаю, perl устарел и неким стандартом является python для такого рода задач. Ну раз требуется, я быстренько накатил этот python и посмотрев пару youtube видео о каких-то элементарных вещах, перешел к делу. За вечер я переписал несколько своих рабочих perl скриптов на python. (ничего особенно сложного, работа с mysql, обработка текстовых файлов, бекапы и т.п.)

python мне показался вполне дружелюбным, немного другой синтаксис, пожалуй более удобный, более богатый инструментарий, многое делается проще чем на perl. Где-то наоборот как-то мудрено сделано (например при работе с mysql). Но в целом, все оказалось не сложно и я могу точно также использовать python как perl (для моих задач).

Вопрос, я что-то упустил или переход от одного языка к другому, это что-то, что требует пары вечеров?

 , ,

samson_b
()

Странные записи в логах CentOS 8

Форум — Admin

Вижу вот такие записи в логах идут постоянно, раз в 3 минуты, потом прекращаются на довольно длительное время (пол дня например), потом опять шпарят. Подскажите, что это вообще такое и куда копать?

Jan  5 00:35:51 d51102 systemd[1]: Started /run/user/0 mount wrapper.
Jan  5 00:35:51 d51102 systemd[1]: Created slice User Slice of UID 0.
Jan  5 00:35:51 d51102 systemd[1]: Starting User Manager for UID 0...
Jan  5 00:35:51 d51102 systemd[1]: Started Session c4227 of user root.
Jan  5 00:35:51 d51102 systemd[20149]: Reached target Paths.
Jan  5 00:35:51 d51102 systemd[20149]: Reached target Timers.
Jan  5 00:35:51 d51102 systemd[20149]: Starting D-Bus User Message Bus Socket.
Jan  5 00:35:51 d51102 systemd[20149]: Listening on D-Bus User Message Bus Socket.
Jan  5 00:35:51 d51102 systemd[20149]: Reached target Sockets.
Jan  5 00:35:51 d51102 systemd[20149]: Reached target Basic System.
Jan  5 00:35:51 d51102 systemd[20149]: Reached target Default.
Jan  5 00:35:51 d51102 systemd[20149]: Startup finished in 22ms.
Jan  5 00:35:51 d51102 systemd[1]: Started User Manager for UID 0.
Jan  5 00:35:51 d51102 systemd[1]: user-runtime-dir@0.service: Unit not needed anymore. Stopping.
Jan  5 00:35:51 d51102 systemd[1]: Stopping User Manager for UID 0...
Jan  5 00:35:51 d51102 systemd[20149]: Stopped target Default.
Jan  5 00:35:51 d51102 systemd[20149]: Stopped target Basic System.
Jan  5 00:35:51 d51102 systemd[20149]: Stopped target Paths.
Jan  5 00:35:51 d51102 systemd[20149]: Stopped target Sockets.
Jan  5 00:35:51 d51102 systemd[20149]: Closed D-Bus User Message Bus Socket.
Jan  5 00:35:51 d51102 systemd[20149]: Reached target Shutdown.
Jan  5 00:35:51 d51102 systemd[20149]: Stopped target Timers.
Jan  5 00:35:51 d51102 systemd[20149]: Starting Exit the Session...
Jan  5 00:35:51 d51102 systemd[1]: user-runtime-dir@0.service: Unit not needed anymore. Stopping.
Jan  5 00:35:51 d51102 systemd[1]: Stopped User Manager for UID 0.
Jan  5 00:35:51 d51102 systemd[1]: user-runtime-dir@0.service: Unit not needed anymore. Stopping.
Jan  5 00:35:51 d51102 systemd[1]: Stopping /run/user/0 mount wrapper...
Jan  5 00:35:51 d51102 systemd[1]: Removed slice User Slice of UID 0.
Jan  5 00:35:51 d51102 systemd[1]: Stopped /run/user/0 mount wrapper.

 , ,

samson_b
()

Многопоточный бекап, скрипт

Форум — Admin

С наступающим! :)

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

На текущий момент это все делается последовательно:

- делаем дамп первой базы

- пакуем первую базу в архив

- копируем первую базу на другой сервер

- делаем дамп второй базы

- пакуем вторую базу в архив

- копируем вторую базу на другой сервер

...

- пакуем веб контент из одной директории в архив

- пакуем веб контент из второй директории в архив

...

- копируем на другой сервер запакованный веб контент из первой директории

- копируем на другой сервер запакованный веб контент из второй директории

....

Все это занимает много времени и поскольку у сервака достаточно вычислительных ресурсов, хотелось бы сделать многопоточный бекап.

Т.е. делим всю информацию, которую хотим бекапить на объекты. Далее для каждого типа объекта (у меня их два: mysql база и директория) пишу вспомогательный скрипт, который будет его бекапить и переносить куда надо. (тут все просто и вопросов нет)

Еще будет основной скрипт, который должен запускать первый скрипт приминительно к конкретным объектам, которые надо бекапить. НО не последовательно, а параллельно группами. Т.е. допустим у меня 100 баз разного размера, я допускаю возможность бекапа 5 баз одновременно. Соответственно, этот основной скрипт, запускает 5 вспомогательных скриптов, которые бекапят базы и ждет, пока один из них не закончит работу, как закончил он запускает еще один скрипт и т.д., пока все базы не обработает.

Т.е. мне нужна возможность параллельно держать запущенными определенное количество задач, и по мере их выполнении добавлять новые задачи, пока они не закончатся. Надеюсь понятно объяснил.

Собственно вопрос, как скрипт может контролировать количество запущенных им в фоне задач, чтобы по мере их выполнения запускать новые задачи и поддерживая одновременное количество выполняемых задач на определенном уровне?

 ,

samson_b
()

Linux md raid и EFI раздел, нюансы

Форум — Admin

Доброго всем.

Есть сервак, который наша контора взяла в аренду в ДЦ. По их условиям, они сами (сотрудники датацентра) ставят ОС и настраивают рейд.

Имеем: 2x4Tb винта объединенные в software raid, по нашим требованиям они поставили CentOS 7 и кроме служебных разделов сделали один большой /. Как я понимаю, чтобы обеспечить поддержку разделов больше 2Тб, они сделали GPT диски и UEFI загрузку. UEFI загрузка требует наличие EFI раздела на одном из дисков. Как видно:

1. На диске (sda) есть раздел «EFI System Partition», а на втором (sdb) вместо него «Microsoft basic».

2. Раздел «EFI System Partition» (/dev/sda1) смонтирован как /boot/efi раздел (см команду df внизу)

3. Раздел «Microsoft basic» (/dev/sdb1) не смонтирован вообще. Я только что ради интереса смонтировал его ручками и оказалось, что в нем содержатся почти(!) те же файлы, что в /dev/sda1.

4. Интересный момент, у меня есть подозрения, что как минимум 1 раз, загрузка по каким-то причинам переключилась с /dev/sdb1 на /dev/sda1, т.к. у меня была ситуация, когда я добавил параметр ядру «ipv6.disable=1» и обновил grub.cfg на этом efi разделе, и после перезагрузки решил проверить, как это применилось, удивился, что никак и долго пытался понять почему grub.cfg вернулся в первоначальное состояние (похоже, что просто смонтировался раздел с другого диска, на котором grub.cfg был первоначальный). Я еще раз дал команду обновить grub.cfg (судя по всему уже на втором разделе) и таким образом привел файлы к общему знаменателю на двух разделах. (единственное отличие файлов на этих разделов timestamp файлов grub.cfg - полтора часа разницы)

Вопросы: 1. Самое главное, если выйдет из строя один из дисков (любой), смогу ли я загрузиться имея только второй? 2. Объясните мне пожалуйста, как при перезагрузке сервера могла произойти смена диска с которого произошла загрузка? будет или это еще повторяться?

[root@backupsrv ~]# fdisk -l
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/sda: 4000.8 GB, 4000787030016 bytes, 7814037168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: gpt
Disk identifier: 8C784678-F636-44B1-A51A-5A3EAE7ED217


#         Start          End    Size  Type            Name
 1         2048       411647    200M  EFI System      EFI System Partition
 2       411648      4605951      2G  Linux RAID
 3      4605952      5654527    512M  Linux RAID
 4      5654528   7814035455    3.7T  Linux RAID
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/sdb: 4000.8 GB, 4000787030016 bytes, 7814037168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: gpt
Disk identifier: 5A1DF718-A12D-4482-9001-70F5683F9BFF


#         Start          End    Size  Type            Name
 1         2048       411647    200M  Microsoft basic
 2       411648      4605951      2G  Linux RAID
 3      4605952      5654527    512M  Linux RAID
 4      5654528   7814035455    3.7T  Linux RAID

Disk /dev/md1: 2144 MB, 2144337920 bytes, 4188160 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/md2: 3997.8 GB, 3997755768832 bytes, 7808116736 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes


Disk /dev/md0: 535 MB, 535822336 bytes, 1046528 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

[root@backupsrv ~]# df
Filesystem      1K-blocks    Used  Available Use% Mounted on
devtmpfs         16327416       0   16327416   0% /dev
tmpfs            16339676       0   16339676   0% /dev/shm
tmpfs            16339676   99580   16240096   1% /run
tmpfs            16339676       0   16339676   0% /sys/fs/cgroup
/dev/md2       3902152092 2478120 3899673972   1% /
/dev/md0           498514  109566     358689  24% /boot
/dev/sda1          204580   11280     193300   6% /boot/efi
tmpfs             3267936       0    3267936   0% /run/user/1000
tmpfs             3267936       0    3267936   0% /run/user/0

 , ,

samson_b
()

Storage solution for kubernetes

Форум — Admin

Изучая k8s возник вопрос, как делать storage для работы с данными, которые должны сохраняться, а не исчезать после завершения работы pods.

Сам кубик ничего не предлагает, а именно предлагает подключаться к сторонним ресурсам или облачным хранилищам или к всяким NFS/iSCSI и т.п. Мой кластер стоит на голом железе и варианты с использованием облачных хранилищ отпадают из-за скорости доступа к ним.

В идеале я бы хотел некое решение, которое я могу поставить как k8s приложение, прямо на кластер и использовать жесткие диски нод, как сетевой рейд. Хочется гибкости, такой же как у кубика, чтобы можно было легко создавать разделы, цеплять их к pods и потом удалять если они не нужны. Мне очень нравится фишка от VM как thin provisioning. Ес-но решение должно быть надежное и проверенное. Подскажите, кто что использует?

Я бегло погуглил и нашел пару вариантов: Rook и StorageOS, но я не знаю как они в работе и может есть что получше?

 ,

samson_b
()

Как приложение в контейнере завершает работу?

Форум — Admin

Изучая Docker и Kubernetes возник вопрос. Ну вот представим, есть некий контейнер (например субд), который работает с файлами за пределами контейнера, которые будут нужны в целостном состоянии после завершения работы контейнера. Наступит момент, когда контейнер нужно будет закрыть, при этом мы не знаем, что в этот момент контейнер делает, может проводит какие-то операции записи в БД. Правильно будет корректно закрыть приложение в контейнере и после этого потушить сам контейнер. Не правильно будет прибить его принудительно.

Вопрос, где и как прописывается, как будет остановлено приложение в контейнере? Я не нашел никаких упоминаний об этом, ни в Dockerfile нигде.

 ,

samson_b
()

Docker + Kubernetes + iptables

Форум — Admin

Я несколько запутался с этой связкой, Docker и Kubernetes, оба по умолчанию вносят изменения в iptables. Docker в т.ч. меняет default FORWARD policy на DROP и это рушит сеть Kubernetes. На сколько я понимаю, я должен доверить Kubernetes рулить сетью и firewall, а Docker от этого дела отвадить. Чтобы это сделать, я добавил параметр запрещающий Docker трогать правила iptables. (запускаю dockerd с параметром --iptables=false) После этого, вроде все заработало.

Вопрос, это правильное решение? Вообще, как правильно настраивать firewall для этой связки?

Еще вопрос по Kubernetes, я правильно понимаю, что любой pod выставленный наружу, должен быть доступен по порту его сервиса на любой ноде, в т.ч. мастере?

 , ,

samson_b
()

Как воспользоваться ENV внутри контейнера

Форум — Admin

Сделал image с добавлением двух переменных окружения REMOTEHOST и REMOTEPORT

[root@docker nginx]# docker commit --change "ENV REMOTEHOST websrv" --change "ENV REMOTEPORT 80" nginx-m nginx-m:2.0

на основании него запустил контейнер

[root@docker nginx]# docker run -d -p 443:80 --name nginx-m2 --link websrv nginx-m:2.0

Проверяем, что новые переменные окружения добавились

[root@docker nginx]# docker inspect -f "{{ .Config.Env }}" nginx-m2
[PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin NGINX_VERSION=1.17.6 NJS_VERSION=0.3.7 PKG_RELEASE=1 REMOTEHOST=websrv REMOTEPORT=80]

Пробую воспользоваться ими уже внутри контейнера

[root@docker nginx]# docker exec -it nginx-m2 echo $REMOTEHOST

[root@docker nginx]# docker exec -it nginx-m2 echo $REMOTEPORT

[root@docker nginx]#

Непонятно как их использовать, чтобы в конфигурационном файле поставить переданные параметры.

 

samson_b
()

Концепция Docker контейнеров и их практическое использование

Форум — Admin

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

Простой пример: мне нужен сервис nginx определенным образом сконфигурированный и имеющий файлы с сертификатами. Я беру штатный image nginx, на основе него собираю новый кастомный image и уже с него развертываю контейнеры?

Я правильно понял концепцию? На практике оно как-то так должно быть?

 

samson_b
()

Kubernetes nodeSelector

Форум — Admin

Продолжая осваивать Kubernetes установил dashboard. После установки, один из двух dashboard pods постоянно крашился перезапускался. После гугления, выяснилось, что оба pods должны быть запущены на мастер ноде, а в моем случае они запустились на worker. Перекинув их на мастер ноду, все заработало.

Мне показалось странно, что разработчик не позаботился о том, чтобы dashboard сразу разворачивался на мастере, где ему и место. Я стал гуглить, как привязать pod к конкретной ноде и нашел такой параметр как nodeSelector. Потом открыл yaml файл dashboard и какого было мое удивление, когда я там тоже нашел этот параметр. Т.е., как я понимаю, у разработчиков была задумка сделать чтобы dashboard разворачивался именно на мастере, вот так это выглядит:

nodeSelector:

«beta.kubernetes.io/os»: linux

# Comment the following tolerations if Dashboard must not be deployed on master

tolerations:

- key: node-role.kubernetes.io/master

effect: NoSchedule

Я не очень понял этот код и тем более не понял почему он не сработал в моем случае. Объясните мне пожалуйста :)

 

samson_b
()

Kubernetes вопросы по установке

Форум — Admin

Осваиваю Kebernetes, возникли вопросы с установкой. Поставил CentOS 8, допилил его под kubernetes, поставил Docker, заявленный как рекомендуемый для v1.16.3. Установил kubeadm и все, что вместе с ним поставилось.

Дошел до развертывания кластера и дальше не понятно как быть. Как я понимаю нужно запустить команду «kubeadm init» возможно с какими-то параметрами. а дальше добавить некий «network add-on» с помощью команды kubectl apply -f <add-on.yaml>

Вот эта часть мне не очень понятна. На оф. сайте предлагается поставить один из 10 network add-ons. Я реально не понимаю, какой мне больше подойдет.

Я хочу установить мастер ноду и одну-две work ноды, чтобы освоить базовые возможности kubernetes, для начала, а дальше видно будет. Посоветуйте как мне быть.

 

samson_b
()

Скрипт который запускает консольное приложение и отвечает на его вопросы.

Форум — Admin

Приветствую! Есть приложение, которое после запуска задает пару-тройку вопросов, на которые нужно шаблонно ответить и далее все, что выведет приложение нужно сохранить в файл. Я бегло погуглил и нашел вот это:

{ echo ‘/the/path/where/to/install’; echo ‘answer to the second prompt’; } | /path/to/installer >~/temp

У меня это не работает, выдается ошибка: inappropriate ioctl for device

Посоветуйте что-нибудь :)

 ,

samson_b
()

Мгновенный бекап

Форум — Admin

Приветствую! Ситуация такая, есть linux машина с файлом в несколько килобайт, есть сервис, который отслеживает изменения файла в realtime. Как только файл был изменен сервис запускает команду по копированию этого файла на другой сервер в сети интернет. Потенциально файл может меняться часто (например пару раз в секунду) и мне важно иметь актуальный бекап этого файла на другой машине. Вопрос, как сделать копирование максимально быстрым. Я знаю, что если я буду копировать с помощью ftp, то какое-то время уйдет на установление соединения, может секунда или даже две. Можно ли как-то сократить эти технические издержки на установление соединения или может есть какой-то другой способ быстро скопировать маленький файл?

 , ,

samson_b
()

Защить файл

Форум — Admin

OS Ubuntu 16.4.4 desktop

Хочу защитить определенный файл на жестком диске, т.е. сделать его доступным только для одного приложения. Это возможно?

Т.е. если какое-то приложения пытается открыть файл, система проверяет, что это за приложение и дает доступ только, если приложение указано, как разрешенное.

 , ,

samson_b
()

reverse ssh port forwarding (обратное ssh соединение)

Форум — Admin

Есть три компа:

1. В локальной сети за NAT (192.168.1.2)

2. В локальной сети за NAT (192.168.1.3)

3. В интернете с белым IP (80.240.97.20)

Компьютер_1 подключается к компьютеру_3 командой ssh -R 2210:localhost:22 80.240.97.20

Соединение устанавливается и теперь на компьютере_3 локальный порт 2210 пробрасывается на порт 22 компьютера_1.

Далее, после этого, не разрывая соединения между компьютерами 1 и 3, мы пытаемся также подключиться с компьютера_2, такой же командой: ssh -R 2210:localhost:22 80.240.97.20

Вопрос, что при этом произойдет? Вариант 1: соединение не может быть установлено, пока соединение между компьютерами 1 и 3 не будет разорвано.

Вариант 2: соединение между компьютерами 1 и 3 разорвется, и установится новое соединение между компьютерами 2 и 3.

Вариант 3: что-то другое :)

 , ,

samson_b
()

Spamassassin, trusted_networks проблемка

Форум — Admin

В конфиге Spamassassin можно указать доверенные сети или хосты с помощью параметра trusted_networks, тогда почта полученная от этих хостов уменьшит «балл вероятности спама» правилом ALL_TRUSTED.

Штатная ситуация: я на доверенном хосте создаю новое письмо и отправляю на почтовый сервер, у письма понижается балл вероятности спама правилом ALL_TRUSTED. Все отлично, все работает.

Другая ситуация: я на доверенном хосте _перенаправляю_ полученное ранее мной письмо. У письма не понижается балл, правило ALL_TRUSTED не срабатывает.

Вопрос почему, как сделать, чтобы при перенаправлении писем с доверенных хостов правило ALL_TRUSTED срабатывало?

samson_b
()

vsftpd разрешить доступ только для конкретной группы пользователей

Форум — Admin

ftp сервер - vsftpd

Подскажите, можно разрешить доступ к ftp конкретной группе пользователей, а остальным запретить. Во всех инструкциях описано, как разрешить доступ списку пользователей, это понятно, а можно оперировать целыми группами, а не отдельными пользователями?

samson_b
()

Не пропускать письма с файлами *.scr

Форум — Admin

Есть почтовый сервер sendmail с антивирусом clamav. В принципе антивирус работает хорошо и 95% вирусов отфильтровывает. Однако есть свежие вирусы, которые еще не попали в базу антивируса и вероятность, что свежий вирус пролезет и глупый пользователь его запустит не нулевая.

Очень часто вирусы это заархивированные *.scr файлы. Поскольку в реальной жизни пользователи никогда такими файлами не обмениваются, можно смело фильтровать все письма с такими вложениями. Хочу настроить некое правило или фильтр, которое будет резать такие письма, собственно вопрос как это сделать? Нужно чтобы фильтр смотрел вложения на предмет файлов *.scr, а также заглядывал во вложенные архивы, тоже проверяя наличие этих файлов. Порекомендуйте, пожалуйста решение.

samson_b
()

iptables hashlimit реализация в CentOS 6.5

Форум — Admin

Ранее пользовался CentOS 5.X и вот такая конструкция работала на ура:

iptables -t nat -A PREROUTING -p tcp -d $IPADDR --dport 3389 -m state --state NEW -m hashlimit --hashlimit 24/hour --hashlimit-burst 6 --hashlimit-htable-expire 3660000 --hashlimit-mode srcip --hashlimit-name server_rdp -j DNAT --to $USER_IP:3389

iptables -t nat -A PREROUTING -p tcp -d $IPADDR --dport 3389 -m state --state NEW -j DROP

iptables -t nat -A PREROUTING -p tcp -d $IPADDR --dport 3389 -j DNAT --to $USER_IP:3389

В CentOS 6.5 вот эта команда - «iptables -t nat -A PREROUTING -p tcp -d $IPADDR --dport 3389 -m state --state NEW -j DROP» выдает ошибку, по смыслу ошибки - в таблице nat нельзя использовать DROP. Подскажите, как переформулировать команду, чтобы она работала?

samson_b
()

RSS подписка на новые темы