Как проверить, установлен ли уже какой-либо брандмауэр

По этой причине я написал интерактивный скрипт-оболочку для рабочих столов Unix, и после года использования я рад поделиться им!

Сделано с помощью byzanz, gifsicle, xdotool, а скрипт написан на php.

Пример вывода:

[1020px, без изменения размера gif ширина 1020px, 70 секунд, 50 цветов, 65Kb ]

enter image description here

Он предоставляет хорошие сжатые GIF-файлы и является хорошей демонстрацией для этого вопроса.

Это довольно простая база, которую вы можете взломать.

Функциональные возможности:Запись Gif в положениях мыши или в полноэкранном режиме, изменение размера, сжатие, сжатие цвета, реверс/объединение, загрузка giphy.com curl.

Чтобы начать 10-секундную запись GIF:gif 10

Для многократной записи с одними и теми же параметрами:gif !

Для запуска полноэкранной 5-секундной GIF-записи:gif 5 --fullscreen

Сценарий запущен, приятно записывает себя:

[ 45 секунд, ширина 645 пикселей, полноцветный режим, 976 КБ ]
enter image description here

Полный скрипт 5 КБ:

#!/usr/bin/php

 php xdotool byzanz gifsicle curl
#@ https://webdev23.github.io/gif/gif

echo "Usage:./gif [time in seconds|!] [--fullscreen|-f]\n";
echo "--------------------------------------------------\n";
echo "Gif recorder tool\n";
echo "gif ! to call back last settings\n";
echo "Please move your mouse at the top left corner point\n";
echo "of the wanted gif area. Then press enter.\n";
echo "\n";

#~ Nico KraZhtest | 05/2017 | https://github.com/webdev23/gif
#~ Create fluid GIF's fastly
#~ You can set the gif record time as argument:./gif 10
#~ Default record time is 1 seconde, or set it now:
   $recordTime = 1;
#~ ----------------

$t = @$argv[1];

$x1;$y1;$x2;$y2;$gw;$gh;$defc;$rw;

if (!isset($argv[1]) || @$argv[1] === "!") {
  $t = $recordTime;
}

if (@$argv[1] === "!") {
  $pos = file_get_contents("./.config/gif/pos");
  $pos = explode("\n", $pos);
  $x1 = $pos[0];
  $y1 = $pos[1];
  $x2 = $pos[2];
  $y2 = $pos[3];
  $gw = $pos[4];
  $gh = $pos[5];
  $t = $pos[6];
  @$GLOBALS['defc'] = $pos[7];
  @$GLOBALS['$rw'] = $pos[8];
   #~ echo $x1." ".$y1." ".$x2." ".$y2." ".$gw." ".$gh." ".$t." ".$defc." ".@$rw;
  }

else if (@$argv[2] === "fullscreen" || @$argv[2] === "--fullscreen" || @$argv[2] === "-f" || @$argv[2] === "f") {
  echo "############\nStarting fullscreen record\n";
  $fs = system("xdpyinfo  | grep 'dimensions:'");
  echo "\n";
  $fs = explode("    ",$fs);
  echo $fs[1];
  $fs = explode(" ",$fs[1]);
  echo $fs[0];
  $fs = explode("x",$fs[0]);
  echo $fs[0]."\n";
  echo $fs[1];
  $x1 = "0";
  $y1 = "0";
  $x2 = "fs";
  $y2 = "fs";
  $gw = $fs[0];
  $gh = $fs[1];
  $t = $argv[1];
  system("mkdir -p./.config/gif/");
  system("cd./.config/gif/ && \
          echo '$x1\n$y1\n$x2\n$y2\n$gw\n$gh\n$t\n\n\n\n' > pos");
  }

