Архив рубрики: Публикации

Устранение неполадок в SELinux

SELinux является одной из самых мощных функций безопасности в вашей системе Fedora. Это как ключ камердинера для ваших компьютерных услуг, только что позволяет им получить доступ к утвержденным данным. SELinux обрастает своей ранней репутацией из-за трудностей. Теперь он имеет настраиваемую политику для наиболее популярных приложений, а также обеспечивает дополнительную безопасность и уверенность. Однако, иногда ошибки случаются, и эта статья поможет вам справиться с ними.

Предпосылки

Эта статья предполагает две вещи:

  1. Вы знаете основы SELinux. Если вы не узнаете основы SELinux, сейчас прекрасное время, чтобы сделать это.
  2. Вы используете SELinux в режиме enforcingРежим enforcing является нормальным и ожидаемым способом запуска Fedora. Если вы отключили SELinux, вам необходимо включить его. Отредактируйте файл /etc/sysconfig/selinux для установки  SELINUX=permissive. Используя режим permissive гарантирует, что любые радикальные проблемы все еще могут быть исправлены автоматически с помощью следующих команд. Затем выполните следующие действия:
    sudo fixfiles -F onboot

    reboot

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

Не удивляйтесь, если вы начинаете видеть ошибки после того, как перемаркируете файлы, если вы уже работаете в режиме disabled некоторое время. Работа в режиме disabled, это как клеить обои через утечку. При удалении обоев, вы, вероятно, найти повреждение водой. Точно так же, если вы уже работаете без включенным SELinux, вы, вероятно, создали больше проблем, которые в настоящее время должны быть решены.

После того как машина перезагрузится, вы можете переключиться на режим enforcing:

sudo setenforce 1

Это действительно в selinux?

Хороший способ сказать, является ли SELinux виноват в ошибке, чтобы установить режим permissive. Это означает, что SELinux регистрирует ошибку, но все же позволяет активность. Для этого выполните следующую команду:

sudo setenforce 0

 

Затем попробуйте процесс снова, в другом терминале, если это необходимо. В случае успеха политики SELinux происходит ошибка. Чтобы найти ошибки в течение последних 10 минут, используйте команду ausearch:

sudo ausearch -m AVC,USER_AVC,SELINUX_ERR -ts recent

 

Если процесс все еще не в режиме permissive, то проблема, скорее всего, не в политике SELinux. В этом случае убедитесь, в запуске sudo setenforce 1, чтобы вернуться в режим enforcing. Помните, этот параметр является глобальным.

Определение проблемы

Обычно вы можете определить ошибки SELinux через сообщение AVC. Одним из параметров сообщения AVC является командой, которая генерируется сообщение. Например, вы можете увидеть comm=”/usr/sbin/httpd”  в сообщении об ошибке SELinux, которая генерируется веб — сервером Apache.

Проблема также скажет вам контекст источника (scontext) действуя части вашей системы, и контекст цели (tcontext) вещи, котор она попыталась подействовать дальше. Часто, но не всегда, источник является бинарным и целевым файлом. Чтобы понять ошибки лучше, вы можете использовать SELinux Troubleshooter. Вы можете установить это с  программным обеспечением инструмента в Fedora Workstation, или использовать sudo с dnf  в терминале:

sudo dnf install setroubleshoot

 

Для запуска программы используйте Обзор в Fedora Workstation, чтобы найти SELinux Troubleshooter, или запустить из терминала:

sealert

 

Вы можете найти последние оповещения в браузере, который появляется:

Устранение неполадок в SELinux

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

Решение проблемы

При выборе  неполадок вы увидите несколько вариантов вашей ошибки.

Устранение неполадок в SELinux

В этом случае пользователь создал файл index.html в своем домашнем каталоге, и использовал  команду mv, чтобы переместить его в каталог   /var/www/html/ который будет обслуживаться веб — сервера Apache. Указав в веб — браузере http://localhost/index.html, эта ошибка произошла.

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

