Что такое внешние ссылки?
Любая ссылка на сайте, которая ведет на другой сайт, называется внешней. Такие ссылки могут:
Внешние ссылки, естественно вписанные в текст, обычно выделяют подчеркиванием или другим цветом.
В HTML-коде ссылка будет выглядеть так:
В этом примере <a> — HTML-тег для создания гиперлинков, href — атрибут, обозначающий, куда ведет ссылка, и «нашей статьи» — анкорный текст, описывающий суть ссылки. Мы расскажем больше об атрибутах ссылок и анкорах далее.
Для начала давайте разберемся в том, какую роль играют внешние ссылки в поисковом продвижении. Мы расскажем, как с помощью ссылок увеличить шансы сайта попасть в ТОП и каких ошибок стоит избегать.
Что такое Iptables?
Подсистема iptables и Netfilter уже достаточно давно встроена в ядро Linux. Все сетевые пакеты, которые проходят через компьютер, отправляются компьютером или предназначены компьютеру, ядро направляет через фильтр iptables. Там эти пакеты поддаются проверкам и затем для каждой проверки, если она пройдена выполняется указанное в ней действие. Например, пакет передается дальше ядру для отправки целевой программе, или отбрасывается.
Виды пакетов
Все пакеты делятся на три типа: входящие, исходящие и проходящие. Входящие — это те, которые были отправлены на этот компьютер, исходящие — отправленные из этого компьютера в сеть. А проходящие — это пакеты, которые просто должны быть пересланы дальше, например, если ваш компьютер выступает в качестве маршрутизатора.
Соответственно в фильтре iptables все пакеты делятся на три аналогичные цепочки:
- Input — обрабатывает входящие пакеты и подключения. Например, если какой-либо внешний пользователь пытается подключиться к вашему компьютеру по ssh или любой веб-сайт отправит вам свой контент по запросу браузера. Все эти пакеты попадут в эту цепочку;
- forward — эта цепочка применяется для проходящих соединений. Сюда попадают пакеты, которые отправлены на ваш компьютер, но не предназначены ему, они просто пересылаются по сети к своей цели. Как я уже говорил, такое наблюдается на маршрутизаторах или, например, если ваш компьютер раздает wifi;
- output — эта цепочка используется для исходящих пакетов и соединений. Сюда попадают пакеты, которые были созданы при попытке выполнить ping losst.ru или когда вы запускаете браузер и пытаетесь открыть любой сайт.
Но если вы думаете что можно просто полностью закрыть цепочку Input для увеличения безопасности, то вы очень сильно ошибаетесь. При работе сети используются обе цепочки input и output. Например, вы пытаетесь выполнить ping, данные отправляются через output, но ответ приходит через input. То же самое происходит при просмотре сайтов и других действиях. А вот цепочка forward может вообще не использоваться если ваш компьютер не является маршрутизатором. Так что настройка iptables должна выполняться очень аккуратно.
Правила и действия
Перед тем как перейти к созданию списка правил iptables нужно рассмотреть как они работают и какие бывают. Для каждого типа пакетов можно установить набор правил, которые по очереди будут проверяться на соответствие с пакетом и если пакет соответствует, то применять к нему указанное в правиле действие. Правила образуют цепочку, поэтому input, output и forward называют цепочками, цепочками правил. Действий может быть несколько:
- ACCEPT — разрешить прохождение пакета дальше по цепочке правил;
- DROP — удалить пакет;
- REJECT — отклонить пакет, отправителю будет отправлено сообщение, что пакет был отклонен;
- LOG — сделать запись о пакете в лог файл;
- QUEUE — отправить пакет пользовательскому приложению.
Правила могут проверять любые соответствия, например, по ip, по порту получателя или отправителя, заголовкам пакета и многому другому. Если пакет не подходит ни одному из правил, то к нему применяется действие по умолчанию, обычно ACCEPT.
Когда мы разобрались с правилами, можно вернутся обратно к цепочкам. Кроме перечисленных выше, есть еще две дополнительные цепочки правил:
- prerouting — в эту цепочку пакет попадает перед обработкой iptables, система еще не знает куда он будет отправлен, в input, output или forward;
- postrouting — сюда попадают все проходящие пакеты, которые уже прошли цепочку forward.
Но это еще не все. У нас еще есть таблицы iptables, с которыми тоже желательно разобраться.
Базовые действия
- — пропуск пакета. Пакет покидает текущую базовую цепочку и следует дальше.
- — блокировка пакета и сообщение его источнику об отказе. По умолчанию об отказе сообщается отправкой ответного ICMP-пакета «icmp-port-unreachable». Однако, это действие поддерживает опцию —reject-with, позволяющую указать формулировку сообщения об отказе (возможные значения: icmp-net-unreachable, icmp-host-unreachable, icmp-proto-unreachable, icmp-net-prohibited, icmp-host-prohibited). Для протокола TCP поддерживается отказ в форме отправки RST-пакета (—reject-with tcp-reset).
- — блокировка пакета, не сообщая источнику об отказе. Более предпочтительна при фильтрации трафика на интерфейсах, подключенных к интернету, так как понижает информативность сканирования портов хоста злоумышленниками.
- — обеспечивает возврат из текущей цепочки. В частности, если из цепочки A правилом номер 3 пакет был направлен в цепочку B, то применение к нему в цепочке B действия RETURN приведет к его переходу обратно в цепочку A, и он продолжит ее прохождение со следующего правила (номер 4). Для базовой цепочки к пакету сразу будет применено действие по умолчанию.
- — позволяет записывать информацию о пакетах в журнал ядра (syslog).
Как разорвать связи только в выделенном диапазоне
Время от времени количество связей очень большое, и пользователь боится, что после удаления какой-то из них не получится вернуть все назад, если какая-то была лишней. Но это проблема, которую легко не допустить. Для этого нужно выбрать диапазон, в котором осуществить удаление связей, а потом удалить их. Для этого надо выполнить следующую последовательность действий:
- Выделить тот набор данных, в котором надо вносить изменения.
- Устанавливаем дополнение VBA-Excel, после чего переходим на соответствующую вкладку.
- Далее находим меню «Связи» и нажимаем на кнопку «Разорвать связи в выделенных диапазонах».
После этого все связи в выделенном наборе ячеек будут удалены.
Команды утилиты iptables
Ниже приводится список команд и правила их использования. Посредством команд сообщается iptables, что предполагается сделать. Обычно предполагается одно из двух действий — это добавление нового правила в цепочку или удаление существующего правила из той или иной таблицы. Далее приведены команды, которые используются в iptables.
Команда | Формат вызова | Результат |
-A, -append |
iptables -A INPUT |
Добавляет новое правило в конец заданной цепочки. |
-D, -delete |
iptables -D INPUT -dport 80 -j DROP, iptables -D INPUT 1 |
Удаление правила из цепочки. Команда имеет два формата записи, первый — когда задается критерий сравнения с опцией -D (см. первый пример), второй — порядковый номер правила. Если задается критерий сравнения, то удаляется правило, которое имеет в себе этот критерий, если задается номер правила, то будет удалено правило с заданным номером. Счет правил в цепочках начинается с 1. |
-R, -replace |
iptables -R INPUT 1 -s 192.168.0.1 -j DROP |
Данная команда заменяет одно правило другим. В основном она используется во время отладки новых правил. |
-I, -insert |
iptables -I INPUT 1 -dport 80 -j ACCEPT |
Вставляет новое правило в цепочку. Число, следующее за именем цепочки, указывает номер правила, перед которым нужно вставить новое правило, другими словами, число задает номер для вставляемого правила. В примере указывается, что данное правило должно быть 1-м в цепочке INPUT. |
-L, -list |
iptables -L INPUT |
Вывод списка правил в заданной цепочке, в данном примере предполагается вывод правил из цепочки INPUT. Если имя цепочки не указывается, то выводится список правил для всех цепочек. Формат вывода зависит от наличия дополнительных ключей в команде, например -n, -v, и пр. |
-F, -flush |
iptables -F INPUT |
Удаление всех правил из заданной цепочки (таблицы). Если имя цепочки и таблицы не указывается, то удаляются все правила, во всех цепочках. |
-Z, -zero |
iptables -Z INPUT |
Обнуление всех счетчиков в заданной цепочке. Если имя цепочки не указывается, то подразумеваются все цепочки. При использовании ключа -v совместно с командой -L, на вывод будут поданы и состояния счетчиков пакетов, попавших под действие каждого правила. Допускается совместное использование команд -L и -Z. В этом случае будет выдан сначала список правил со счетчиками, а затем произойдет обнуление счетчиков. |
-N, -new-chain |
iptables -N allowed |
Создается новая цепочка с заданным именем в заданной таблице. В выше приведенном примере создается новая цепочка с именем allowed. Имя цепочки должно быть уникальным и не должно совпадать с зарезервированными именами цепочек и действий (DROP, REJECT и т.п.) |
-X, -delete-chain |
iptables -X allowed |
Удаление заданной цепочки из заданной таблицы. Удаляемая цепочка не должна иметь правил и не должно быть ссылок из других цепочек на удаляемую цепочку. Если имя цепочки не указано, то будут удалены все цепочки, определенные командой -N в заданной таблице. |
-P, -policy |
iptables -P INPUT DROP |
Определяет политику по умолчанию для заданной цепочки. Политика по умолчанию определяет действие, применяемое к пакетам, не попавшим под действие ни одного из правил в цепочке. В качестве политики по умолчанию допускается использовать DROP, ACCEPT и REJECT. |
-E, -rename-chain |
iptables -E allowed disallowed |
Команда -E выполняет переименование пользовательской цепочки. В примере цепочка allowed будет переименована в цепочку disallowed. Эти переименования не изменяют порядок работы, а носят только косметический характер. |
Команда должна быть указана всегда. Список доступных команд можно просмотреть с помощью команды iptables -h или, что то же самое, iptables -help. Некоторые команды могут использоваться совместно с дополнительными ключами. Ниже приводится список дополнительных ключей и описывается результат их действия.
Написать гостевые посты
Гостевые статьи и интервью — хороший способ, чтобы получить ссылки на свой ресурс и зарекомендовать себя как эксперта.
Выберите несколько дружественных ресурсов, которые ведут блог по смежной теме, и напишите для них качественные материалы, поделитесь кейсами и мнением на актуальные вопросы.
Гостевые посты обычно бесплатные, если это не реклама, и в них допускается одна-две ссылки на автора и его сайт.
Ссылка на автора гостевого поста
В блоге PR-CY можно разместить гостевой пост по теме SEO, поделиться исследованием или кейсом. Полезные обучающие материалы и кейсы не рекламного характера публикуем бесплатно, ссылку ставим. Напишите на почту [email protected] и договоритесь о публикации.
Автозагрузка правил iptables
1. Загрузка правил с помощью скрипта
Сохраненные правила с помощью утилиты iptables-save можно восстанавливать с помощью скрипта, запускаемого при каждом запуске операционной системы. Для этого необходимо выполнить следующие действия:
Сохранить набор правил межсетевого экрана с помощью команды:
Для запуска набора правил при старте операционной системы перед включением сетевого интерфейса мы создаем новый файл с помощью команды:
Заметим — в сети есть много вариантов места размещения скрипта на локальной машине, но я считаю именно размещение в папке if-pre-up.d наиболее верным, так как при этом скрипт будет выполнятся перед включением сетевого интерфейса. Добавляем в данный файл следующий скрипт:
Сохраняем файл iptables Ctrl+O. Выходим из editor Ctrl+X. Устанавливаем необходимые права для созданного файла:
Перезагружаем компьютер и проверяем результат для таблицы filter с помощью команды:
Для обеспечения безопасности необходимо, чтобы конфигурация iptables применялась до запуска сетевых интерфейсов, сетевых служб и маршрутизации. Если данные условия не будут соблюдены — появляется окно уязвимости между загрузкой операционной системы и правил защиты межсетевого экрана. Для реализации такого варианта защиты можно использовать пакет iptables-persistent.
2. Автозагрузка правил iptables-persistent
По умолчанию данный пакет не установлен в операционной системе. Данный вариант реализации автозапуска конфигурации возможен в операционных системах Debian, Ubuntu. Для установки пакета требуется выполнить команду:
Этот пакет впервые стал доступен в Debian (Squeeze) и Ubuntu (Lucid). Используемые этим пакетом правила iptables хранятся в следующих директориях:
- /etc/iptables/rules.v4 для набора правил протокола IPv4;
- /etc/iptables/rules.v6 для набора правил протокола IPv6.
Но они должны быть сохранены в понятном утилите iptables-persistent виде.
Требования к формату данных файлах не задокументированны, что создает некоторые сложности для создания этих файлов вручную. Их можно создать с помощью dpkg-reconfigure:
Или можно использовать iptables-save и ip6tables-save:
Утилита netfilter-persistent тоже позволяет управлять автозагрузкой правил. Вот её синтаксис:
sudo netfilter-persistent
Где может принимать следующие значения:
- start — вызывает все плагины с параметром start, для загрузки правил в netfilter;
- stop — если настроена конфигурация сброса настроек Netfilter при остановке плагина, сбрасывает все настройки firewall на значения по умолчанию. Иначе просто выдает предупреждение;
- flush — плагины вызываются с параметром flush, что приводит к сбросу правил межсетевого экрана на значения по умолчанию;
- save — вызывает плагины с параметром save, позволяя сохранить значения правил брандмауэра в файлы на диске;
- reload — не задокументированный параметр, возникали случаи когда параметр start не срабатывал, помогал вызов этого параметра для загрузки правил из файла на диске;
Значит, чтобы сохранить правила мы можем вызвать следующую команду:
Для загрузки же сохраненных правил мы можем использовать команду:
Замечание После установки netfilter-persistent система при использовании iptables и формата хранения файлов, связанного с ним, начинает при работе выдавать предупреждение
Это связано с наличием новой утилиты настройки и редактирования правил Netfilter — nftables, для миграцию на эту утилиту старых правил iptables можно использовать автоматический транслятор правил iptables-translate. Но это уже тема для отдельной статьи.
Примеры
С терминологией разобрались, теперь давайте перейдем к примерам.
1. Показать сатаус
где:
- L — показать список правил.
- v — отображать дополнительную информацию. Эта опция показывает имя интерфейса, опции, TOS маски. Также отображает суффиксы ‘K’, ‘M’ or ‘G’.
- n — отображать IP адрес и порт числами (не используя DNS сервера для определения имен).
Для того, чтобы отобразить статус с номерами строк, выполняем:
Для того, чтобы отобразить статус с номерами строк, к примеру, таблицы nat, выполняем:
где:
t — указывает на определенную таблицу
Для того, чтобы отобразить статус цепочки INPUT или FORWARD:
2. Добавить правило в файрвол
Если необходимо вставить правило в цепочку INPUT, к примеру, между третьей и четвертой строкой, то необходимо выполнить следующее:
Не забудьте проверить, добавилось ли правило цепочку:
3. Удалить правило из файрвола
К примеру, необходимо удалить третью строку из цепочки правил INPUT. Не вопрос:
Ну или найдем адрес источника и удалим правило:
6. Блокировать входящие запросы на определенный порт
Отбросим пакеты, приходящие на порт 80, на всех интерфейсах:
На интерфейсе eth0:
Приходящие с определеннного адреса:
Блокировать:
Разрешить на порт 22:
9. Записать событие в лог-файл и сбросить
Для того, чтобы записать движение пакетов с определенного адреса в лог-файл и затем сбросить, выполняем:
Чтобы не переполнить раздел раздутым лог-файлом, ограничим количество записей. К примеру, чтобы записывать каждые 5 минут максимум 10 строк:
Смотрим в журнал:
или:
Разрешаем подключение к порту 3389, если адрес в диапазоне от 10.1.1.100 до 10.1.1.200 ##
Тоже самое, только для nat:
12. Ограничить количество параллельных соединений к серверу для одного адреса
Для ограничений используется модуль connlimit. Если необходимо разрешить только 3 ssh соединения на одного клиента:
Установить количество запросов HTTP до 20:
Где:
- —connlimit-above 3 — указывает, что правило действует только если количество соединений превышает 3.
- —connlimit-mask 24 — указывает маску сети.
13. Блокировать или разрешить ICMP запросы
Блокируем ping:
Разрешаем только часть ICMP запросов (предполагается, что политики по умолчанию для всех входящих блокируются, то есть установлены в DROP):
Разрешаем пинговать только с определенных адресов:
Проверка правил
Для проверки работы правил iptables можно воспользоваться утилитами telnet, netstat, nmap и др.:
Проверка с помощью telnet:
$ telnet example.com 80
Проверим доступность портов с помощью netstat:
или если нам нужно проверить опеределенный порт:
Что-то вроде заключения
В заключении хочется сказать, что Iptables — довольно простой и мощный инструмент. Конечно же в этой статье описаны не все возможности и примеры использования данной утилиты. Ниже я оставил ссылки на источники, которыми пользовался. Для дополнительной информации можно воспользоваться гуглом, ну и конечно же:
- https://www.opennet.ru/docs/RUS/iptables/
- http://help.ubuntu.ru/wiki/iptables
Сохранение введенных правил при перезагрузке
Все введенные в консоли правила — после перезагрузки ОС будут сброшены в первоначальное состояние (читай — удалены). Для того чтобы сохранить все введенные команды iptables, существует несколько путей. Например, один из них — задать все правила брандмауэра в файле инициализации . Но у данного способа есть существенный недостаток: весь промежуток времени с запуска сетевой подсистемы, до запуска последней службы и далее скрипта rc.local из SystemV операционная система будет не защищена. Представьте ситуацию, например, если какая-нибудь служба (например NFS) стартует последней и при ее запуске произойдет какой-либо сбой и до запуска скрипта rc.local. Соответственно, rc.local так и не запуститься, а наша система превращается в одну большую дыру.
Поэтому самой лучшей идеей будет инициализировать правила netfilter/iptables при загрузке сетевой подсистемы. Для этого в Debian есть отличный инструмент — каталог /etc/network/if-up.d/, в который можно поместить скрипты, которые будут запускаться при старте сети. А так же есть команды iptables-save и iptables-restore, которые сохраняют создают дамп правил netfilter из ядра на и восстанавливают в ядро правила со соответственно.
Итак, алгоритм сохранения iptables примерно следующий:
- Настраиваем сетевой экран под свои нужны с помощью
- создаем дамп созданный правил с помощью команды iptables-save > /etc/iptables.rules
- создаем скрипт импорта созданного дампа при старте сети (в каталоге /etc/network/if-up.d/) и не забываем его сделать исполняемым:
# cat /etc/network/if-up.d/firewall #!/bin/bash /sbin/iptables-restore < /etc/iptables.rules exit 0 # chmod +x /etc/network/if-up.d/firewall
Дамп правил, полученный командой iptables-save имеет текстовый формат, соответственно пригоден для редактирования. Синтаксис вывода команды iptables-save следующий:
# Generated by iptables-save v1.4.5 on Sat Dec 24 22:35:13 2011 *filter :INPUT ACCEPT :FORWARD ACCEPT ....... # комментарий -A INPUT -i lo -j ACCEPT -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT ........... -A FORWARD -j REJECT COMMIT # Completed on Sat Dec 24 22:35:13 2011 # Generated by iptables-save v1.4.5 on Sat Dec 24 22:35:13 2011 *raw ...... COMMIT
Строки, начинающиеся на # — комментарии, строки на * — это название таблиц, между названием таблицы и словом COMMIT содержатся параметры, передаваемые команде iptables. Параметр COMMIT — указывает на завершение параметров для вышеназванной таблицы. Строки, начинающиеся на двоеточие задают цепочки, в которых содержится данная таблица в формате:
:цепочка политика
где цепочка — имя цепочки, политика — политика цепочки по-умолчанию для данной таблицы, а далее счетчики пакетов и байтов на момент выполнения команды.
В RedHat функции хранения команд iptables выполняемых при старте и останове сети выполняет файл /etc/sysconfig/iptables. А управление данным файлом лежит на демоне iptables.
Как еще один вариант сохранения правил, можно рассмотреть использование параметра up в файле /etc/network/interfaces с аргументом в виде файла, хранящего команды iptables, задающие необходимые правила.
Итог
На сегодня будет достаточно. Более сложные реализации межсетевого экрана я обязательно будут публиковаться в следующих статьях.
Перенос ярлыков на другой компьютер — ошибка очень начинающих пользователей
Одна из ошибок, которую нередко допускают пользователи, слабо знакомые с компьютером — копирование программ, а точнее их ярлыков (например, на флешку, отправка по электронной почте) для запуска на другом компьютере.
Дело в том, что ярлык, т.е. значок программы на рабочем столе (обычно, с изображением стрелки в левом нижнем углу) не является самой этой программой, а всего лишь ссылка, сообщающая операционной системе, где именно на диске хранится программа.
Соответственно, при переносе этого ярлыка на другой компьютер он обычно не работает (так как на его диске нет этой программы в заданном расположении) и сообщает о том, что объект изменен или перемещен (по факту — отсутствует).
Как быть в этом случае? Обычно достаточно скачать установщик этой же программы на другом компьютере с официального сайта и установить программу. Либо открыть свойства ярлыка и там, в поле «Объект» посмотреть, где именно на компьютере хранятся сами файлы программы и скопировать всю её папку (но это не всегда будет работать для программ, требующих установки).
Аргумент CASCADE
Каскадное поведение обычно используется при настройке отношений между моделями. Когда объект, на который имеется ссылка, удаляется, все объекты, ссылающиеся на этот объект, также будут удалены.
Синтаксис
Чтобы лучше понять это, рассмотрим следующий пример
Обратите внимание, что тот же пример будет использован для объяснения некоторых других вариантов поведения
Есть веб-сайт, на котором авторы могут зарегистрироваться и вести блог на сайте. Теперь представим две сущности, рассмотрим две модели, а именно и . Все записи или кортежи в имеют ссылку по внешнему ключу (или ссылаются) на запись или кортеж . Он представляет собой отношения, согласно которым каждый когда-либо написанный блог принадлежит автору, который его написал.
Теперь предположим, что на веб-сайте существует политика, согласно которой, если автор удаляет свою учетную запись, все блоги, когда-либо написанные им или ею, будут удалены. В таком сценарии удачным выбором будут каскадные отношения.
1.5.3. Ключи
Ограничение PRIMARY KEY определяет первичный ключ таблицы, который уникально идентифицирует строку. Это гарантирует целостность таблицы. Когда мы изучали оператор PRIMARY KEY, то уже видели примеры и мне добавить нечего. Давайте только сведем все вышесказанное, чтобы увидеть свойства первичного ключа:
- в таблицы может быть только один первичный ключ, но этот ключ может состоять из нескольких полей;
- поле не может содержать нулевого значения;
- для полей первичного ключа создается индекс, который может быть кластерным или не кластерным;
- Не смотря на то, что для полей первичного ключа не создается ограничения уникальности, оно подразумевается и две записи не могут содержать одинаковых значений в первичном ключе.
Ограничение FOREIGN KEY (внешний ключ) гарантирует ссылочную целостность. Ограничение внешнего ключа определяет ссылку на колонку с первичным ключом или уникальную колонку в этой же или другой таблице. С помощью такого ключа обеспечивается целостность связей между таблицами.
Внешний ключ, как и первичный, может состоять из нескольких полей. При создании связующего ключа, количество колонок внешнего ключа должно соответствовать количеству колонок первичного ключа, с которым происходит связь. Кстати, связываться можно не только с первичным ключом, но и с полем, содержащим ограничение уникальности.
Если в связующих таблицах достаточно много строк, то я рекомендую добавить к внешнему ключу еще и индекс. Дело в том, что для внешнего ключа индекс автоматически не создается. Благодаря индексу, сервер сможет быстрее найти связанные строки в разных таблицах.
Ограничение внешнего ключа включает опцию CASCADE, которая позволяет любые изменения сделанные в уникальной колонке или первичном ключе автоматически переносить в значение внешнего ключа. Такое действие называется целостностью каскадных ссылок.
Опция REFERENCE команд CREATE TABLE и ALTER TABLE поддерживаю опции ON DELETE и ON UPDATE. Эти опции позволят вам указать опции CASCADE и NO ACTION:
NO ACTION указывает что любые попытки удалить или обновить ключ, на который ссылается вторичный ключ в другой таблице заканчиваются ошибкой, и изменения откатываются. Это значение по умолчанию и я рекомендую остановиться на нем. Напоминаю, что без особой надобности не стоит включать каскадных действий.
И все же, бывают случаи, когда каскадные действия действительно упрощают программирование, но использовать их нужно очень аккуратно.
Вернуть удаленные ссылки
В погоне за новыми ссылками многие не обращают внимания на то, сколько ссылок из существующих они теряют. Можно уравновешивать потерю ссылок потоком новых, но проще возвращать нерабочие ссылки.
Как можно потерять ссылку:
- владелец сайта перестал ссылаться на ваш контент в своей статье;
- перестала существовать страница, на которой была ссылка.
Найти такие ссылки можно с помощью инструмента Ahrefs «Broken Backlinks». Сервис подписывает причину, по которой ссылка больше не работает.
Пример работы сервиса
Если ссылка пропала, свяжитесь с владельцем сайта и узнайте причину. Возможно, всю страницу случайно удалили, редактор переписал статью и ссылка стала неактуальной, ваш материал устарел или был заменен на более подробный. В таком случае можно обновить свой материал и предложить на него сослаться, или подобрать новую подходящую статью.При покупке ссылок или получении их по другим договоренностям ведите их учет с датами, ссылками на страницы, где они должны стоять, и контактами лиц, с которыми вы договаривались.
Удаление правил Iptables
Удаление по номеру строки
iptables -L INPUT -n --line-numbers
Chain INPUT (policy DROP) num target prot opt source destination 1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 2 f2b-sshd tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 2200 3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:10050 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:2200 5 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 6 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 7 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 8 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Удалить третье правило из списка выполним:
iptables -D INPUT 3
где:
Аттрибут | Описание |
---|---|
-D | Удалить правило |
Удаление по содержимому
iptables-save
*filter :INPUT DROP :FORWARD ACCEPT :OUTPUT ACCEPT :f2b-sshd - -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m multiport --dports 2200 -j f2b-sshd -A INPUT -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 2200 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited -A f2b-sshd -j RETURN COMMIT
Удалить строку:
iptables -D INPUT -p tcp -m multiport --dports 2200 -j f2b-sshd
где:
Аттрибут | Описание |
---|---|
-D | Удалить правило |