else {
  $stdin = fopen('php://stdin', 'r');
  $response = rtrim(fgets(STDIN));

  $p1 = system("xdotool getmouselocation");

  $pos1 = explode(" ",$p1);

  $x1 = $pos1[0];
  $x1 = explode(":",$x1);
  $x1 = $x1[1];
  echo "X1: ".$x1;

  $y1 = $pos1[1];
  $y1 = explode(":",$y1);
  $y1 = $y1[1];
  echo " Y1: ".$y1;

  echo "\nNow move your mousse at the bottom right corner.\nThen enter\n";

  $stdin = fopen('php://stdin', 'r');
  $response = rtrim(fgets(STDIN));

  $p2 = system("xdotool getmouselocation");

  $pos2 = explode(" ",$p2);

  $x2 = $pos2[0];
  $x2 = explode(":",$x2);
  $x2 = $x2[1];
  echo "X2: ".$x2;

  $y2 = $pos2[1];
  $y2 = explode(":",$y2);
  $y2 = $y2[1];
  echo " Y2: ".$y2;

  $gw = ($x2 - $x1);
  echo "\nGif width: ".$gw;

  $gh = ($y2 - $y1);
  echo "\nGif height: ".$gh;
  echo "\n".$x1." ".$y1." ".$x2." ".$y2." ".$gw." ".$gh." ".$t."\n";

  system("mkdir -p./.config/gif/");
  system("cd./.config/gif/ && \
          echo '$x1\n$y1\n$x2\n$y2\n$gw\n$gh\n$t\n\n\n\n' > pos");
  }

$unix = date_timestamp_get(date_create());

echo "\n".$unix." | Starting ".$t."s gif record\n";

@system("byzanz-record \
        -v             \
        --duration=$t  \
        --x=$x1        \
        --y=$y1        \
        --width=$gw    \
        --height=$gh   \
        ~/Pictures/gif$unix.gif");

$named = "gif".$unix;

echo "Saved as ~/Pictures/".$named.".gif\n";

echo "\nOptimize | How many colors to keep? (default 100, max 256) \n";

if (@$argv[1] === "!"){
  $pos = file_get_contents("./.config/gif/pos");
  $pos = explode("\n", $pos);
  $defc = $pos[7];
  }

if (!isset($defc)){
  $defc = readline("Colors: ");
  }

if (empty($defc)){
  $defc = "100";
  }

echo "\nKeeping ".$defc." colors\n";

system("gifsicle --verbose -i ~/Pictures/$named.gif -O5 --colors=$defc -o ~/Pictures/$named\_reduced.gif");

echo "\nOptimize | Resize width in pixels (default 360px) \n";

if (@$argv[1] === "!"){
  $pos = file_get_contents("./.config/gif/pos");
  $pos = explode("\n", $pos);
  $rw = $pos[8];
  }

if (!isset($rw)){
  $rw = readline("Width : ");
  }

if (empty($rw)){
  $rw = "360";
  }

echo "\nResized by ".$rw." pixels width\n";

@system("gifsicle --verbose -i ~/Pictures/$named\_reduced.gif --resize-width $rw -o ~/Pictures/".$named."_optimized.gif");

$opt = "~/Pictures/".$named."_optimized.gif";

usleep(5000000);

echo "\nSpecial | Reverse and merge?\n";

system("xdg-open ~/Pictures/".$named."_optimized.gif > /dev/null");

if (@$argv[1] === "!"){
  $pos = file_get_contents("./.config/gif/pos");
  $pos = explode("\n", $pos);
  $rev = $pos[9];
  }

if (!isset($rev)){
  $stdin = fopen('php://stdin', 'r');
  $rev = rtrim(fgets(STDIN));
  $rev = "1";
  }

if (!isset($rev)){
  $rev = "0";
  }

@system("cd./.config/gif/ && sed -i '8s/.*/$defc/' pos");
@system("cd./.config/gif/ && sed -i '9s/.*/$rw/' pos");
@system("cd./.config/gif/ && sed -i '10s/.*/$rev/' pos");