Тем не менее, только потому, что существует логическое значение, не означает, что вы должны включить его, не понимая его. В этом случае, если вы включите логическое значение, веб — сервер Apache сможет прочитать любой пользовательский контент, чьи права позволяют доступ к файлам. Таким образом, в этом случае, если мы могли бы вместо этого спросить, «Почему этот файл имеет контекст?» В этом случае это происходит потому, что пользователь переместил файл. Это означает, что файл перенесли его старые связи в новом месте, вместо того, чтобы получать новый контекст по умолчанию, который позволяет веб-серверу прочитать содержимое в  /var/www/html.

В этом случае лучше идея заключается в том, чтобы просто восстановить правильный контекст файла:

sudo restorecon -rv /var/www/html/index.html

Relabeled /var/www/html/index.html from unconfined_u:object_r:user_home_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0

Примечание о булевых операциях в SELinux

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

semanage boolean -l

 

Если установить пакет selinux-policy-devel первым, вы также можете увидеть краткое описание для каждой булевой операции при выполнении команды выше:

SELinux boolean State Default Description



abrt_anon_write (off, off) Allow ABRT to modify public files used for public file transfer services.

abrt_handle_event (off, off) Determine whether ABRT can run in the abrt_handle_event_t domain to handle ABRT event scripts.

abrt_upload_watch_anon_write (on, on) Determine whether abrt-handle-upload can modify public files used for public file transfer services in /var/spool/abrt-upload/.

antivirus_can_scan_system (off, off) Allow antivirus programs to read non security files on a system

...

 

Чтобы установить логическое временно запустить эту команду, где  boolname это имя логического значения и  value является либо  on или 1, или  off или 0.

setsebool boolname=value

 

Для того, чтобы установить его постоянно, добавьте переключатель -P:

setsebool -P boolname=value

Вывод

