По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Сетевая инфраструктура (роутеры, коммутаторы, МСЭ, АТС и так далее) являются очень важными ресурсами организации, и поэтому очень важно корректно настроить доступ к данным устройствам – для достижения нужного уровня защиты.
Множество корпораций фокусируются на защите своих серверов, приложений, баз данных и прочих компонентов сети, но они могут совершенно забыть о том, что часть установленных у них устройств содержат, к примеру, дефолтные логин и пароль.
К примеру, скомпрометированный маршрутизатор может доставить гигантское количество проблем – злоумышленники могут получить доступ к информации, трафик может улетать на другое направление и так далее. Так что корректная настройка устройств с точки зрения сетевой безопасности является крайне важным моментом при обеспечении защиты информации вашей организации.
К примеру Cisco разделяет любое сетевое устройство на 3 функциональных плоскости, а именно:
Плоскость менеджмента – это все о том, как непосредственно управлять железкой. То есть данная плоскость используется для доступа, настройки и мониторинга устройства. В нашей статье мы непосредственно расскажем, как защитить данную плоскость;
Плоскость управления – данная плоскость содержит в себе сигнальные протоколы и процессы, которые отвечают за связность между устройствами – например такие известные вам протоколы как OSPF, EIGRP и так далее;
Плоскость данных – плоскость, ответственная за перемещение информации по сети от источника до ее назначения. В данной плоскости и происходит, как правило, обмен пакетами между устройствами;
Из этих трех плоскостей наиболее защитить первую и вторую плоскости, однако в нашей статье мы сконцентрируемся на плоскости менеджмента и обсудим 10 важных шагов по улучшению защищенности сетевого устройства Cisco с IOS.
Десять пунктов ниже не являются избыточными, но они включают в себя наиболее важные команды и настройки, которые позволят «закрыть» устройство от нежелательного доступа и повысить степень защищенности. Данные пункты применимы как к маршрутизаторам, так и к коммутаторам.
Создание секретного пароля
В целях предоставления доступа к IOS устройству только людям, имеющим право (например, сисадмину/эникею/инженеру) всегда нужно создавать сложный «секретный» пароль (enable secret). Мы советуем придумать/сгенерировать пароль минимум 12 знаков, содержащий цифры, буквы и специальные символы. Проверьте, что вы вводите именно enable secret - тогда в конфиге пароль будет отображаться в зашифрованном виде.
Router# config terminal
Router(config)# enable secret сложныйпароль
Зашифруйте пароли на устройстве
Все пароли, настроенные на устройстве (за исключением «секретного»), не шифруются от слова совсем и легко видны в конфиге. Чтобы зашифровать все пароли в конфиге, необходимо использовать глобальную команду service password encryption
Router# config terminal
Router(config)# service password-encryption
Используйте внешний сервер авторизации для аутентификации пользователей
Вместо использования локальных учетных записей на каждом устройстве для доступа администратора, мы рекомендуем использование внешнего AAA сервера (TACACS+ или RADIUS) для обеспечения Аутентификации, Авторизации и Учета (вольный перевод Authentication, Authorization, Accounting).
С централизованным ААА сервером гораздо проще управлять учетными записями, реализовывать политики безопасности, мониторить использование аккаунтов и многое другое.
Ниже на схеме вы можете видеть как настроить TACACS+ и RADIUS серверы с использованием enable secret пароля в случае отказа этих серверов.
TACACS+
Router# config terminal
Router(config)# enable secret K6dn!#scfw35 //создаем “секретный ” пароль
Router(config)# aaa new-model //включаем ААА службу
Router(config)# aaa authentication login default group tacacs+ enable //Используем TACACS сервер и обычный пароль на случай отказа
Router(config)# tacacs-server host 192.168.1.10 //указываем внутренний ААА сервер
Router(config)# tacacs-server key ‘secret-key’ //указываем секретный ключ для ААА сервера
Router(config)# line vty 0 4
Router(config-line)# login authentication default //применяем ААА аутентификацию для линий удаленного доступа (telnet, ssh)
Router(config-line)# exit
Router(config)# line con 0 //применяем ААА аутентификацию для консольного порта
Router(config-line)# login authentication default
RADIUS
Router# config terminal
Router(config)# enable secret K6dn!#scfw35 //создаем “секретный ” пароль
Router(config)# aaa new-model //включаем ААА службу
Router(config)# aaa authentication login default group radius enable //Используем RADIUS сервер и обычный пароль на случай отказа
Router(config)# radius-server host 192.168.1.10 //указываем внутренний ААА сервер
Router(config)# radius-server key ‘secret-key’ //указываем секретный ключ для ААА сервера
Router(config)# line vty 0 4
Router(config-line)# login authentication default //применяем ААА аутентификацию для линий удаленного доступа (telnet, ssh)
Router(config-line)# exit
Router(config)# line con 0 //применяем ААА аутентификацию для консольного порта
Router(config-line)# login authentication default
Создайте отдельные аккаунты для пользователей
Если у вас отсутствует возможность использовать внешний ААА сервер, по инструкции, описанной в предыдущем шаге, то как минимум, вам необходимо создать несколько отдельных локальных аккаунтов для всех, у кого должен быть доступ к устройству. Приведем пример создания трех локальных аккаунтов для троих системных администраторов.
Кроме того, в версии IOS начиная с 12.2(8)T и позднее, есть возможность настроить повышенную надежность паролей (Enhanced Password Security) для локальных учетных записей – это зашифрует пароли с помощью MD5 хэша.
Ниже пример настройки трех учетных записей:
Router# config terminal
Router(config)# username efstafiy-admin secret Lms!a2eZf*%_rete
Router(config)# username evlampiy-admin secret d4N3%sffeger
Router(config)# username vova-admin secret 54sxSFT*&_(!zsd
Настройте лимит возможных попыток подключения
Для того, чтобы избежать взламывания вашей учетной записи на маршрутизаторе с помощью брутфорса, вы можете настроить ограничение количества попыток подключения, когда после определенного предела система заблокирует пользователя. Это работает для локальных учетных записей.
Router# config terminal
Router(config)# username john-admin secret Lms!a2eZSf*%
Router(config)# aaa new-model
Router(config)# aaa local authentication attempts max-fail 5 //max 5 failed login attempts
Router(config)# aaa authentication login default local
Открытие доступа на управление устройством только для определенных IP – адресов
Данный пункт является одним из наиболее важных для сетевых устройств Cisco – необходимо оставить доступ к Telnel или SSH только для определенных сетевых адресов (например, рабочей станции системного администратора). В нашем примере сисадмин находится в пуле 192.168.1.0/28
Router# config terminal
Router(config)# access-list 10 permit 192.168.1.0 0.0.0.15
Router(config)# line vty 0 4
Router(config)# access-class 10 in //применить ограничения на все VTY линии (SSH/Telnet)
Включить логирование
Логирование является очень полезной функцией для отслеживания, аудита и контроля инцидентов. Вы можете включить логирование во внутренний буфер устройства или на внешний лог-сервер. Вторая опция является более предпочтительной, так как вы можете хранить там больше информации и проще производить различного рода аналитику.
Всего существует 8 уровней логирования (от 0 до 7), каждый из которых делает лог более насыщенным деталями. Лучше всего избегать 7 уровень логирования (дебаг), т.к это может легко потратить все ресурсы вашего устройства.
Ниже пример, как включить логирование и на внешний сервер, и на сам девайс (можно использовать два варианта одновременно).
Router# config terminal
Router(config)# logging trap 6 //Включить 6 уровень логирования для логов, отправляемых на внешний сервер
Router(config)# logging buffered 5 //Включить 5 уровень логирования для логов, хранимых на самом девайсе
Router(config)# service timestamps log datetime msec show-timezone //Включить таймстампы с милисекундной точностью
Router(config)# logging host 192.168.1.2 //Отправлять логи на внешний сервер
Router(config)# logging source-interface ethernet 1/0 //Использовать интерфейс Eth1/0 для отправки логов
Включение NTP (Network Time Protocol)
Данный шаг необходим для корректной работы логирования – т.к вам необходимо синхронизированное и точное системное время на всех сетевых устройствах, для правильного понимания ситуации при траблшутинге. Вы можете использовать как публичный, так и свой собственный NTP cервер.
Router# config terminal
Router(config)# ntp server 3.3.3.3
Router(config)# ntp server 4.4.4.4
Использование безопасных протоколов управления
По умолчанию, протоколом, с помощью которого можно управлять устройством является Telnet. Однако весь трафик передается в незашифрованном виде – поэтому предпочтительно использовать SSH.
Важно – для использования SSH необходимо настроить хостнейм и доменное имя, а также сгенерировать SSH ключи. Также следует разрешить только протокол SSH на VTY линиях
Защитить SNMP доступ
Про SNMP мы писали в одной из наших статей – это протокол для управления сетью, который, однако, также может служить «дырой» для доступа в вашу сеть. Для защиты данного направления, вам необходимо установить сложную Community String (что-то вроде пароля для SNMP) и разрешить доступ только с определенных рабочих станций.
Давайте настроим две Community String – одну с правами на чтение, и другую с правами на чтение и изменение. Также добавим ACL с нужными сетевыми адресами.
Router# config terminal
Router(config)# access-list 11 permit 192.168.1.0 0.0.0.15
Router(config)# access-list 12 permit 192.168.1.12
Router(config)# snmp-server community Mer!0nET RO 11 //создание community string с правами на чтение и использование ACL 11 для SNMP доступа
Router(config)# snmp-server community Mer!0NeTRules RW 12 //создание community string с правами на чтение/запись и использование ACL 12 для SNMP доступа
Команды выше позволят сети сисадмина 192.168.1.0/28 иметь доступ на чтение и хосту 192.168.1.12 иметь полный доступ на SNMP чтение / запись к устройствам.
Конфигурация вашей сети Cisco хранится в двух основных местах: одно находится в ОЗУ, а другое - в текущей конфигурации (running configuration). Когда вы вводите команды, они активируются немедленно и сохраняются в текущей конфигурации, которая хранится в ОЗУ.
Поэтому при выключении питания конфигурация теряется. Чтобы сохранить эту конфигурацию, скопируйте ее в загрузочную конфигурацию (startup-configuration), что означает, что она хранится в энергонезависимой ОЗУ (NVRAM), чтобы конфигурация сохранялась при выключении питания.
Вы можете использовать две команды для сохранения вашей конфигурации: команду записи или команду копирования. Команда записи устарела, но будет выглядеть так:
Router#write memory
Building configuration...
[OK]
Более новая версия команды - это команда копирования, которая выглядит как:
Router#copy running-config startup-config
Destination filename [startup-config]?
Building configuration...
[OK]
Команда копирования предлагает больше гибкости и возможностей. Вы можете не только скопировать данные текущей конфигурации в файл начальной конфигурации, но и скопировать их в файл на флэш-памяти или на TFTP-сервер в вашей сети.
Для любой команды вам нужно набрать столько букв, сколько требуется IOS для однозначной идентификации команды. Например:
copy run sta
Команды Linux могут показаться пугающими на первый взгляд, если вы не привыкли использовать терминал. Для выполнения операций и процессов в вашей системе Linux существует огромное количество команд.
Независимо от того, являетесь ли вы новичком в Linux или опытным пользователем, полезно иметь список общих команд под рукой. В этом руководстве вы найдете часто используемые команды Linux, а также загружаемую шпаргалку (так называемый cheatsheet) с синтаксисом и примерами.
Скачать PDF
Список команд Linux
Важное замечание: В зависимости от настроек вашей системы для выполнения некоторых из приведенных ниже команд может потребоваться запуск sudo.
Информация об оборудовании
Показать сообщения, которые выводило ядро во время загрузки:
dmesg
Показать информацию о процессоре:
cat /proc/cpuinfo
Показать свободную и использованную память с:
free -h
Список информации о конфигурации оборудования:
lshw
Показать информацию о блочных устройствах:
lsblk
Показать устройства PCI в древовидной схеме:
lspci -tv
Отображение USB-устройств в виде древовидной диаграммы:
lsusb -tv
Показать информацию об оборудовании из BIOS:
dmidecode
Показать информацию о диске:
hdparm -i /dev/disk
Провести тест скорости чтения на устройстве/диске:
hdparm -tT /dev/[device]
Проверка на нечитаемые блоки на устройстве/диске:
badblocks -s /dev/[device]
Поиск
Поиск определенного паттерна в файле:
grep [pattern] [file_name]
Рекурсивно искать паттерн в каталоге:
grep -r [pattern] [directory_name]
Найти все файлы и каталоги, связанные с конкретным именем:
locate [name]
Вывести список имен, начинающиеся с указанного символа a в указанном месте /folder/location, с помощью команды find:
find [/folder/location] -name [a]
Просмотр файлов, размер которых превышает указанный размер + 100M в папке:
find [/folder/location] -size [+100M]
Файлы
Список файлов в каталоге:
ls
Список всех файлов (включая скрытые):
ls -a
Показать каталог, в котором вы сейчас работаете:
pwd
Создать новый каталог:
mkdir [directory]
Удалить файл:
rm [file_name]
Удалить каталог рекурсивно:
rm -r [directory_name]
Рекурсивно удалить каталог без подтверждения:
rm -rf [directory_name]
Скопировать содержимое одного файла в другой файл:
cp [file_name1] [file_name2]
Рекурсивно скопировать содержимое одного файла во второй файл:
cp -r [directory_name1] [directory_name2]
Переименовать имя_файла1 в имя_файла2:
mv [file_name1] [file_name2]
Создать символическую ссылку на файл:
ln -s /path/to/[file_name] [link_name]
Создать новый файл:
touch [file_name]
Показать содержимое файла:
more [file_name]
Показать первые 10 строк файла:
head [file_name]
Показать последние 10 строк файла:
tail [file_name]
Зашифровать файл:
gpg -c [file_name]
Расшифровать файл:
gpg [file_name.gpg]
Показать количество слов, строк и байтов в файле:
wc
Навигация
Подняться на один уровень вверх в структуре дерева каталогов:
cd ..
Перейти в каталог $ HOME:
cd
Изменить местоположение на указанный каталог:
cd /chosen/directory
Сжатие файлов
Заархивировать существующий файл:
tar cf [compressed_file.tar] [file_name]
Извлечь заархивированный файл:
tar xf [compressed_file.tar]
Создайте сжатый gzip tar-файл:
tar czf [compressed_file.tar.gz]
Сжать файл с расширением .gz:
gzip [file_name]
Передача файлов
Скопировать файл в каталог сервера через ssh:
scp [file_name.txt] [server/tmp]
Синхронизировать содержимое каталога с резервным каталогом:
rsync -a [/your/directory] [/backup/]
Пользователи
Показать подробности об активных пользователях:
id
Показать последние системные логины:
last
Показать, кто в данный момент вошел в систему:
who
Показать, какие пользователи вошли в систему и их активность:
w
Добавить новую группу:
groupadd [group_name]
Добавить нового пользователя:
adduser [user_name]
Добавить пользователя в группу:
usermod -aG [group_name] [user_name]
Удалить пользователя:
userdel [user_name]
Изменить информацию о пользователе:
usermod
Установка пакета
Список всех установленных пакетов с yum:
yum list installed
Найти пакет по связанному ключевому слову:
yum search [keyword]
Показать информацию и краткую сводку о пакете:
yum info [package_name]
Установить пакет с помощью менеджера пакетов >YUM:
yum install [package_name.rpm]
Установить пакет с помощью менеджера пакетов >DNF:
dnf install [package_name.rpm]
Установить пакет с помощью менеджера пакетов >APT:
apt-get install [package_name]
Установить пакет .rpm из локального файла:
rpm -i [package_name.rpm]
Удалить пакет .rpm:
rpm -e [package_name.rpm]
Установить программное обеспечение из исходного кода:
tar zxvf [source_code.tar.gz]
cd [source_code]
./configure
make
make install
Процессы
Показать снимок активных процессов:
ps
Показать процессы в древовидной диаграмме:
pstree
Показать карту использования памяти процессами:
pmap
Показать все запущенные процессы:
top
Завершить процесс Linux с заданным идентификатором:
kill [process_id]
Завершить процесс с определенным именем:
pkill [proc_name]
Завершите все процессы, помеченные как proc:
killall [proc_name]
Список и сводка остановленных заданий в фоновом режиме:
bg
Перевод последней фоновой задачи в активный режим:
fg
Перевод конкретной задачи в активный режим:
fg [job]
Список файлов, открытых запущенными процессами:
lsof
Системная информация
Показать информацию о системе:
uname -r
Показать информацию о релизе ядра:
uname -a
Показать, как долго работает система, включая среднюю нагрузку:
uptime
Показать имя хоста системы:
hostname
Показать IP-адрес системы:
hostname -i
История перезагрузки системы:
last reboot
Показать текущее время и дату:
date
Запрос и изменение системных часов:
timedatectl
Показать текущий календарь (месяц и день):
cal
Список залогиненых пользователей:
w
Показать текущего пользователя:
whoami
Показать информацию о конкретном пользователе:
finger [username]
Использование диска
Показать свободное и использованное пространство на смонтированных системах:
df -h
Показать свободные иноды (inode) на смонтированных файловых системах:
df -i
Показать разделы диска, размеры и типы:
fdisk -l
Показать использование диска для всех файлов и каталогов:
du -ah
Показать использование диска в каталоге, в котором вы находитесь:
du -sh
Показать целевую точку монтирования для всей файловой системы:
findmnt
Смонтировать устройство:
mount [device_path] [mount_point]
SSH
Подключиться к хосту как пользователь:
ssh user@host
Подключиться к хосту через SSH порт по умолчанию 22:
ssh host
Подключиться к хосту, используя определенный порт:
ssh -p [port] user@host
Подключиться к хосту через telnet порт по умолчанию 23:
telnet host
Разрешение файлов
Назначить права на чтение, запись и выполнение всем:
chmod 777 [file_name]
Дать владельцу право на чтение, запись и выполнение, а также разрешение на чтение и выполнение для группы и других пользователей:
chmod 755 [file_name]
Назначить полное разрешение владельцу, а также разрешение на чтение и запись для группы и других пользователей:
chmod 766 [file_name]
Изменить владельца файла:
chown [user] [file_name]
Изменить владельца и групповое владение файлом:
chown [user]:[group] [file_name]
Сеть
Список IP-адресов и сетевых интерфейсов:
ip addr show
Назначить IP-адрес интерфейсу eth0:
ip address add [IP_address]
Отображение IP-адресов всех сетевых интерфейсов:
ifconfig
Показать активные (прослушиваемые) порты:
netstat -pnltu
Показать порты tcp и udp и их программы:
netstat -nutlp
Показать больше информации о домене:
whois [domain]
Показать DNS информацию о домене:
dig [domain]
Обратный поиск по домену:
dig -x host
Обратный поиск IP-адреса:
dig -x [ip_address]
Поиск IP для домена:
host [domain]
Показать локальный IP-адрес:
hostname -I
Скачать файл из домена с помощью команды wget:
wget [file_name]
Сочетания клавиш Linux
Убить процесс, запущенный в терминале:
Ctrl + C
Остановить текущий процесс:
Ctrl + Z
Вырезать одно слово перед курсором и добавить его в буфер обмена:
Ctrl + W
Вырезать часть строки перед курсором и добавить ее в буфер обмена:
Ctrl + U
Вырезать часть строки после курсора и добавить ее в буфер обмена:
Ctrl + K
Вставить из буфера обмена:
Ctrl + Y
Вызвать последнюю команду, которая соответствует предоставленным символам:
Ctrl + R
Запустите ранее вызванную команду:
Ctrl + O
Выйти из истории команд без выполнения команды:
Ctrl + G
Запустить последнюю команду еще раз:
!!
Выйти из текущей сессии:
exit
Заключение
Чем чаще вы используете команды Linux, тем лучше вы их запомните. Не переживайте о запоминании их синтаксиса - используйте наш шпаргалку.
А больше материалов про Linux можно найти в нашем разделе.