Архив метки: CentOS

Команда ifconfig в Linux

ifconfig(настройка интерфейса) — это инструмент управления сетью. Он используется для настройки и просмотра состояния сетевых интерфейсов в операционных системах Linux. С его помощью ifconfig вы можете назначать IP-адреса, включать или отключать интерфейсы, управлять кешем ARP, маршрутами и т. д.

В этой статье мы рассмотрим, как использовать команду ifconfig. Читать

🐧 Red Hat Enterprise Linux 7 и CentOS 7 критическое обновление безопасности ядра

Red Hat и CentOS объявили о выпуске важных обновлений безопасности ядра для своих семейств операционных систем Red Hat Enterprise Linux 7 и CentOS Linux 7.

Сообщается, что обновления устраняют две дыры в безопасности и многие другие ошибки.

В частности, новое обновление безопасности ядра Linux устраняет уязвимости CVE-2019-14821 и CVE-2019-15239.

Среди них CVE-2019-15239 может привести к тому, что локальные злоумышленники вызовут несколько условий «use-after-free», что приведет к сбою ядра или потенциальному повышению привилегий.

Кроме того, обновление ядра устраняет многочисленные ошибки, в том числе отсутствие информации о SCSI VPD для дисков NVMe, которая нарушает InfoScale, разыменование нулевого указателя при check_preempt_wakeup 0x109, pick_next_task_rt panuc, ошибка «Обнаружено зависание модуля Tx» с сбросом адаптера, нарушенная балансировка нагрузки через VF LAG конфигурацию, проблемы безопасности в драйвере crypto vmx, XFS зависает при получении xfs_buf, ошибку, где виртуальная машина зависает во время open_posix_testsuite и многие другие.

 



2019-12-09T11:53:33
Закрытие уязвимостей

Сервер времени на Linux Ubuntu | ntp server

Сегодня разберём установку и настройку ntp сервера или сервера времени на Linux |Ubuntu | Debian. Данное руководство применима и для настройки ntpd на любом другом Linux дистрибутиве (например CentOS). Читать

Как защитить ssh в CentOS / RHEL / Fedora

Необходимость обеспечения безопасности sshd

Некоторые системные администраторы могут заметить, что злоумышленники пытаются войти в систему с общими именами пользователей и паролями через SSH.

В системных журналах /var/log/secure можно увидеть записи, аналогичные приведенным ниже для многих распространенных имен пользователей (таких как «admin», «guest», «test» и «root»):

Oct 28 11:11:08 hostname sshd[13412]: Illegal user admin from 172.16.59.10

Oct 28 11:11:12 hostname sshd[13412]: Failed password for illegal user admin from 172.16.59.10 port 33762 ssh2

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

Атака брутфорса – это та, в которой пароль неоднократно угадывается, пока не будет найден правильный.

Как обезопасить демона SSHD?

Есть много способов сделать SSH более безопасным.

Здесь мы обсудим некоторые рекомендации.

Использование TCP Врапперов

Самый простой способ защитить демон SSH – это выборочно запретить доступ к нему с помощью функций из пакета tcp_wrappers-libs.

Этот пакет установлен по умолчанию.

tcpwrappers настраиваются через файлы /etc/hosts.allow и /etc/hosts.deny.

Чтобы полностью запретить доступ к демону SSH, добавьте следующий текст в /etc/hosts.deny:

# vi /etc/hosts.deny

sshd: ALL

Это полностью отключит доступ к демону SSH с любого клиента.

Если есть несколько хостов, которым нужно разрешить подключение, добавьте следующие строки в /etc/hosts.allow:

# vi /etc/hosts.allow

sshd: 192.168.0.1, trusted.one-domain.com, 192.168.23.0/24, *.trusted.net

Это позволит подключаться с IP-адреса 192.168.0.1, имени хоста trust.one-domain.com, сети 192.168.23.0/24 и домена * .trusted.net при запрете любых других подключений.

Помните, вам нужно запретить и разрешить хост / сети.

Использование iptables

Когда у вас есть хост в локальной корпоративной сети, вероятно, достаточно использовать TCP Wrappers, так как большинство хостов находятся под вашим контролем, так что вы можете гарантировать низкий риск атаки.

Но что произойдет, если у вас есть служба SSHD, работающая через Интернет, или в неуправляемой (враждебной) сети, такой как site2site vpn с провайдером?

Вы можете получить больше контроля над доступом с iptables.

Также iptables может дать вам больше гибкости и надежности.

Вы можете перечислить свой набор правил с помощью команды «iptables -nL –line-numbers», чтобы увидеть, какие правила уже существуют, это правила по умолчанию, которые пришли с новой установкой CentOS / RHEL 6:

# iptables -nL --line-numbers

Chain INPUT (policy ACCEPT)

num  target     prot opt source               destination         

1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 

2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           

3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           

4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 

5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 



Chain FORWARD (policy ACCEPT)

num  target     prot opt source               destination         

1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 



Chain OUTPUT (policy ACCEPT)

num  target     prot opt source               destination

Затем вы можете добавить или удалить правила.

Следующие примеры в цепочке INPUT вставят правило в iptables.

Помните, что вам нужно поставить правило на определенную позицию, т.е. Строка 3, просто над правилами DROP по умолчанию, вы можете указать это следующим образом:

# iptables -I INPUT 3 -p TCP -i eth0 -s 192.168.1.39 --dport 22 -j ACCEPT

Выполнение следующей команды от имени root приведет к удалению всего доступа SSH к 192.168.1.22:

# iptables -I INPUT [line-number] -p tcp -i eth0 -s 192.168.1.22 --dport 22 -j DROP

Пожалуйста, обратитесь к man iptables для дополнительных опций и использования, или autohelp iptables –help для краткого резюме:

# man iptables

# autohelp iptables

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

# iptables -I INPUT [line-number] -p tcp -i eth0 -s 192.168.1.39 --dport 22 -j ACCEPT

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

# iptables -I INPUT [line-number] -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH 

# iptables -I INPUT [line-number] -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 12 --rttl --name SSH -j LOG --log-prefix 'SSH-HIT-RATE: '

# iptables -I INPUT [line-number] -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 12 --rttl --name SSH -j DROP

# iptables -I INPUT [line-number] -p tcp --dport 22 -m state --state NEW -j ACCEPT # on the default fresh-install ruleset this rule is already in place, you can ignore

Эти 3 правила устанавливают скорость прохождения 12 новых попыток подключения в минуту, вам необходимо настроить эти значения в соответствии с вашими потребностями.

Все журналы этого правила появятся в файле /var/log/messages, префикс «SSH-HIT-RATE» используется для облегчения поиска связанных записей.

Пожалуйста, обратите особое внимание, когда вы проверяете свои новые правила.

Если вы допустили некритическую ошибку, вы можете вернуться к предыдущей сохраненной конфигурации, используя «service iptables force-reload».

Когда конфигурация была завершена, вы можете сохранить правила брандмауэра с помощью «service iptables save».

Использование /etc/ssh/sshd_config

Существуют и другие шаги, которые можно предпринять, если ограничение доступа невозможно.

Вот некоторые из лучших практик конфигурации SSHD:

Наиболее рекомендуемое действие, особенно в качестве защиты от атак методом “брутфорса”, должно состоять в том, чтобы предотвратить вход root напрямую через SSH.

Для этого вам нужно изменить строку, которая гласит:

# vi /etc/ssh/sshd_config

#PermitRootLogin yes

следующему виду:

# vi /etc/ssh/sshd_config

PermitRootLogin no

Это изменение потребует, чтобы вы сконфигурировали sudo или использовали su для получения привилегий в качестве пользователя root в сеансе ssh пользователя без полномочий root.

Кроме того, вы можете настроить ssh-ключи для пользователя root и использовать опцию ниже, чтобы позволить пользователю root войти в систему только с ключами.

# vi /etc/ssh/sshd_config

PermitRootLogin without-password

Измените определенный порт, отличный от порта по умолчанию.

Можно изменить его на любое случайное число от 1025 до 65535, так как злоумышленники предположат, что порт 22 будет использоваться для протокола ssh.

Найдите эту строку в /etc/sshd/sshd_config:

#Port 22

Измените это на что-то вроде этого:

Port 1101

Номер порта 1101 просто является примером.

Теперь вам нужно получить доступ к этому серверу через порт 1101 при подключении по ssh:

$ ssh someuser@ssh-server:1101

Убедитесь, что сервер принимает только протокол SSH версии 2:

# Protocol 2,1     ### hash this entry and make below entry to allo only ssh v2.

Protocol 2

Измените время, которое пользователь может проводить с открытым приглашением для входа в систему (значение в секундах):

# Default value is 120 seconds.

# Adjust this value according your needs.

LoginGraceTime 30

Это сокращает некоторые DoS-атаки, которые можно выполнять, имитируя медленный вход в систему.

Сторонние приложения

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

Они работают на разных уровнях, обеспечивая разный подход к конкретному событию.

 



2018-12-25T16:53:57
Закрытие уязвимостей

Как установить CHKROOTKIT на Ubuntu 18.04 / Centos 7