Есть и другие функции, которые можно выполнять для решения проблем в SELinux, такие как создание конкретного модуля политики для вашей системы. Вы можете их в руководстве по SELinux (https://docs-old.fedoraproject.org/en-US/Fedora/25/html/SELinux_Users_and_Administrators_Guide/index.html), которое полезно для понимания этих функций.

 



2017-10-17T17:59:28
Fedora

О Kali Linux Certified Professional

Kali Linux Certified Professional (KLCP) – это профессиональная сертификация от сообщества Kali Linux, которая свидетельствует о том, что человек обладает  знанием и свободным владением в использовании Kali Linux.

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

Для того, чтобы лучше узнать Kali , вы можете приобрести с сайта Amazon или просто скачать программу обучения здесь. Читать

MikroTik Block Website (Facebook, YouTube and Other Sites)

MikroTik Firewall is a powerful security tool that can be used to block unwanted websites. If you are a network administrator, sometimes it may be your requirement to block any website like Facebook, YouTube, Pornographic site and so on. To block these types of websites, you just need to create Firewall Rules that will drop any connection to these websites through your MikroTik Router. MikroTik Firewall basic concept such as what is MikroTik Firewall, what is MikroTik Firewall Rule, how to implement MikroTik Firewall Rule etc.  was discussed in my previous article. If you feel that you need the basic concept of MikroTik Firewall, feel free to spend time to study that article. In this article, I am only going to show how to block unwanted websites using MikroTik Firewall Rules.




How MikroTik Firewall Blocks Websites




MikroTik Firewall blocks website using Filter Rule. A MikroTik Filter Rule has two parts.




  • Conditional part which takes various conditional properties such as Chain, Source Address, Destination Address, Protocol, Source Port, Destination Port, Layer7 Protocol etc. to match conditions.
  • Action part which takes only drop action to block any website.






If conditional part of a Filter Rule is matched, MikroTik Firewall will drop that connection. So, any user cannot access that website through MikroTik Router.




Why Layer7 Protocol




MikroTik Firewall is capable to block any website with not only source address or destination address but also Layer7 Protocol. Layer7 Protocol uses Perl Regex (Regular Expression) to match any keyword in URL. If matched is occurred, action is taken by the Filter Rule that uses this Layer7 Protocol. As we want to block any website providing keyword such as Facebook, YouTube etc. we will create a Layer7 Protocol with Regex and then we will use this Layer7 Protocol in our Filter Rule.




Block Facebook, YouTube with MikroTik Filter Rule




Now we will create Filter Rule that will block websites like Facebook, YouTube or any other website that you want. Complete process to create a Filter Rule can be divided into two steps.




  • Step 1: Creating layer7 protocol to select desired website and
  • Step 2: Creating firewall rule to block that selected website




Step 1: Creating Layer7 Protocol to Select Desired Website




Before creating Filter Rule, we need to create Layer7 Protocol with Regex because this Layer7 Protocol will be used by Filter Rule to match any keyword in URL. The following process will show how to create Layer7 Protocol with Regex.






  • Open winbox and login with your login credentials.
  • Go to IP > Firewall and then click on Layer7 Protocols tab.
  • Click on PLUS SIGN (+) to create a new Layer7 Protocol with Regex. New Firewall L7 Protocol window will appear.
  • Put a meaningful name such as Facebook in Name input box.
  • Now put ^.+(facebook.com).*$ Regex in Regexp textarea input field if you want to block Facebook. If you are interested to know Perl Regex, you will find here.
  • Now click Apply and OK button.
  • Similarly, if you want to block YouTube, do step 4, 5 and 6 but change facebook.com with youtube.com like ^.+(youtube.com).*$. You can put any keyword such as sex, porn etc. that you want to block within parenthesis in this Regex.




Layer 7 Protocol Regex to Block Websites
Layer 7 Protocol Regex to Block Websites




We have created our Layer7 Protocols which will be used in Filter Rule to block our desired sites. Now we will create our Firewall Filter Rule.




Step 2: Creating Filter Rule to Block Selected Website with Layer7 Protocol




After creating Layer7 Protocol, we will now create Filter Rule that will block our desired website. The following steps will show how to create a Filter Rule to block any website.




  • Now click on Filter Rules tab and then click on PLUS SIGN (+) to create a new Filter Rule. New Firewall Rule window will appear now.
  • In General tab, choose forward from Chain dropdown menu.
  • We are keeping untouched both Src. Address and Dst. Address because we want to block all users. If you want to block for a specific user, put his/her IP address in Src. Address input box or if you want to block for an IP block, put that IP block in the Src. Address input box.
  • Click on Protocol dropdown menu and choose tcp from Protocol dropdown menu.
  • Put port 80,443 in Dst. Port input box. Value should be comma separated.
  • Click on Advanced tab and then choose your Layer7 Protocol that you created before from Layer7 Protocol dropdown menu.
  • Now click on Action tab and choose drop from Action dropdown menu.
  • Click Apply and OK button.
  • Similarly, you can create another Filter Rule to block any other website.




Filter Rule to Block Websites
Filter Rule to Block Websites




Filter Rule to block website has been created. The above rule will block all the users to access our desired website. But sometimes you may need to access this website for a specific user. In this case, you have to create another Filter Rule where user’s IP address has to provide in source address and the Filter action will be accept.




How to Allow a Specific User to a Blocked Website




The above Filter Rule that we have created will block all users in your LAN. But sometimes you may have some specific users who need to access your blocked website such as Facebook, YouTube etc.  The following steps will show you how to give access a specific user to your blocked website.




  • Click on Filter Rules tab and then click on PLUS SIGN (+) to create a new Filter Rule. New Firewall Rule window will appear now.
  • In General tab, choose forward from Chain dropdown menu.
  • Put your user’s IP address which will be allowed to access blocked website in Address input box.
  • Click on Protocol dropdown menu and choose tcp from Protocol dropdown menu.
  • Put port 80,443 in Dst. Port input box.
  • Click on Advanced tab and then choose your Layer7 Protocol which will be allowed for the user from Layer7 Protocol dropdown menu.
  • Now click on Action tab and choose accept from Action dropdown menu.
  • Click Apply and OK button.
  • Similarly, you can add another IP address (user) to access blocked website.




Note: You must place allowed rule before dropped rule. Otherwise, allowed user will go under dropped rule. So, he/she cannot access to desired website.




Allow IP to Blocked Websites
Allow IP to Blocked Websites




I hope, you will be able to block any unwanted website using layer7 protocol and MikroTik Firewall filter rule if you follow the above steps properly. However, if you face any confusion to follow above steps, feel free to watch my video about MikroTik Block Website (facebook, youtube etc). I hope, it will reduce your any confusion.