Cron

Основные настройки крона находятся в файле /etc/crontab

Структура строки конфигурации:

# *    *    *    *    *  [команда для выполнения]
# ┬    ┬    ┬    ┬    ┬
# │    │    │    │    │
# │    │    │    │    │
# │    │    │    │    └───── день недели (0 - 6) (0 to 6 are Sunday to Saturday, or use names)
# │    │    │    └────────── месяц (1 - 12)
# │    │    └─────────────── день месяца (1 - 31)
# │    └──────────────────── час (0 - 23)
# └───────────────────────── минута (0 - 59)
 # выполнять каждый день в 0 часов 5 минут, результат складывать в log/daily
 5 0 * * * $HOME/bin/daily.job >> $HOME/log/daily 2>&1
 # выполнять 1 числа каждого месяца в 14 часов 15 минут
 15 14 1 * * $HOME/bin/monthly
 # каждый рабочий день в 22:00
 0 22 * * 1-5 echo "Пора домой" | mail -s "Уже 22:00" john

 23 */2 * * * echo "Выполняется в 0:23, 2:23, 4:23 и т. д."
 5 4 * * sun echo "Выполняется в 4:05 в воскресенье"
 0 0 1 1 * echo "С новым годом!"
 15 10,13 * * 1,4 echo "Эта надпись выводится в понедельник и четверг в 10:15 и 13:15"
 0-59 * * * * echo "Выполняется ежеминутно"
 0-59/2 * * * * echo "Выполняется по четным минутам"
 1-59/2 * * * * echo "Выполняется по нечетным минутам"
 # каждые 5 минут
 */5 * * * * echo "Прошло пять минут"

Перезапустить cron в freebsd/etc/rc.d/cron restart
Перезапустить cron в red hatservice crond restart

Пользователи и группы в linux

Для работы с пользователями используются файл /etc/group, /etc/passwd и /etc/shallow.

В последнем хранятся хэшированные пароли.

1. Структура файла /etc/group

cdrom:x:24:vivek,student13,raj
_____ _  _      _____
|    |  |        |
|    |  |        |
1    2  3        4где 1 - имя группы, 2 - показывает место пароля (не используется), 

3 - ID группы (GID), 4 - список пользователей, состоящих в группе. 

Посмотреть в каких группах состоит пользователь:

grep username /etc/group

Посмотреть в какие пользователи в группе:

grep groupname /etc/group

Чтобы добавить пользователя username в группу groupname, набираем:

usermod -a -G groupname username

(или usermod -G groupname username)

Если пользователя еще нет:

a) добавить в  существующую группу

useradd -G groupname username

б). добавить в существующую группу и группу для пользователя сделать первичной

useradd -g groupname username

Если группы нет, создать ее надо командой:

groupadd groupname

 

 2. Структура файла /etc/passwd

где 1 – имя пользователя, 2 – пароль, который в зашифрованном виде хранится в /etc/shadow,

3 – ID пользователя (UID), 4 – ID группы (GID), 5 – комментарии, 6 – путь к домашней директории, 7 -путь расположения коммандной оболочки для пользователя.

3. Удалить пользователя

userdel usrname

Удалить группу

groupdel groupname

Установка postgrey

Необходимо наличие пакета perl 5.6 версии и выше.

На Red Hat, например, проверим:

rpm -qa perl

Установить, если не установлен, NetServer

>cpan [ENTER]
>install Net::Server

или, например, для RedHat

rpm -i perl-Net-Server-version.rpm

То же самое для IO::Multilex

>cpan [ENTER]
>install IO::Multilex

Также установить модули perl, если не установились или не установлены:

BerkeleyDB (Perl module)

Berkeley DB (Library, version ≥ 4.1)

perl-Net-DNS

perl-Digest-HMAC

perl-Digest-SHA1

perl-Parse-Syslog

Сам postgrey лежит на сайте here. Там же есть ссылки на вышеперечисленные пакеты.

Распакуем пакет:

tar -xvzf postgrey-1.34.tar.gz

Копируем файлы. Для большинства linux систем каталоги находятся там, где написано ниже (Однако нужно проверить и подкорректировать под свою систему):

cp postgrey /usr/sbin/
cp postgrey_whitelist_clients /etc/postfix/
cp postgrey_whitelist_recipients /etc/postfix/
сp contrib/postgreyreport /usr/sbin/

Далее возможно (для redhat EL5 наверняка потруется) ставим дополнительно еще из компилированного пакета. Пример ниже для Red hat (пакет взят из here):

rpm -i postgrey-version.rpm

