• XSS.stack #1 – первый литературный журнал от юзеров форума

Docker

открываем файл конфигурации docker
Bash:Скопировать в буфер обмена
sudo nano /etc/docker/daemon.json
добовь строку
Bash:Скопировать в буфер обмена
{
"iptables": false
}
Сохрани изменения и перезапусти docker
Bash:Скопировать в буфер обмена
sudo systemctl restart docker
Эта команда что даёт?
отключает автоматическое управление правилами iptables со стороны docker.
 
а это нужно?
Да, ты получаешь контроль над правилами iptables и можешь настроить их самостоятельно. Если ты хочешь точные настройки, и ты не хочешь, чтобы docker изменял их по умолчанию. т.е. простыми словами, docker перестает автоматически управлять правилами сетевого трафика (iptables), у тебя полный контроль.
 
Выше я писал об этом если не ошибаюсь, чтобы ты получил понлный контроль. Попробуй так, открой файл
Bash:
sudo nano /etc/docker/daemon.json
добавь, или просто отредактируй строку
JSON:
{
  "iptables": false
}
сохрани изменения и перезапусти docker
Bash:
sudo systemctl restart docker
дальше cохрани правила iptables
Bash:
sudo iptables-save > /etc/iptables/rules.v4
cохрани наборы ipset
Bash:
sudo ipset save > /etc/ipset.conf

автоматическое восстановление правил iptables и ipset после перезагрузки. проверь установлен ли у тебя пакет iptables-persistent, если нет то сделай
Bash:
sudo apt-get install iptables-persistent
создай systemd-сервис для восстановления ipset
Bash:
sudo nano /etc/systemd/system/ipset-restore.service
вставь в файл следующий текст
INI:
[Unit]
Description=Restore ipset rules
After=network.target

[Service]
Type=oneshot
ExecStart=/sbin/ipset restore < /etc/ipset.conf
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
потом выполнить команды для активации и запуска
Bash:
sudo systemctl daemon-reload
sudo systemctl enable ipset-restore
sudo systemctl start ipset-restore
 
Последнее редактирование:
Выше я писал об этом если не ошибаюсь, чтобы ты получил понлный контроль. Попробуй так, открой файл
Bash:
sudo nano /etc/docker/daemon.json
добавь, или просто отредактируй строку
JSON:
{
  "iptables": false
}
сохрани изменения и перезапусти docker
Bash:
sudo systemctl restart docker
дальше cохрани правила iptables
Bash:
sudo iptables-save > /etc/iptables/rules.v4
cохрани наборы ipset
Bash:
sudo ipset save > /etc/ipset.conf

автоматическое восстановление правил iptables и ipset после перезагрузки. проверь установлен ли у тебя пакет iptables-persistent, если нет то сделай
Bash:
sudo apt-get install iptables-persistent
создай systemd-сервис для восстановления ipset
Bash:
sudo nano /etc/systemd/system/ipset-restore.service
вставь в файл следующий текст
INI:
[Unit]
Description=Restore ipset rules
After=network.target

[Service]
Type=oneshot
ExecStart=/sbin/ipset restore < /etc/ipset.conf
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
потом выполнить команды для активации и запуска
Bash:
sudo systemctl daemon-reload
sudo systemctl enable ipset-restore
sudo systemctl start ipset-restore
root@internet:~# sudo systemctl start ipset-restore
Job for ipset-restore.service failed because the control process exited with error code.
 
root@internet:~# sudo systemctl start ipset-restore
Job for ipset-restore.service failed because the control process exited with error code.
проверь журнал ошибок
Bash:
sudo journalctl -u ipset-restore.service
эта команда покажет тебе подробный лог почему он не смог запуститься убедись что файл /etc/ipset.conf существует и содержит корректные команды для восстановления наборов ipset. его нужно создать командой
Bash:
sudo ipset save > /etc/ipset.conf
если в этом файле есть ошибка или он пустой это может быть причиной проверь ipset-restore.service правильно он настроен или нет
Bash:
sudo nano /etc/systemd/system/ipset-restore.service
проверь что содержимое файла соответсвует этому тексту
INI:
[Unit]
Description=Restore ipset rules
After=network.target