if ($rev === "1"){
  @system("gifsicle                           \
            -i ~/Pictures/$named\_reduced.gif \
            '#-2-1'                           \
            -o ~/Pictures/".$named."_reversed.gif");

  $inv = "~/Pictures/".$named."_reversed.gif";

  usleep(400000);

  @system("gifsicle                           \
            -i ~/Pictures/$named\_reduced.gif \
          --append $inv                       \
          --resize-width $rw                  \
          -o ~/Pictures/".$named."_merged.gif");

  usleep(3000000);

  system("xdg-open ~/Pictures/".$named."_merged.gif > /dev/null");

  }

echo "\n####################";
echo "\nUpload to giphy.com?\n";

$stdin = fopen('php://stdin', 'r');
$response = rtrim(fgets(STDIN));

$m = "~/Pictures/".$named."_merged.gif";
$f = system("du -h $m");
$f = explode("  ",$f);
$f = $f[1];

$www = system('curl                         \
                --progress-bar              \
                -v                          \
                -F "file=@'.$f.'"           \
                -F "api_key=dc6zaTOxFJmzC"  \
                "http://upload.giphy.com/v1/gifs"');

$www = json_decode($www);

echo "\n\nhttps://i.giphy.com/".$www->data->id.".gif\n";

echo "\nThanks YOU!\n";

Возможность реверса/слияния для создания художественных материалов.

Оригинал (435 КБ)

enter image description here

Перевернутое, объединенное:(826 КБ)

enter image description here

Для установки с помощью phi:

php <(curl https://webdev23.github.io/phi/phi) install https://webdev23.github.io/gif/gif

Полный экран:

[1920 *1080px, gif 400px, 50 секунд , 100 цветов, 2Mb ]

enter image description here

Источник,с некоторыми дополнительными пояснениями и потенциальными обновлениями :https://github.com/webdev23/gif

0
28.03.2020, 13:50
3 ответа

Если ваш брандмауэр использует встроенный -брандмауэр ядра, тогда sudo iptables -n -Lвыведет список всего содержимого iptables. Если нет брандмауэра, вывод будет в основном пустым.

Возможно, на вашем VPS уже установлено ufw, поэтому попробуйте ufw status. ufwявляется упрощенным «фасадом» для брандмауэра ядра (, поэтому то, что установлено с ним, также отображается в выводе iptables), но его намного проще понять и управлять им, поэтому я бы рекомендовал его.

1
19.03.2021, 02:31

В последних версиях Linux есть команда брандмауэра -cmd. Беги

firewall-cmd --state

Даст вам ответ. Например

# firewall-cmd --state
running

Это означает, что брандмауэр активен.

0
19.03.2021, 02:31

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

Чтобы просмотреть список всех загруженных служб в вашей системе, включая неработающие службы:

systemctl --type=service

Список активных услуг:

systemctl list-units --type=service --state=active

Если брандмауэр уже установлен, скорее всего, это один из этих :iptables, firewalld, ufw.

Внимание :служба может быть установлена ​​в вашей системе, но отключена . Это означает, что пока он не запущен, он доступен. Например, возможно, что кто-то заменил брандмауэр по умолчанию другим брандмауэром (firewalld, ufw ), но iptables все еще установлен. Таким образом, тот факт, что iptables присутствует, не обязательно означает, что это активный брандмауэр.

И поскольку вы упомянули, что это VPS :в дополнение к встроенному -в Linux брандмауэру, VPS может находиться за каким-то аппаратным/программным устройством, которое действует как брандмауэр или обеспечивает смягчение последствий DDOS. Фильтрация восходящего трафика должна быть минимальной, если таковая имеется, но это то, что вы должны уточнить у веб-хостинга.

Я предполагаю, что у вас «неуправляемый» VPS, а это значит, что вы предоставлены сами себе и должны защищать себя. С другой стороны, «управляемый» VPS может иметь дополнительную защиту,когда он ориентирован на менее технически подкованных конечных пользователей.

3
19.03.2021, 02:31

Теги

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