Проблемы и решения

Решение некоторых проблемм в ОС Linux.

 

- Если что-то не работает, то сообщения системы можно посмотреть в /var/log/messages,

а для Postfix в /var/log/maillog либо в /var/spool/postfix, где лежат результаты обработки писем.

Некоторые сообщения об ошибках приходят на почтовый ящик пользователя root (в alt linux первому пользователю созданному после root), который находится в /var/mail/

В Debian системные журналы ведутся в /var/log/syslog, messages

а Postfix свои пишет в /var/spool/mail.err, mail.warn

В Debian для перенастройки некоторых пакетов можно использовать утилиту dpkg-reconfigure, которой параметром передать имя пакета, например:

# dpkg-reconfigure postfix

 

- Если нужно изменить ip адреса сетевых карт, то

в AltLinux 2.4 Master и 2.3 Compact правим:

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

# vi /etc/sysconfig/network-scripts/ifcfg-eth1

# /etc/init.d/network restart

либо используем утилиту

# draknet

В AltLinux 4.0 и выше используется новый набор скриптов для сетевых настроек - etcnet. Подробно можно узнать на http://www.freesource.info/wiki/AltLinux/etcnet?v=ws8

 

В Debian редактируем файл /etc/network/interfaces, после чего перезапускаем интерфейсы

# /etc/init.d/networking restart

Интерфейсы не поднимутся, если нет физического соединения!

- Если нужно изменить имя компьютера (host name), то правим:

# vi /etc/hosts

# hostname

но лучше использовать специальные утилиты. Для Alt Linux:

# draknet

Для Debian:

# dpkg-reconfigure etherconf

иначе при перезагрузке она затрёт все исправления. При этом нужно не забыть поменять имя и во всех прикладных программах, где есть соответствующая ссылка. Для Courier-IMAP: /etc/courier-authlib/authdaemon-mysql.conf: DEFAULT_DOMAIN

- Пересоздать сертификаты, изменив настройки в /etc/courier-imap/

- Перенастроить DNS

- Чтобы найти все файлы где упоминается имя хоста можно выполнить:

#grep -R /etc - Если проблемы с насройкой php, то можно включить лог и посмотреть, что не работает. Редактируем /etc/php/4.3.9/mod_php/php.ini:

 

display_errors = On

display_startup_errors = On

log_errors = On

error_log = /var/log/php.log

Если php страницы отображаются не в той кодировке, то меняем кодировку по умолчанию:

default_charset = "windows-1251"

- Если не работает какая-нибудь программа обмена данными с внешним миром (например почта, ftp, web, удалённый рабочий стол и т.д.), а команды ping  и traceroute отрабатывают без проблем, то скорее всего нужно уменьшить максимальный размер пакетов (MTU) на сет карте. Это особенно актуально, если организован vpn канал.

Проверяем какой размер проходит и меняем настройки сет карты:

# ping -s 1500 ya.ru

# ping -s 1350 ya.ru

 

PING ya.ru (213.180.204.8) 1350(1378) bytes of data.

1358 bytes from ya.ru (213.180.204.8): icmp_seq=1 ttl=54 time=82.8 ms

1358 bytes from ya.ru (213.180.204.8): icmp_seq=2 ttl=54 time=83.4 ms

1358 bytes from ya.ru (213.180.204.8): icmp_seq=3 ttl=54 time=83.1 ms

# ifconfig eth1 mtu 1350

Чтобы это сохранилось и при перезагрузке, добавляем эту команду в конец файла /etc/rc.d/rc либо /etc/rc.d/rc.local

Если есть подозрения на почтовый вирус, смотрим кто заражён, просматривая отфильтрованный по порту трафик на сет. карте:

# tcpdump port 25

чтобы просмотреть трафик пользователя:

# tcpdump host 10.0.0.10

по умолчанию прослушивается интерфейс eth0. Для прослушивания дргого интерфейса указываем его в параметре i:

# tcpdump host 10.0.0.10 -i eth1

- В редакторе mc, для того, чтобы при вставке текста не запоминался отступ:

убрать крестик с опции: Options -> General -> Return does autoindent

- Скопировать(переместить) файл в тотже каталог с другим именем Shift+F5(F6)

- Открыть на смежной панели текущий каталог Alt+o