[Service]
Type=oneshot
ExecStart=/sbin/ipset restore < /etc/ipset.conf
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
проверь наличие команды ipset restore т.е. ,доступна ли команда ipset restore и работает ли она
Bash:
sudo ipset restore < /etc/ipset.conf
если когда ты выполняешь этоу команду возникает ошибка, проблема может быть в содержимом файла /etc/ipset.conf или в конфигурации самого ipset. проверь и запусти systemd
Bash:
sudo systemctl daemon-reload
sudo systemctl start ipset-restore
и так же проверь статус
Bash:
sudo systemctl status ipset-restore
если ты скинешь сюда подробности из журнала ошибок journalctl, видно будет конкретная проблема
 
проверь журнал ошибок
Bash:
sudo journalctl -u ipset-restore.service
эта команда покажет тебе подробный лог почему он не смог запуститься убедись что файл /etc/ipset.conf существует и содержит корректные команды для восстановления наборов ipset. его нужно создать командой
Bash:
sudo ipset save > /etc/ipset.conf
если в этом файле есть ошибка или он пустой это может быть причиной проверь ipset-restore.service правильно он настроен или нет
Bash:
sudo nano /etc/systemd/system/ipset-restore.service
проверь что содержимое файла соответсвует этому тексту
INI:
[Unit]
Description=Restore ipset rules
After=network.target