Проверить наличие каталога /var/spool/postfix/postgrey и прав доступа к нему:
    chown postfix:postfix /var/spool/postfix/postgrey
    chmod 770 /var/spool/postfix/postgrey

Для работы postgrey совместно с postfix внесем изменения в конфигурационный  файл main.cf (в данном примере, вместо параметра smtpd_recipient_restrictions использован параметр smtpd_client_restrictions. Разработчик рекомендует использовать smtpd_recipient_restrictions) :

smtpd_client_restrictions =
…,
…,
check_policy_service inet:127.0.0.1:60000

Внесем в файл /etc/postfix/ postgrey_whitelist_clients известные ip-адреса, домены почтовых сервисов, которые будут в белом списке (один адрес на одной строке).

Внесем в файл /etc/postfix/ postgrey_whitelist_recipient адреса получателей, к которым почта должна поступать незамедлительно:
postmaster@domain.tld
Administrators@domain.tld
root@domain.tld

Проверим наличие каталога /var/run/postgrey (если не существует – создать!!!), права на каталог root:postfix.
Откорректируем скрипт запуска сервиса postgrey /etc/init.d/postgrey. Параметр delay указывает время задержки сообщения в секундах :
prog=postgrey
postgrey=/usr/sbin/$prog
DBPATH=/var/spool/postfix/postgrey
SOCKET=$DBPATH/socket
OPTIONS=”-v –inet=127.0.0.1:60000 –delay=300 –user=postfix –group=postfix –pidfile=/var/run/postgrey/postgrey.pid”

Проверка работы сервиса postgrey
Запустим скрипт /etc/init.d/postgrey и проверим наличие процессов

    >ps –aux | grep postgrey

postfix  14464  0.6  1.4  34580 29940 ?        Ss   Jun10 282:53 /usr/sbin/postgrey -d -v –inet=127.0.0.1:60000 –delay=300 –user=postfix –group=postfix –pidfile=/var/run/postgrey/postgrey.pid
root     29172  0.0  0.0   3892   700 pts/6    S+   16:59   0:00 grep postgrey

    > netstat -pan | grep postgrey
tcp        0      0 127.0.0.1:6060              0.0.0.0:*                   LISTEN      19224/postgrey.pid
tcp        0      0 127.0.0.1:6060              127.0.0.1:48744             ESTABLISHED 19224/postgrey.pid
unix  2      [ ]         DGRAM                    72023  19224/postgrey.pid

Выполним команды
    service postgrey restart
    service postfix restart

В результате в логах postfix должны появиться подобные строки:
    > grep “action=” /var/log/mail/maillog
postgrey[23219]: action=greylist, reason=new, client_name=unknown, client_address=x.x.x.x, sender=test@domain.tld, recipient=testreception@domain2.tld

Конфигурирование syslog в Red Hat Enterprise Linux 6

Установка осуществляется из установочного диска или любым другим стандартный способом. Пакет называется rsyslog.

Например, так:

yum install -y rsyslog

Далее необходимо разрешить удаленные запросы syslog по TCP или UDP.

Для это в файле “/etc/rsyslog.conf” изменяняем нижеследующие строки:

# Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514

# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514

на эти
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

То есть раскомментировали некоторые строки.Далее делаем рестарт сервиса.

[root@syslog ~]# service rsyslog restart

Shutting down system logger: [ OK ]

Starting system logger: [ OK ]

И наконец, если запущен файервол iptables

service iptables status,

то необходимо разрешить пакеты syslog.

[root@syslog ~]# iptables -I INPUT -p tcp --dport 514 -j ACCEPT
[root@syslog ~]# iptables -I INPUT -p udp --dport 514 -j ACCEPT
[root@syslog ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
[root@syslog ~]#

Теперь все работает.В конец файла “/etc/rsyslog.conf” добавляем свои настройки.

Например для приема с cisco добавляем строки
local1.=emerg                   /var/log/cisco/dirlog/cisco.emerg
local1.=info                        /var/log/cisco/dirlog/cisco.debug

и делаем рестарт сервиса syslog

service rsyslog restart  .

Cisco vpn client – Reason 442: Failed to enable Virtual Adapter

Причина в принципе обеспечения безопасности при установке vpn соединения, заложенная в клиенте. Заключается она в запрете организации безопасного канала с включенной поддержкой общего доступа к системе.

Поэтому данная проблема устраняется остановкой сервиса в Windows “Общий доступ к подключению к интернету(ICS)” (На англ. версии системы называется internet connection sharing).

Чтобы отключить, нужно зайти в Управление компьютеромСлужбыОбщий доступ к подключению к интернету(ICS). Правой кнопкой мыши выбрать свойства и в окне выставить Остановить и Отключить.

На некоторых форумах есть нижеследующая информация. Возможно будет и она полезна (Смысл устранения проблемы в изменении параметра реестра):

1. В системе необходимо получить полные права доступа к администраторской консоли в настройках пользователя.
2. Необходимо поправить реестр в поле выполнить (run->cmd)

REG ADD HKLM\System\CurrentControlSet\Services\Tcpip\Parameters /v ArpRetryCount /t REG_DWORD /d 0 /f

А затем перезагрузиться.

3. Необходимо убедится, что установлена виртуальная частная сеть на рабочем месте, она работает корректно.
4. Необходимо прописать в протоколах IPv4 в настройках беспроводных сетей и локальное соединение2 (cisco vpn adapter) одинаковые адреса
5. Необходимо перезагрузить – можно пользоватся :)