- Чтобы в mc работали клавиши "*","-","+" как в Far, нужно провести обучение: Options -> learn Keys

Несколько полезных команд: Команда

Описание

uptime как долго система запущена lsmod информация о загруженных модулях ядра netstat -a просмотр всех открытых tcp и udp портов netstat -an | grep 80 что прослушивает 80 порт (http) cd - Вернуться в предыдущий каталог rm -rf удалить сразу всю директорию без лишних запросов dmesg отчёт о процесе загрузки системы split [-b кол-во_байт] [-l кол-во_линий] имя_файла разбить файл на несколько частей find . -maxdepth 1 -type d -print | xargs du -sk | sort -rn размер всех подкаталогов в данном каталоге perl -pi -e 's/oneword/anotherword/g' *. заменить одно слово на другое во многих файлах, если в одном файле,то поставить его имя вместо " * " perl -e '@time=localtime(time()-84600); print $time[3]' Вчерашнее число perl -e '$time=localtime(time()-84600); print $time' Вчерашняя дата grep "текст" /where/to/search искать текст в файлах tail -15 /var/log/messages показать последние 15 строк файла tail -15 /var/log/messages > /dev/tty2 послать данные на желаемый терминал tail -f /var/log/messages | grep login показывать вновь записываемые в журнал события, содержащие слово "login" ls | /usr/bin/mailx -s "`uname -n` ls by mail " webmaster@mynet.ru отправить вывод команды ls по почте. Используется пакет mailx. Для RedHat 9 вызов программы: /bin/mail LANG=C

 

сбросить языковые настройки. Включиться английский.

(полезно при неправильном отображении в mc)

mailq показать какие письма находятся в очереди на отправку postqueue -f попытаться доставить все письма из очереди update-rc.d squid defaults 19 Запускает squid на уровнях 2345 и останавливает на 016. Аргумент '19' позволяет запускать сценарий squid до сценариев с номерами 20 и выше. (аналог chkconfig в Debian) date --set='2007-8-03 13:44' установить системные дату и время iptables -t nat -A POSTROUTING -s 10.0.3.41 -d 217.217.217.217 -o eth1 -p tcp --dport 25 -j SNAT --to 116.116.116.116

 

Разрешаем прямой доступ к внешней почте. Подробнее: разрешаем доступ хосту 10.0.3.41 из внутренней сети обращаться к хосту 217.217.217.217 на 25 порт (smtp) протокола tcp; такие обращения пропускаем через интерфейс eth1, который имеет адрес 116.116.116.116

Для доступа к РОР добавляем такое же правило для порта 110

iptables -t nat -A POSTROUTING -s 10.0.3.41 -p tcp --dport 25 -j MASQUERADE

Более короткое правило, аналогичное вышеприведённому, только здесь пользователь с ip 10.0.3.41 имеет доступ к любому почтовому серверу в Интернете.

 

Командная строка

Описание

TAB + scroll-lock   или   TAB + TAB список всех исполняемых файлов в системе, которые присутствуют в $PATH Ctrl + u очистить командную строку от курсора до начала, в том числе при вводе пароля. Ctrl + a перевести курсор на начало строки Ctrl + e перевести курсор на конец строки Alt + c сделать заглавную букву у текущего слова Alt + t поменять местами слова Alt + u перевести слово в верхний регистр Alt + d удалить конец слова

 

Команды пакета apt

Описание

apt-get update обновление репозитария apt-get dist-upgrade полное обновление ОС apt-get check проверить текущее состояние системы apt-get install установить пакет. Всё скаченное apt-get лежит в /var/cache/apt/archives. apt-get -f install исправить зависимости apt-get install -d скачать пакет не устанавливая. Лежать будет в /var/cache/apt/archives. apt-get source скачать исходный текст пакета apt-get remove удалить пакет. Результаты можно посмотреть в /var/log/user/info apt-cache search поиск пакета по описанию apt-cache showpkg показать описание пакета

 

Команды dpkg (Debian)

Описание

