diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..335ec95 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.tar.gz diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..fe31492 --- /dev/null +++ b/Makefile @@ -0,0 +1,26 @@ +all: + cd po/back_auditd ; msgfmt -o linux-infosec-setupper-back_auditd.mo ru.po + +install: + #mkdir -p $(DESTDIR)/usr/bin + mkdir -p $(DESTDIR)/usr/share/linux-infosec-setupper + mkdir -p $(DESTDIR)/usr/share/linux-infosec-setupper/audit + #mkdir -p $(DESTDIR)/usr/share/linux-infosec-setupper/pwquality + install -m0644 common.sh $(DESTDIR)/usr/share/linux-infosec-setupper/common.sh + install -m0644 back_auditd.sh $(DESTDIR)/usr/share/linux-infosec-setupper/audit/back_auditd.sh + mkdir -p $(DESTDIR)/var/lib/linux-infosec-setupper + mkdir -p $(DESTDIR)/var/lib/linux-infosec-setupper/audit + #mkdir -p $(DESTDIR)/var/lib/linux-infosec-setupper/pwquality + chmod -R 0700 $(DESTDIR)/var/lib/linux-infosec-setupper + + mkdir -p $(DESTDIR)/usr/share/locale/ru/LC_MESSAGES + install -m0644 po/back_auditd/linux-infosec-setupper-back_auditd.mo $(DESTDIR)/usr/share/locale/ru/LC_MESSAGES + +rpm: + # https://stackoverflow.com/a/1909390 + $(eval TMP := $(shell mktemp --suffix=.tar.gz)) + tar -zcf $(TMP) . + RPM_NAME=$(shell rpmspec -q --srpm --qf '%{name}' linux-infosec-setupper.spec) + RPM_VERSION=$(shell rpmspec -q --srpm --qf '%{version}' linux-infosec-setupper.spec) + mv $(TMP) $(shell rpmspec -q --srpm --qf '%{name}-%{version}.tar.gz' linux-infosec-setupper.spec) + rpmbuild -bb --define "_sourcedir $(shell pwd)" linux-infosec-setupper.spec diff --git a/common.sh b/common.sh index 909c804..0eac07f 100644 --- a/common.sh +++ b/common.sh @@ -25,8 +25,10 @@ error() { if [ -f ./common.sh ] && [ -f "$0" ] then TEXTDOMAINDIR="${PWD}/po" + PW_DEFAULT=pw_default else TEXTDOMAINDIR=/usr/share/locale + PW_DEFAULT="${SHARE_DIR_PWQUALITY}/pw_default" fi # $1 - value diff --git a/front_pwquality.sh b/front_pwquality.sh index edce42b..7fd5f65 100644 --- a/front_pwquality.sh +++ b/front_pwquality.sh @@ -16,7 +16,7 @@ PWQUALITY_FRONT=1 # Since the config may be standard from the package, it may not be parsed correctly. # We write our default config instead of the original one, so that the parsing works correctly if ! [[ -f "${VAR_DIR_PWQUALITY}/pw_changed" ]]; then - cat "${SHARE_DIR_PWQUALITY}/pw_default" > "${DESTDIR}/etc/security/pwquality.conf" || { error $"Unable to write to file %s" "${DESTDIR}/etc/security/pwquality.conf"; exit 1; } + cat "$PW_DEFAULT" > "${DESTDIR}/etc/security/pwquality.conf" || { error $"Unable to write to file %s" "${DESTDIR}/etc/security/pwquality.conf"; exit 1; } install -D -m 444 /dev/null "${VAR_DIR_PWQUALITY}/pw_changed" || { error $"Unable to write to file %s" "${VAR_DIR_PWQUALITY}/pw_changed"; exit 1; } fi @@ -84,7 +84,7 @@ var="$(yad --title=$"linux-infosec-setupper" --form \ # If we clicked on the "Load default" button, we decided to restore the settings. # The exit code after clicking on this button is 3. We restore the config if we clicked on this button if [ "$_status" == 3 ]; then - cat "${SHARE_DIR_PWQUALITY}/pw_default" > "${DESTDIR}/etc/security/pwquality.conf" || { error $"Unable to write to file %s" "${DESTDIR}/etc/security/pwquality.conf"; exit 1; } + cat "$PW_DEFAULT" > "${DESTDIR}/etc/security/pwquality.conf" || { error $"Unable to write to file %s" "${DESTDIR}/etc/security/pwquality.conf"; exit 1; } fi # If we decide to undo the changes and not change anything, the var variable will be empty. diff --git a/front_pwquality_cli.sh b/front_pwquality_cli.sh index 88f8d48..7756d98 100644 --- a/front_pwquality_cli.sh +++ b/front_pwquality_cli.sh @@ -15,7 +15,7 @@ fi # Since the config may be standard from the package, it may not be parsed correctly. # We write our default config instead of the original one, so that the parsing works correctly if ! [[ -f "${VAR_DIR_PWQUALITY}/pw_changed" ]]; then - cat "${SHARE_DIR_PWQUALITY}/pw_default" > "${DESTDIR}/etc/security/pwquality.conf" || { error $"Unable to write to file %s" "${DESTDIR}/etc/security/pwquality.conf"; exit 1; } + cat "$PW_DEFAULT" > "${DESTDIR}/etc/security/pwquality.conf" || { error $"Unable to write to file %s" "${DESTDIR}/etc/security/pwquality.conf"; exit 1; } install -D -m 444 /dev/null "${VAR_DIR_PWQUALITY}/pw_changed" || { error $"Unable to write to file %s" "${VAR_DIR_PWQUALITY}/pw_changed"; exit 1; } fi diff --git a/linux-infosec-setupper.spec b/linux-infosec-setupper.spec new file mode 100644 index 0000000..418ed8f --- /dev/null +++ b/linux-infosec-setupper.spec @@ -0,0 +1,64 @@ +Name: linux-infosec-setupper +Summary: CLI and GUI utilities to setup information security-related parts of Linux +License: GPLv3 +Group: System/Base +Version: 0.1 +Release: 1 +Source0: %{name}-%{version}.tar.gz +BuildArch: noarch +BuildRequires: bash +BuildRequires: make +BuildRequires: gettext + +%description +%{summary} + +#----------------------------------------------------------------------------------- + +%package common +Summary: Common parts for subpackages of %{name} +Group: System/Base +Requires: awk +Requires: bash +Requires: coreutils +Requires: grep +Requires: sed + +%description common +Common parts for subpackages of %{name} + +%files common +%dir %{_datadir}/linux-infosec-setupper +%{_datadir}/linux-infosec-setupper/common.sh +%dir %attr(0700,root,root) /var/lib/linux-infosec-setupper + +#----------------------------------------------------------------------------------- + +%package auditd-cli +Summary: CLI and backend to setup auditd configs +Group: System/Base +Requires: %{name}-common = %{version}-%{release} +Requires: audit + +%description auditd-cli +CLI and backend to setup auditd configs + +%files auditd-cli +%dir %{_datadir}/linux-infosec-setupper/audit +%{_datadir}/linux-infosec-setupper/audit/back_auditd.sh +%dir %attr(0700,root,root) /var/lib/linux-infosec-setupper/audit +%lang(ru) %{_datadir}/locale/ru/LC_MESSAGES/linux-infosec-setupper-back_auditd.mo + +#----------------------------------------------------------------------------------- + +%prep +%autosetup -p1 -c + +%build +%make_build + +%install +%make_install + +%check +bash -x ./test_back_auditd.sh diff --git a/po/back_auditd/back_auditd.pot b/po/back_auditd/back_auditd.pot new file mode 100644 index 0000000..0c63b66 --- /dev/null +++ b/po/back_auditd/back_auditd.pot @@ -0,0 +1,78 @@ +#: ../back_auditd.sh:26 +msgid "Entered %s=exec /path/to/script does not contain a path to script" +msgstr "" +#: ../back_auditd.sh:29 +msgid "%s=exec* can have only one agrument — path to script, example: %s=exec /path/to/script" +msgstr "" +#: ../back_auditd.sh:34 +msgid "Script %s is not executable" +msgstr "" +#: ../back_auditd.sh:40 +msgid "Possible values of %s are: %s" +msgstr "" +#: ../back_auditd.sh:74 +msgid "Error creating directory %s" +msgstr "" +#: ../back_auditd.sh:103 +msgid "Error copying systemd override file %s to %s" +msgstr "" +#: ../back_auditd.sh:110 +msgid "Systemd unit file auditd.service with setted up packet filtering has not passed verification!" +msgstr "" +#: ../back_auditd.sh:111 +msgid "The error was:" +msgstr "" +#: ../back_auditd.sh:171 +msgid "Directory %s does not exist" +msgstr "" +#: ../back_auditd.sh:187 +msgid "Value of %s must be %s or %s" +msgstr "" +#: ../back_auditd.sh:216 +msgid "Possible values of %s are: %s" +msgstr "" +#: ../back_auditd.sh:229 +msgid "Parameter %s makes sense only when %s" +msgstr "" +#: ../back_auditd.sh:243 +msgid "Possible values of %s are: %s" +msgstr "" +#: ../back_auditd.sh:256 +msgid "Parameter %s makes sense only when %s" +msgstr "" +#: ../back_auditd.sh:271 +msgid "Possible values of %s are: %s" +msgstr "" +#: ../back_auditd.sh:285 +msgid "File %s does not exist or is not executable, so %s cannot be set as a dispatcher executable" +msgstr "" +#: ../back_auditd.sh:299 +msgid "%s requires %s to be configured" +msgstr "" +#: ../back_auditd.sh:315 +msgid "Possible values of %s are: %s" +msgstr "" +#: ../back_auditd.sh:328 +msgid "Parameter %s makes sense only when %s" +msgstr "" +#: ../back_auditd.sh:391 +msgid "%s must be an integer between %s and %s" +msgstr "" +#: ../back_auditd.sh:405 +msgid "%s must be an integer between %s and %s" +msgstr "" +#: ../back_auditd.sh:427 +msgid "Errors occured when trying to understand how to configure auditd" +msgstr "" +#: ../back_auditd.sh:431 +msgid "Error creating directory %s" +msgstr "" +#: ../back_auditd.sh:466 +msgid "Error creating directory %s" +msgstr "" +#: ../back_auditd.sh:470 +msgid "Error writing auditd config file %s" +msgstr "" +#: ../back_auditd.sh:473 +msgid "Reboot to apply changes to auditd config" +msgstr "" diff --git a/po/back_auditd/ru.po b/po/back_auditd/ru.po new file mode 100644 index 0000000..2cd0d3c --- /dev/null +++ b/po/back_auditd/ru.po @@ -0,0 +1,81 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.4.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" +"Language: ru\n" + +#: ../back_auditd.sh:26 +msgid "Entered %s=exec /path/to/script does not contain a path to script" +msgstr "Введенное значение %s=exec /путь/к/скрипту не содержит путь к скрипту" + +#: ../back_auditd.sh:29 +msgid "%s=exec* can have only one agrument — path to script, example: %s=exec /path/to/script" +msgstr "У %s=exec* может быть только один аргумент — путь к скрипту, например: %s=exec /путь/к/скрипту" + +#: ../back_auditd.sh:34 +msgid "Script %s is not executable" +msgstr "Скрипт %s не является выполняемым" + +#: ../back_auditd.sh:40 ../back_auditd.sh:216 ../back_auditd.sh:243 ../back_auditd.sh:271 ../back_auditd.sh:315 +msgid "Possible values of %s are: %s" +msgstr "Возможны следующие значения %s: %s" + +#: ../back_auditd.sh:74 ../back_auditd.sh:431 ../back_auditd.sh:466 +msgid "Error creating directory %s" +msgstr "Ошибка создания каталога %s" + +#: ../back_auditd.sh:103 +msgid "Error copying systemd override file %s to %s" +msgstr "Ошибка копирования файла дополнительных настроек systemd %s в %s" + +#: ../back_auditd.sh:110 +msgid "Systemd unit file auditd.service with setted up packet filtering has not passed verification!" +msgstr "Файл унита systemd auditd.service с настроенной фильтрацией сетевого трафика не прошел проверку на правильность синтаксиса!" + +#: ../back_auditd.sh:111 +msgid "The error was:" +msgstr "Ошибка была следующей:" + +#: ../back_auditd.sh:171 +msgid "Directory %s does not exist" +msgstr "Каталог %s не существует" + +#: ../back_auditd.sh:187 +msgid "Value of %s must be %s or %s" +msgstr "Значением %s должно быть %s или %s" + +#: ../back_auditd.sh:229 ../back_auditd.sh:256 ../back_auditd.sh:328 +msgid "Parameter %s makes sense only when %s" +msgstr "Параметр %s имеет смысл только когда %s" + +#: ../back_auditd.sh:285 +msgid "File %s does not exist or is not executable, so %s cannot be set as a dispatcher executable" +msgstr "Файл %s не существует или не является исполняемым, поэтому %s не может быть установлен в качестве диспатчера аудита" + +#: ../back_auditd.sh:299 +msgid "%s requires %s to be configured" +msgstr "Для %s должен быть настроен %s" + +#: ../back_auditd.sh:391 ../back_auditd.sh:405 +msgid "%s must be an integer between %s and %s" +msgstr "%s должно быть целым числом от %s до %s" + +#: ../back_auditd.sh:427 +msgid "Errors occured when trying to understand how to configure auditd" +msgstr "Невозможно понять, как настроить auditd, возникли ошибки" + +#: ../back_auditd.sh:470 +msgid "Error writing auditd config file %s" +msgstr "Ошибка записи файла настроек auditd %s" + +#: ../back_auditd.sh:473 +msgid "Reboot to apply changes to auditd config" +msgstr "Перезагрузите систему, чтобы настройки auditd вступили в силу" diff --git a/DESTDIR/usr/share/linux-infosec-setupper/pwquality/pw_default b/pw_default similarity index 100% rename from DESTDIR/usr/share/linux-infosec-setupper/pwquality/pw_default rename to pw_default