Postfix с saslauthd через ldap (особенности) в red hat

1. Компилировать postfix нужно с поддержкой sasl2

2. Обратить внимание на файлы:

/usr/lib/sasl2/smtpd.conf:

pwcheck_method: saslauthd
mech_list: plain login

и

/etc/saslauthd.conf:

ldap_servers: ldap://х.х.х.х
ldap_version: 3
ldap_timeout: 10
ldap_timelimit: 10

ldap_bind_dn: ldapuser
ldap_bind_pw: ldapuser
ldap_domain: ЗЗЗЗ_ЗЗЗЗЗ
#ldap_search_base: O=ВВВВ
ldap_auth_method: bind
ldap_password_attr: userpassword
ldap_size_limit: 0

3. Запусккать обязательно так:

saslauthd -a ldap

4. Второй пункт может находиться в одном файле

/etc/sasl2/smtpd.conf

5. Проверка работы sasl вне зависимости от функционирования и настроек postfix
testsaslauthd -u username -p password
0: OK "Success."

Изменение ip адреса в red hat

В консоли набираем:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

Откроется файл с такими вот параметрами:

DEVICE=eth0
BOOTPROTO=static
DHCPCLASS=
HWADDR=уу:уу:уу:уу:уу:уу
IPADDR=х.х.х.х
NETMASK=255.255.255.192
ONBOOT=yes

Где менять нужно:

IPADDR= и NETMASK=

В данном примере:

IPADDR=х.х.х.х

NETMASK=z.z.z.z

Нажимаем Esc и набираем для сохранения и выхода:

:wq

Далее перезапускаем сетевой сервис и все:

service network restart

Очистка таблицы mac адресов

Чтобы очистить таблицу mac адресов (ARP кэш) необходимо ввести команду netsh interface ip delete arpcache.

Для просмотра таблицы используется команда arp -a

Установка времени и часового пояса во FreeBSD

#cp /usr/share/zoneinfo/America/New_York /etc/localtime
#date +%z

Установка времени:
Автоматически -> /usr/bin/ntpdate 195.2.64.5
Вручную -> date yymmddhhss

Замена ereg (eregi) на preg_match в PHP 5.3 (устаревание POSIX)

В PHP 5.3 разработчки решили, наконец, избавиться от POSIX регулярных выражений – в самом деле, зачем нужны две библиотеки для работы с регулярными выражениями, если можно обойтись одной? К тому же, POSIX регулярные выражения гораздо медленнее чем Perl совместимые регулярные выражения (PCRE).

Теперь, разработчики в срочном порядке исправляют свой код, заменяя функции ereg, eregi, ereg_replace, ereg_replacei соответствующими PCRE аналогами, благо, замена получилась довольно простой:

1. заменить ereg и eregi на preg_match, ereg_replace и ereg_replacei на preg_repalce;
2. добавить // разделители в начало и конец регулярного выражения;
3. если POSIX функция кончается на i (eregi, ereg_replacei) то добавить i в конец регулярного выражения после разделителя.
4. заменить POSIX спецсимволы соответствуюущими PCRE аналогами: [:alnum:] – \w или [0-9a-z], [:digit:] – \d или [0-9], [:space:] – \s, [:alpha:] – [a-z]

примеры:

ereg(‘expression’) -> preg_match(‘/expression/’)

eregi(‘expression’) -> preg_match(‘/expression/i’)

eregi(‘^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$’) -> preg_match(‘/^[a-z0-9][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$/i’)

Кроме того, оказывается шаг четвертый не обязателен – спецсимволы типа [[:alnum:]] теперь поддерживаются в PCRE!