dpkg --get-selections [образец...] Выдает список состояний выбора пакетов. dpkg -p | --print-avail имя пакета Выводит детальную информацию о пакете, которую извлекает из файла /var/lib/dpkg/available. dpkg -l | --list ... Показывает пакеты, соответствующие данному образцу. Если образец имени пакета не задан, показывает все пакеты в /var/lib/dpkg/available. В образце имени пакета можно указывать обычные символы шаблона командной оболочки. dpkg -L | --listfiles ... Показывает файлы, установленные на вашей системе из пакета с указанным именем. Заметьте, однако, что файлы, созданные установочными скриптами пакета, не будут показаны. dpkg -S | --search ... Ищет в установленных пакетах файл по заданному образцу. В образце допустимы стандартные символы шаблонов командной оболочки. dpkg --audit команда покажет частично установленные (Half-Installed) пакеты, пакеты, настройка которых не удалась (Failed-Config), а также все пакеты в ошибочных состояниях.

 

Информация о системе Команда Информация о... cat /proc/cpuinfo процессоре cat /etc/redhat-release версии Red Hat df HDD du -c /home/        или

ls -R -s -1 размер каталога /home top процессах, RAM cat /etc/passwd всех пользователях cat /etc/group всех группах id oracle пользователе oracle finger      или

w пользователях, зарегистрированных сейчас в системе (на каком терминале, откуда и т.д.) cat /proc/mdstat состоянии RAID массива (софтверного) cat /proc/megaraid/hba0/raiddrives-0-9 состоянии RAID массива (на контроллере megaraid) cat /proc/megaraid/hba0/diskdrives-ch0 состоянии дисков на канале 0 в RAID массиве ip route show Откуда взялся маршрут

 

Команды пакета rpm Описание rpm2cpio file.rpm | cpio -idmuv --no-absolute-filenames вручную распаковать rpm файл rpm -i Установка пакетов rpm -e Деинсталляция пакета rpm -Uvh Обновление или установка пакетов rpm -q Информация о пакете rpm -qf Узнать какому пакету принадлежит файл

Полезно:

-qi - более полное описание пакета,

-ql - список файлов в пакете,

-qc - список конфигов в пакете,

-qd - список документации,

-qR - список зависимостей пакета. rpm --recompile Установка из исходников rpm --rebuild собрать бинарный пакет rpm --rebuilddb Перестроить базу rpm -Va Проверить все установленные пакеты на зависимости

 

Комманды (раз)архивирования Описание tar -cvf - * | gzip -c > arc.tar.gz заархивировать всё содержимое текущего каталога (включая подкаталоги) tar -zxvf arc.tar.gz разархивировать всё в текущий каталог gzip -cd arc.tar.gz | tar -xvf -   gzip -cd Fname | cpio -imd#   bzip2 -cd arc.tar.bz2 | tar -xvf -  

 

Комманды less Описание g на начало текста G на конец текста /слово поиск подстроки "слово" / продолжение поиска F постоянно обновлять просматриваемый файл

Если не доходит почта, то смотрим логи /var/log/maillog. Если отправитель точно не спамер то, возможно, неправильно настроена обратная зона на его почтовом сервере. Проверить можно так:

# host alpicom.ch

alpicom.ch has address 194.38.160.10

# host 194.38.160.10

10.160.38.194.in-addr.arpa domain name pointer neobolian.deckpoint.ch.

Это пример неправильной настройки, а вот как должно быть:

# host mail.ru

mail.ru has address 194.67.57.26

# host 194.67.57.26

26.57.67.194.in-addr.arpa domain name pointer mail.ru.

Если для фильтрации спама стоит spamassassin, то адреса и домены можно включить в белый список в файле /etc/mail/spamassassin/local.cf:

 

whitelist_from postmaster@domain1.ru

whitelist_from *@domain2.ru Так же можно в самом Postfix  в файле /etc/postfix/main.cf добавить ip адрес домена в список mynetworks

Выгрузить базу MySQL можно командой:

# mysqldump -u root -p DBName > mydb.sql

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

# find / -name mysqldump

/usr/local/mysql-3.23.54a-pc-linux-i686/bin/mysqldump

Сами базы MySQL хранит в /var/lib/mysql/db/, здесь можно посмотреть какие базы созданы.

Чтобы загрузить базу, нужно сначала создать пустую, а для надёжности предварительно удалить старую:

# mysql -u root -p

mysql> drop database if exists DBName;

mysql> create database DBName;

mysql> quit

а затем в неё загрузить данные:

# mysql -u root -p DBName < mydb.sql

Если для пользователя root в MySQL нет пароля, то параметр -p не обязателен, также можно задать пароль явным образом, только без пробела, например -pPassWord. Далее нужно убедиться, что в новой базе есть тот пользователь, от имени которого происходило обращение к базе. Если пользователя нет, то чтоб создать в точности такого пользователя с соответствующими правами, выгружаем базу mysql и выбираем все строки, касающиеся этого пользователя:

# mysqldump -u root -p mysql > mysqldb.sql

В файле mysqldb.sql останется приблизительно следующее:

 

NSERT INTO db VALUES ('%','DBName','UserName','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

INSERT INTO host VALUES ('localhost','UserName','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

INSERT INTO user VALUES ('localhost', 'UserName', '','N','N','N','N','N','N','N','N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', '', '', '', '', 0, 0, 0);

Загружаем базу командой:

# mysql -u root -p mysql < mysqldb.sql

Если заменили сетевую карту, а система пытается её использовать со старыми драйверами, то нужно указать новое соответствие в /etc/modules.conf. Так, если используем сетевую карту Realtek RTL-8139, то указываем драйвер:

alias eth0 8139too

Если для установки пакета требуется наличие более старых пакетов, чем установленные у нас, то можно произветси даунгрейд (возврат к более старой версии) установленных пакетов.

# apt-get install liblzo-devel

 

The following packages have unmet dependencies:

liblzo-devel: Depends: liblzo (= 1.08-alt2) but 1.08-alt3 is to be installed

E: Broken packages

# apt-get install liblzo=1.08-alt2

 

Reading Package Lists... Done

Building Dependency Tree... Done

The following packages will be DOWNGRADED

Но прежде чем опускаться до более старый версий стоит попробовать обновить информацию о репозитории:

# apt-get update

И установить ещё раз. Если даунгрейд потянет за собой много других пакетов, то может быть имеет смысл открыть в /etc/apt/sources.list доступ к репозиторию Sysiphus и после команды update, попытаться установить пакет ещё раз.

- Чтобы в Postfix перенаправлять почту с одного домена на другой (mail routing), используется транспортная таблица (mail transport). Подробно о ней можно узнать в руководсвте:

# man transport

или по адресу http://www.postfix.org/transport.5.html. Поскольку мы для хранения служебной информации используем MySQL, то нужно добавить понадобившиеся маршруты в таблицу transport:

# mysql -upostfixadmin -ppostfixadmin postfix

mysql> INSERT INTO transport (domain,destination) VALUES ('domain1.ru',':mail.domain2.ru');

Не лишне будет предворительно проверить, что mail.domain2.ru принимает почту:

# telnet mail.domain2.ru 25

В противном случае при попытке отправить сообщение на ящик user@domain1.ru в /var/log/maillog появится запись:

postfix/qmgr[25305]: 65D383767D: to=, relay=none, delay=1689, status=deferred (transport is unavailable)

Если мы не поставим двоеточие , то в журнале получим сообщение:

postfix/qmgr[25305]: warning: connect to transport mail.domain2.ru: No such file or directory

Если указали неверный транспорт (я сначала пробовал smtp:mail.domain2.ru), то:

postfix/smtp[32546]: 798993767D: to=, relay=none, delay=1, status=bounced ([mail.domain2.ru]: Name or service not known)

Если же всё нормально, то увидим:

postfix/smtp[354]: 5C8793767F: to=, relay=mail.domain2.ru[182.160.1.3], delay=1, status=sent (250 1182880 message accepted for delivery)

 

- Если мы купили ещё одно доменное имя newname.ru, то Postfix можно указать, чтобы письма отправляемые на user@newname.ru перенаправлялись на user@oldname.ru, другими словами сделать алиас на домен. В Postfix Admin это можно сделать нажав на кнопку "Добавить алиас". То же самое можно сделать вручную, выполнив команды:

mysql> INSERT INTO domain (domain, description, aliases, mailboxes, maxquota, transport, backupmx, created, modified, active) VALUES ('newname.ru','Our new domain','50','130','0','','0','2006-08-10 16:06:27','2006-08-10 16:06:42','1')

mysql> INSERT INTO alias (address, goto, domain, created, modified, active) VALUES ('@newname.ru','@oldname.ru','newname.ru','2006-08-10 16:08:06','2006-08-10 16:08:06','1')

После этого добавляем в файл /etc/postfix/mydestination строку

newname.ru

убедимся, что этот файл подключается в /etc/postfix/main.cf :

mydestination = localhost, $myhostname, localhost.$mydomain, $config_directory/mydestination

Также проверим, что мы не забыли указать новое имя в /etc/hosts:

 

127.0.0.1     localhost.localdomain localhost

10.0.0.2      localnet.dns.name

89.116.14.18  oldname.ru newname.ru Всё, перегружаем postfix и можем использовать оба доменных имени для отправки и получения почты. Если при запуске DNS вервера не копируются slave зоны, а в журнале появляются записи:

 

May 03 16:33:23.403 general: dumping master file: tmp-XXXXvmmNBt: open: permission denied

May 03 16:33:23.403 xfer-in: transfer of 'coke.com/IN' from 10.0.0.85#53: failed while receiving responses: permission denied

то нужно изменить владельца каталога zone на named.named:

# chown -R named.named /var/lib/bind/zone

а если ещё и не создаётся журнал, то изменить владельца var

# chown -R named.named /var/lib/bind/var Формат записей crontab можно посмотреть в /etc/crontab.template:

 

 minute (0-59),

  |    hour (0-23),

  |    |    day of the month (1-31),

  |    |    |    month of the year (1-12),

  |    |    |    |    day of the week (0-6 with 0=Sunday).

  |    |    |    |    |    user  commands Чтобы получать результаты работы crontab по почте (полезно при отладке) указываем /etc/crontab:

MAILTO=admin@mynetwork.ru

Если же не хотим получать ничего, то там же указываем:

MAILTO=/dev/null

Файлы crontab пользователей находятся в каталоге /var/spool/cron, системный - в файле /etc/crontab

Также демон cron запускает команды из каталогов /etc/cron.d /etc/cron.daily /etc/cron.hourly /etc/cron.monthly /etc/cron.weekly

Чтобы сетевая карта откликалась более чем на один IP адрес нужно создать алиасы (alias) на интерфейс. Создать алиас на интерфейс eth0 можно скопировав файл /etc/sysconfig/network-scripts/ifcfg-eth0 в файл ifcfg-eth0:0. В новом файле указываем настройки желаемого IP адреса, не забывая указать параметр DEVICE=eth0:0

Запускаем команду

# /etc/sysconfig/network-scripts/ifup-aliases eth0:0

либо

# /etc/init.d/network reload

если указать параметр restart, то оборвуться все соединения

Решить проблемы со squid могут помочь журналы /var/log/messages и /var/log/squid/cache.log

Если squid перестал работать, а в журнале появились записи:

 

(squid): storeUfsDirOpenSwapLog: Failed to open swap log.

squid[8293]: Squid Parent: child process 8317 exited due to signal 6

squid[8293]: Exiting due to repeated, frequent failures

значит squid потерял доступ к каталогу со своим кэшем. Проверить это можно установив полный доступ к каталогу. Предварительно запомним кому он принадлежит и с какими правами:

# chmod 777 /var/spool/squid

Если после этого squid запустился нормально, то стоит выяснить почему он потерял свои права.

Для того, чтобы создать образы дисков и иметь к ним постоянный доступ, что удобно, например, с apt, выполняем:

# mkdir /dvd

# cd /dvd

# dd if=/dev/cdrom of=имя_образа Чтобы объединить несколько проски-серверов squid для обмена кэшами между собой, нужно в squid.conf на каждом из них указать соседей:

 

icp_port 3130

cache_peer 10.0.0.2 sibling 3128 3130

cache_peer 10.0.0.3 sibling 3128 3130

Если мы хотем завернуть весь трафик на соседний прокси, т.е. заставить наш прокси 10.0.0.1 выходить в Интернет только через соседний прокси-сервер 10.0.0.2, то в squid.conf прописываем:

 

icp_port 3130

cache_peer 10.0.0.2 parent 3128 3130

never_direct allow all и на 10.0.0.2 даём доступ для 10.0.0.1. Теперь все пользователи, подключенные к 10.0.0.1 будут выходить в Интернет через прокси 10.0.0.2 как один большой пользователь

Коллекторы - методы борьбы.

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

Анджей Березинас | Создайте свою визитку
Besucherzahler dating sites
счетчик посещений