В этой статье я расскажу, как установить chkrootkit на наши новейшие системы Ubuntu 18.04 и CentOS 7.

Chkrootkit – это общий сканер безопасности, который помогает администраторам искать в локальной системе признаки того, что он заражен «руткитом».

Руткит можно рассматривать как вредоносную программу, которая может взять под контроль компьютерную систему, не зная об этом пользователя компьютерной системы.

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

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

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

Установка chkrootkit на Ubuntu 18.04

Гораздо проще установить chkrootkit на сервер Ubuntu 18.04, поскольку он доступен в самих пакетах репозитория Ubuntu.

Мы можем установить его, выполнив следующую команду:

# apt-get update

# apt install chkrootkit

# chkrootkit -V

chkrootkit version 0.52

Нам просто нужно убедиться, что у нас есть привилегии root для использования chkrootkit.

Включить автоматическое сканирование серверов

Пакет chkrootkit в репозитории Ubuntu поставляется с конфигурацией crontab.

Этот crontab планируется запустить ежедневно.

Чтобы включить ежедневную проверку, вы можете открыть /etc/chkrootkit.conf и изменить этот файл, как показано ниже:

Замените первую строку:

RUN_DAILY=”false”

на

RUN_DAILY=”true”

Установка chkrootkit на CentOS 7.5

Этот инструмент недоступен в пакетах репозитория CentOS.

Следовательно, нам нужно загрузить последнюю доступную версию и настроить ее.

1. Установка компиляторов и библиотек C / C ++

В Chkrootkit есть программы C.

Перед компиляцией исходного пакета chkrootkit вам необходимо установить компилятор GCC (C и C ++) и glibc-static, чтобы избежать ошибок во время процесса использования.

#yum update

#yum install wget gcc-c++ glibc-static

2. Загрузите последний доступный chkrootkit.

Как упоминалось ранее, вы можете скачать последнюю версию chkrootkit с веб-сайта chkrootkit.

# wget -c ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz

3. Загрузите хэш-файл пакета md5

Затем мы можем загрузить хеш-файл md5, связанный с нашей загрузкой chkrootkit, чтобы проверить, не поврежден ли он.

# wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.md5

# md5sum -c chkrootkit.md5

chkrootkit.tar.gz: OK

4. Извлеките сжатый файл и установите его.

Теперь вы можете перейти в загруженную папку и извлечь файл.

Вы можете извлечь его по тому же пути и переместить двоичный файл chkrootkit в папку / usr / bin, или вы можете переместить извлеченное содержимое в отдельную папку с таким именем, как описано здесь, и установить его.

В любом случае это сработает.

#tar –xzf chkrootkit.tar.gz

#mkdir /usr/local/chkrootkit

#mv chkrootkit-0.52/* /usr/local/chkrootkit

#cd /usr/local/chkrootkit

#make sense

Теперь вы можете запустить chkrootkit для сканирования сервера.

 /usr/local/chkrootkit/chkrootkit 

5. Включите автоматическое сканирование сервера.

Вы можете добавить запись cron для запуска chkrootkit автоматически и отправить отчет проверки на ваш почтовый адрес.

Создайте и добавьте следующие записи в “/etc/cron.daily/chkrootkit.sh”

#!/bin/sh

(

/usr/local/chkrootkit/chkrootkit

) | /bin/mail -s 'CHROOTKIT Daily Run (ServerName)' your@email.com

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

Понимание chkrootkit

Chkrootkit – это инструмент для проверки руткитов. Он содержит скрипт оболочки chkrootkit, который сканирует все системные двоичные файлы для любых модификаций руткитов.

Кроме того, он содержит несколько программ на C, которые выполняют различные проверки безопасности, как показано ниже:

ifpromisc.c: Он проверяет, находится ли сетевой интерфейс в беспорядочном режиме.

chklastlog.c: Он проверяет удаление последнего.

chkwtmp.c: Он проверяет удаление wtmp.

chkproc.c: Он  проверяет наличие признаков троянов LKM.

chkdirs.c: Он проверяет наличие признаков троянов LKM.

strings.c: Выполняет быструю и грязную замену строк.

chkutmp.c: Он проверяет удаление utmp.

 



2018-07-03T09:57:49
Закрытие уязвимостей

Установка Ruby на CentOS 7

Понадобилось установить Ruby на сервер с CentOS 7 для выполнения некоторых скриптов. Из стандартных репозиториев устанавливалась очень старая версия, которая мне не подходила. Пришлось собирать последнюю из исходников. Как обычно, не обошлось без подводных камней, о которых расскажу.

Читать