кратко о sudo
Ситаксис записи :
пользователь хост =(фактический пользователь) команда
Примеры:
peter host1.domain.tld=(bind) /usr/sbin/rndc,/usr/sbin/named
Для задания длинного списка команд или пользователей используется команда alias. Алиас может использоваться вместо
соответствующей записи любой строки конфига:
User_Alias ADMINS=usr1,usr2
User_Alias WEBMASTERS=usr1,usr3
Runas_Alias DAEMONS=bind,www
Host_Alias WEBSERVERS=www.domain.tld,web.domain2.tld
Cmd_Alias PROCS=/bin/kill,/usr/sbin/skill,/usr/bin/top
Cmd_Alias APACHE=/usr/local/apache/bin/apachectl
WEBMASTERS WEBSERVERS=(www) APACHE
ADMINS ALL=(DAEMONS) ALL
Для системных групп разрешения даются так:
%wwwadmin WEBSERVERS=(www) APACHE
Для запуска команд без ввода пароля используется флаг NOPASSWD:
usr ALL=(ALL) NOPASSWD: PROCS
Синхронизация времени Cisco
show clock [detail]
show ntp status
show ntp associations [detail]
Установка значений
clock set hh:mm:ss день месяц год
Настройка на синхронизацию с ntp сервером
ntp server ip-address [version номер] [key номер-ключа][source интерфейс] [prefer]
Максимальное число соседей NTP-протокола
ntp max-associations число
Аутентификация NTP:
ntp authenticate - включить
ntp authentication-key number md value - задать значение ключа
ntp trusted-key номер-ключа - знающий этот ключ может синхронизовать нас
Запретить NTP сервис на определенном интерфейсе
ntp disable
Если cisco имеет несколько IP-адресов то можно определить исходный IP-адрес в NTP-пакетах
ntp source интерфейс
Определить cisco как властный источник времени, даже если она не синхронизована с внешним миром
ntp master [слой]
Сливаем логи cisco на syslog-ng
1. Редактируем конфигурационный файл syslog-ng
vi /ets/syslog-ng/syslog-ng.conf
Добавляем в конец файла строки вида:
# указываем источник откуда будем слушать сессии для приёма логов
# 0.0.0.0 означает слушаем от всех хостов во всех сетях.
source net { udp(ip(0.0.0.0) port(514)); };
destination df_cisco { file("/var/log/cisco.log"); };
# какие сообщения пишем в логи
filter f_cisco_info { level(info); };
filter f_cisco_notice { level(notice); };
filter f_cisco_warn { level(warn); };
filter f_cisco_crit { level(crit); };
filter f_cisco_err { level(err); };
# формат записи имя хоста, уровень критичности сообщений, куда пишем
log { source(net); filter(f_cisco_info); destination(df_cisco); };
log { source(net); filter(f_cisco_notice); destination(df_cisco); };
log { source(net); filter(f_cisco_warn); destination(df_cisco); };
log { source(net); filter(f_cisco_crit); destination(df_cisco); };
log { source(net); filter(f_cisco_err); destination(df_cisco); };
2. Настройка logrotate
Создаём файл
vim /etc/logrotate.d/cisco
следующего содержания:
/var/log/cisco.log { # какой файл ротировать
rotate 7 # сколько резервных копий хранить
missingok
notifempty
weekly # по прошествии какого времени ротировать
compress # сжимать копии
}
3. Если используем logcheck
echo "/var/log/cisco.log" >> /etc/logcheck/logcheck.logfiles
4. Перегружаем syslog:
/etc/init.d/syslog-ng restart
5. Настройка Cisco
!
logging facility local1
logging source-interface Vlan2
logging 192.168.0.10
!
Тонкая настройка CISCO
Формат временной отметки задается командой:
service timestamps log datetime | uptime [localtime] [msec] [show-timezone]
Чтобы в журнал заносилось время события в нормальном формате надо предварительно выполнить команду:
service timestamps log datetime localtime show-timezone
Накопление журнала в буфере:
logging buffered
Посмотреть журнал, накопленный в буфере и состояние подсистемы журнализации:
show logging
Уровень серьезности, начиная с которого информация выводится на консоль:
logging console уровень
Уровень серьезности, начиная с которого информация выводится на монитор (терминальная линия, на которой выдана команда: term monitor):
logging monitor уровень
Уровень серьезности, начиная с которого информация выводится на внешний syslog-сервер:
logging trap уровень
Задание метки источника сообщения (facility), которым будут помечены сообщения, посылаемые на внешний syslog-сервер:
logging facility local0
Задание адреса внешнего сервера syslog (сообщения могут передаваться на несколько внешних серверов):
logging ip-address
Задание исходного IP-адреса сообщений журнализации (по умолчанию - адрес интерфейса, через который сообщение выходит из маршрутизатора):
logging source-interface type number
Распределение сообщений по уровням серьезности согласно документации:
* сбои в работе IOS или оборудования - err
* отладочный вывод - warning
* подъем и падение интерфейсов - notice
* нарушения ACL - уровень info
* перезагрузка -info
Распределение сообщений по уровням серьезности на практике:
* сбои - critical
* подъем и падение интерфейсов (LINK-3_UPDOWN) - err
* замечания по конфигурации - warn
* линейный протокол (LINEPROTO-5-UPDOWN, LINK-5-CHANGED) - notice
* сообщения о конфигурации (SYS-5-CONFIG_I) - notice
* нарушения ACL (SEC-6-IPACCESSLOG) - уровень info
отключение ipv6
Открываем в редакторе файл /etc/modprobe.d/aliases
mcedit /etc/modprobe.d/aliases
находим строку
alias net-pf-10 ipv6
и заменяем на
# alias net-pf-10 ipv6
alias net-pf-10 off
На всякий случай дописываем в blacklist
echo 'blacklist ipv6' >> /etc/modprobe.d/blacklist
И пересобираем образ initrd, для того, чтобы обновить в нём информацию blacklist модулях для udev.
update-initramfs -u
Проверка условий в скриптах
test условие "файл"
[ условие "файл"]
-d Каталог
-f Обычный файл
-L Символическая ссылка
-r Файл для чтения
-s Файл существует и имеет ненулевой размер
-w Файл для записей
-e Файл существует
-u Файл имеет установленный бит suid
-x Исполняемый файл
Проверка строк
test "строка"
test оператор "строка"
test "строка" оператор "строка"
[оператор "строка"]
["строка" оператор "строка"]
= Две строки равны
! = Две строки не равны
-z Строка нулевая
-n Строка не нулевая
Проверка чисел
"число" оператор "число"
["число" оператор "число"]
-eq Два числа равны
-ne Два числа не равны
-gt Первое число больше второго
-lt Первое число меньше второго
-le Первое число меньше или равно второму
-ge Первое число больше либо равно второго
Установка mysql
Установка пакетов
#apt-get -y install mysql-server mysql-client
установка пароля пользователя root
#mysqladmin -u root password пароль
подключение к базе
>mysql -u root -p
>use mysql;
>show tables;
>quit;
по умолчанию mysql обрабатывает только локальные подключения
#cat /etc/mysql/my.cnf | grep bind-address
проверяем, прослушивается ли 3306/tcp
#netstat -ant | grep 3306
Из соображений безопасности можно отключить использовать локальный сокет mysql.sock -добавляем директиву "skip-networking" в секцию [mysqld] и перезапускаем сервер
#/etc/init.d/mysql restart