[Service]
Type=oneshot
ExecStart=/sbin/ipset restore < /etc/ipset.conf
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
проверь наличие команды ipset restore т.е. ,доступна ли команда ipset restore и работает ли она
Bash:
sudo ipset restore < /etc/ipset.conf
если когда ты выполняешь этоу команду возникает ошибка, проблема может быть в содержимом файла /etc/ipset.conf или в конфигурации самого ipset. проверь и запусти systemd
Bash:
sudo systemctl daemon-reload
sudo systemctl start ipset-restore
и так же проверь статус
Bash:
sudo systemctl status ipset-restore
если ты скинешь сюда подробности из журнала ошибок journalctl, видно будет конкретная проблема
root@internet:~# sudo journalctl -u ipset-restore.service
Sep 02 12:48:09 internet systemd[1]: Starting Restore ipset rules...
Sep 02 12:48:09 internet ipset[293133]: ipset v7.15: Unknown argument <
Sep 02 12:48:09 internet ipset[293133]: Try `ipset help' for more information.
Sep 02 12:48:09 internet systemd[1]: ipset-restore.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Sep 02 12:48:09 internet systemd[1]: ipset-restore.service: Failed with result 'exit-code'.
Sep 02 12:48:09 internet systemd[1]: Failed to start Restore ipset rules.
Sep 02 12:48:42 internet systemd[1]: Starting Restore ipset rules...
Sep 02 12:48:42 internet ipset[293156]: ipset v7.15: Unknown argument <
Sep 02 12:48:42 internet ipset[293156]: Try `ipset help' for more information.
Sep 02 12:48:42 internet systemd[1]: ipset-restore.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Sep 02 12:48:42 internet systemd[1]: ipset-restore.service: Failed with result 'exit-code'.
Sep 02 12:48:42 internet systemd[1]: Failed to start Restore ipset rules.
Sep 02 12:51:59 internet systemd[1]: Starting Restore ipset rules...
Sep 02 12:51:59 internet ipset[293415]: ipset v7.15: Unknown argument <
Sep 02 12:51:59 internet ipset[293415]: Try `ipset help' for more information.
Sep 02 12:51:59 internet systemd[1]: ipset-restore.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Sep 02 12:51:59 internet systemd[1]: ipset-restore.service: Failed with result 'exit-code'.
Sep 02 12:51:59 internet systemd[1]: Failed to start Restore ipset rules.
 
Это ошибка связана из за неправильной интерпретацией символа < в команде execStart внутри файла ipset-restore.service, символ < в данном контексте используется для перенаправления ввода, а systemd, неправильно его интерпретирует.
поменял строку в файле ipset-restore.service, которая вызывает эту ошибку
Bash:
sudo nano /etc/systemd/system/ipset-restore.service
поменял строку ExecStart, чтобы указать ввод файла с использованием команды cat
INI:
[Unit]
Description=Restore ipset rules
After=network.target

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'cat /etc/ipset.conf | /sbin/ipset restore'
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
< /etc/ipset.conf, команда сейчас читает содержимое файла через cat и перенаправляет его в ipset restore с использованием пайпа |. перезагрузи systemd и запусти
Bash:
sudo systemctl daemon-reload
sudo systemctl start ipset-restore
и проверь статус сервиса . если это не сработает, то не знаю) или ты с начала темы пройдись еще раз, и установи сови права
Bash:
sudo systemctl status ipset-restore
 
Это ошибка связана из за неправильной интерпретацией символа < в команде execStart внутри файла ipset-restore.service, символ < в данном контексте используется для перенаправления ввода, а systemd, неправильно его интерпретирует.
поменял строку в файле ipset-restore.service, которая вызывает эту ошибку
Bash:
sudo nano /etc/systemd/system/ipset-restore.service
поменял строку ExecStart, чтобы указать ввод файла с использованием команды cat
INI:
[Unit]
Description=Restore ipset rules
After=network.target

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'cat /etc/ipset.conf | /sbin/ipset restore'
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
< /etc/ipset.conf, команда сейчас читает содержимое файла через cat и перенаправляет его в ipset restore с использованием пайпа |. перезагрузи systemd и запусти
Bash:
sudo systemctl daemon-reload
sudo systemctl start ipset-restore
и проверь статус сервиса . если это не сработает, то не знаю) или ты с начала темы пройдись еще раз, и установи сови права
Bash:
sudo systemctl status ipset-restore
Та же ошибка к сожелению
 
сделаем скрипт
Bash:
sudo nano /usr/local/bin/ipset-restore.sh
добавим в него этот код, сохрани и выходи из редактора
Bash:
#!/bin/sh
/sbin/ipset restore < /etc/ipset.conf
делаем скрипт исполняемым
Bash:
sudo chmod +x /usr/local/bin/ipset-restore.sh
обновим файл ipset-restore.service
Bash:
sudo nano /etc/systemd/system/ipset-restore.service
меняем текст
INI:
[Unit]
Description=Restore ipset rules
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/ipset-restore.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
перезагрузим
Bash:
sudo systemctl daemon-reload
запускаем
Bash:
sudo systemctl start ipset-restore
Или попробуй сначала темы пройдись.
 
сделаем скрипт
Bash:
sudo nano /usr/local/bin/ipset-restore.sh
добавим в него этот код, сохрани и выходи из редактора
Bash:
#!/bin/sh
/sbin/ipset restore < /etc/ipset.conf
делаем скрипт исполняемым
Bash:
sudo chmod +x /usr/local/bin/ipset-restore.sh
обновим файл ipset-restore.service
Bash:
sudo nano /etc/systemd/system/ipset-restore.service
меняем текст
INI:
[Unit]
Description=Restore ipset rules
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/ipset-restore.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
перезагрузим
Bash:
sudo systemctl daemon-reload
запускаем
Bash:
sudo systemctl start ipset-restore
Или попробуй сначала темы пройдись.
Все те же ошибки, прошелся по теме, все повторил, ошибки повторяются
 
Sep 02 21:35:28 internet systemd[1]: Starting ipset-restore.service - Restore ipset rules...
Sep 02 21:35:28 internet ipset-restore.sh[65356]: /usr/local/bin/ipset-restore.sh: 2: cannot open /etc/ipset.conf: No such file
Sep 02 21:35:28 internet systemd[1]: ipset-restore.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Sep 02 21:35:28 internet systemd[1]: ipset-restore.service: Failed with result 'exit-code'.
Sep 02 21:35:28 internet systemd[1]: Failed to start ipset-restore.service - Restore ipset rules.
Sep 02 21:37:38 internet systemd[1]: Starting ipset-restore.service - Restore ipset rules...
Sep 02 21:37:38 internet ipset-restore.sh[65463]: ipset v7.17: Error in line 1: Set cannot be created: set with the same name already exists
Sep 02 21:37:38 internet systemd[1]: ipset-restore.service: Main process exited, code=exited, status=1/FAILURE
Sep 02 21:37:38 internet systemd[1]: ipset-restore.service: Failed with result 'exit-code'.
Sep 02 21:37:38 internet systemd[1]: Failed to start ipset-restore.service - Restore ipset rules.
Sep 02 21:40:38 internet systemd[1]: Starting ipset-restore.service - Restore ipset rules...
Sep 02 21:40:38 internet ipset[65579]: ipset v7.17: Unknown argument <
Sep 02 21:40:38 internet ipset[65579]: Try `ipset help' for more information.
Sep 02 21:40:38 internet systemd[1]: ipset-restore.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Sep 02 21:40:38 internet systemd[1]: ipset-restore.service: Failed with result 'exit-code'.
Sep 02 21:40:38 internet systemd[1]: Failed to start ipset-restore.service - Restore ipset rules.
Sep 02 21:43:16 internet systemd[1]: Starting ipset-restore.service - Restore ipset rules...
Sep 02 21:43:16 internet ipset[65669]: ipset v7.17: Unknown argument <
Sep 02 21:43:16 internet ipset[65669]: Try `ipset help' for more information.
Sep 02 21:43:16 internet systemd[1]: ipset-restore.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Sep 02 21:43:16 internet systemd[1]: ipset-restore.service: Failed with result 'exit-code'.
Sep 02 21:43:17 internet systemd[1]: Failed to start ipset-restore.service - Restore ipset rules.
 
Sep 02 22:17:30 internet systemd[1]: Starting ipset-restore.service - Restore ipset rules...
Sep 02 22:17:30 internet ipset-restore.sh[66626]: ipset v7.17: Error in line 1: Set cannot be created: set with the same name already exists
Sep 02 22:17:30 internet systemd[1]: ipset-restore.service: Main process exited, code=exited, status=1/FAILURE
Sep 02 22:17:30 internet systemd[1]: ipset-restore.service: Failed with result 'exit-code'.
Sep 02 22:17:30 internet systemd[1]: Failed to start ipset-restore.service - Restore ipset rules.
 
Sep 02 22:17:30 internet systemd[1]: Starting ipset-restore.service - Restore ipset rules...
Sep 02 22:17:30 internet ipset-restore.sh[66626]: ipset v7.17: Error in line 1: Set cannot be created: set with the same name already exists
Sep 02 22:17:30 internet systemd[1]: ipset-restore.service: Main process exited, code=exited, status=1/FAILURE
Sep 02 22:17:30 internet systemd[1]: ipset-restore.service: Failed with result 'exit-code'.
Sep 02 22:17:30 internet systemd[1]: Failed to start ipset-restore.service - Restore ipset rules.

ошибка set cannot be created: set with the same name already exists говрит, что когда востанваливаются правила ipset пытается создать наборы, которые уже существуют. Чтобы этого небыло нужно перед восстановлением удалять все существующие наборы ipset. Открой файл скрипта
Bash:
sudo nano /usr/local/bin/ipset-restore.sh
поменяй содержимое скрипта на это
Bash:
#!/bin/sh

# Удаляем все существующие наборы
/sbin/ipset -F
/sbin/ipset -X

# Восстанавливаем наборы из файла
/sbin/ipset restore -f /etc/ipset.conf
После этого выполняется восстановление из файла конфигурации. Сохрани именения. перезапусти конфигурацию systemd
Bash:
sudo systemctl daemon-reload
запусти
Bash:
sudo systemctl start ipset-restore
 
ошибка set cannot be created: set with the same name already exists говрит, что когда востанваливаются правила ipset пытается создать наборы, которые уже существуют. Чтобы этого небыло нужно перед восстановлением удалять все существующие наборы ipset. Открой файл скрипта
Bash:
sudo nano /usr/local/bin/ipset-restore.sh
поменяй содержимое скрипта на это
Bash:
#!/bin/sh

# Удаляем все существующие наборы
/sbin/ipset -F
/sbin/ipset -X

# Восстанавливаем наборы из файла
/sbin/ipset restore -f /etc/ipset.conf
После этого выполняется восстановление из файла конфигурации. Сохрани именения. перезапусти конфигурацию systemd
Bash:
sudo systemctl daemon-reload
запусти
Bash:
sudo systemctl start ipset-restore
Sep 02 22:51:10 internet systemd[1]: Starting ipset-restore.service - Restore ipset rules...
Sep 02 22:51:10 internet ipset-restore.sh[67305]: ipset v7.17: Error in line 1: Set cannot be created: set with the same name already exists
Sep 02 22:51:10 internet systemd[1]: ipset-restore.service: Main process exited, code=exited, status=1/FAILURE
Sep 02 22:51:10 internet systemd[1]: ipset-restore.service: Failed with result 'exit-code'.
Sep 02 22:51:10 internet systemd[1]: Failed to start ipset-restore.service - Restore ipset rules.
 
Твой скрипт /usr/local/bin/ipset-restore.sh в нем должно быть это
Bash:
#!/bin/sh

# удаляет все существующие наборы
/sbin/ipset -F
/sbin/ipset -X

# восстанавливает наборы из файла
/sbin/ipset restore -f /etc/ipset.conf
обнови и проверь скрипт . так же убедись что скрипт имеет права на выполнение
Bash:
sudo chmod +x /usr/local/bin/ipset-restore.sh
перезагрузи конфигурацию systemd
Bash:
sudo systemctl daemon-reload
снова запусти
Bash:
sudo systemctl start ipset-restore
проверь статус
Bash:
sudo systemctl status ipset-restore
проверь на отсутствие ошибок . если ошибка повторяется, попробуй вручную выполнить команды из скрипта
Bash:
sudo /sbin/ipset -F
sudo /sbin/ipset -X
sudo /sbin/ipset restore -f /etc/ipset.conf
доболнительно проверь.
ошибка все еще продолжает возникать, добавь проверку на существование наборов перед их удалением
Bash:
#!/bin/sh

# удаление всех существующих наборов, если они существуют
if /sbin/ipset list -n | grep -q 'myset'; then
  /sbin/ipset -F myset
  /sbin/ipset -X myset
fi

if /sbin/ipset list -n | grep -q 'myset-ip'; then
  /sbin/ipset -F myset-ip
  /sbin/ipset -X myset-ip
fi

# восстановление наборов из файла
/sbin/ipset restore -f /etc/ipset.conf
попробуй так, что-то мы упускаем. если это не сработает, удали, и заново по теме выше пройдись. на первой странице, т.е. получи контроль.
 
Твой скрипт /usr/local/bin/ipset-restore.sh в нем должно быть это
Bash:
#!/bin/sh

# удаляет все существующие наборы
/sbin/ipset -F
/sbin/ipset -X

# восстанавливает наборы из файла
/sbin/ipset restore -f /etc/ipset.conf
обнови и проверь скрипт . так же убедись что скрипт имеет права на выполнение
Bash:
sudo chmod +x /usr/local/bin/ipset-restore.sh
перезагрузи конфигурацию systemd
Bash:
sudo systemctl daemon-reload
снова запусти
Bash:
sudo systemctl start ipset-restore
проверь статус
Bash:
sudo systemctl status ipset-restore
проверь на отсутствие ошибок . если ошибка повторяется, попробуй вручную выполнить команды из скрипта
Bash:
sudo /sbin/ipset -F
sudo /sbin/ipset -X
sudo /sbin/ipset restore -f /etc/ipset.conf
доболнительно проверь.
ошибка все еще продолжает возникать, добавь проверку на существование наборов перед их удалением
Bash:
#!/bin/sh

# удаление всех существующих наборов, если они существуют
if /sbin/ipset list -n | grep -q 'myset'; then
  /sbin/ipset -F myset
  /sbin/ipset -X myset
fi

if /sbin/ipset list -n | grep -q 'myset-ip'; then
  /sbin/ipset -F myset-ip
  /sbin/ipset -X myset-ip
fi

# восстановление наборов из файла
/sbin/ipset restore -f /etc/ipset.conf
попробуй так, что-то мы упускаем. если это не сработает, удали, и заново по теме выше пройдись. на первой странице, т.е. получи контроль.
root@internet:~# sudo /sbin/ipset -X
ipset v7.17: Set cannot be destroyed: it is in use by a kernel component
тут ошибка
 
root@internet:~# sudo /sbin/ipset -X
ipset v7.17: Set cannot be destroyed: it is in use by a kernel component
тут ошибка
root@internet:~# sudo /sbin/ipset restore -f /etc/ipset.conf
ipset v7.17: Error in line 1: Set cannot be created: set with the same name already exists и тут
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх