Оптимизация кэша squid

Все описанные здесь изменения делаются в файле squid.conf, который в большинстве дистрибутивов расположен в /etc/squid/

Сначала вспомним про очень полезную опцию: reload_into_ims. По умолчанию она выключена. Если ещё включить, то вместо reload squid будет посылать запрос If-Modified-Since. Это нарушение стандарта HTTP, однако большинство серверов корректно обрабатывают этот запрос, потому включаем:

reload_into_ims on

Далее находим параметр refresh_pattern. Он задаёт параметры кэширования. Стандартно шаблоны выглядят так:

refresh_pattern ^ftp:          1440    20%     10080
refresh_pattern ^gopher:       1440    0%      1440
refresh_pattern .              0       20%     4320

Обычно используется эта инструкция так:

refresh_pattern regex min percent max options

Опции означают следующее:

Опция Значение
regex Регулярное выражение. Описывает адреса, к которым применимо это правило.
min Минимальное время, в течении которого объект в кэше считается новым. Рекомендуется использовать 0, чтобы корректно отображались динамические страницы.
percent Процент от возраста объекта с явным указание срока актуальности, в течении которого объект считается новым.
max Указывает верхний предел времени, в течении которого объекты без явного указания времени актуальности считаются новыми.
options Дополнительные опции, перечисляемые через пробел. Самые интересные из них:

  • override-expire: заставляет игнорировать факт истечения времени актуальности объекта.
  • override-lastmod: заставляет игнорировать переданное сервером время последней модификации объекта.
  • ignore-reload: заставляет игнорировать запрос reload от клиента и выдавать версию объекта из кэша.
  • ignore-no-cache: заставляет игнорировать заголовок no-cache с сервера и принудительно кэшировать объект.

Правила обрабатываются сверху вниз до первого сработавшего правила. Потому правило для «.» должно идти последним.

Пишем правила. Для начала закомментируем имеющиеся правила. Вместо них мы будем писать свои:

#refresh_pattern ^ftp:          1440    20%     10080
#refresh_pattern ^gopher:       1440    0%      1440
#refresh_pattern .              0       20%     4320

Далее настроим более жёсткое кэширование для определённых типов файлов:

refresh_pattern \.bz2$          43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.exe$          43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.gif$          43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.gz$           43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.ico$          43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.jpg$          43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.mid$          43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.mp3$          43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.pdf$          43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.swf$          43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.tar$          43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.tgz$          43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.zip$          43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache

Уже это даёт солидную экономию. Далее на очереди реклама. Конечно её можно вырезать с помощью bfilter и/или adzapper, но ни один фильтр не может убрать всей рекламы, потому на всякий случай добавим правила для кэширования рекламы:

refresh_pattern http://ad\.                        43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://ads\.                       43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://adv\.                       43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://click\.                     43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://count\.                     43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://counter\.                   43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://engine\.                    43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://img\.readme\.ru             43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://userpic\.livejournal\.com   43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.ru/bf-analyze                    43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.ru/bf-si                         43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern /advs/                             43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern /banners/                          43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern /cgi-bin/iframe/                   43200   100%    43200 override-lastmod override-expire ignore-reload ignore-no-cache

Далее полезно ещё раз изучить логи squid. Возможно вы напишите какие-то свои дополнительные правила.

Наконец можно написать правила для адресов, не подпадающих под остальные шаблоны. Используем дефолтные правила с небольшой модификацией:

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       80%     14400

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

За размер кэша отвечает параметр cache_dir:

# cache_dir ufs /var/spool/squid 100 16 256
cache_dir ufs /var/spool/squid 10240 16 256

За максимальный размер объекта в кэше отвечает параметр maximum_object_size:

# maximum_object_size 4096 KB
maximum_object_size 10240 KB

Закончив изменения сохраняем файл и даём команду squid перечитать настройки:

squid -k reconfigure

На этом всё. Если вы используете sarg для анализа логов squid то вы наверняка заметите рост эффективности кэша. (У автора использование кэша увеличилось с 6% до 28%)

mysqladmin — примеры использования

В 15 примерах использования команд mysqladmin ниже, используется пароль root Mysql tmppassword. Поменяйте его на ваш пароль

1. Как изменить пароль root на Mysql?

$ mysqladmin -u root -ptmppassword password 'newpassword'
$ mysql -u root -pnewpassword
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.1.25-rc-community MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>

2. Как проверить работает ли MySQL сервер?

$ mysqladmin -u root -p ping
Enter password:
mysqld is alive

3. Как посмотреть какая версия MySQL используетсяI am running?

Эта команда так же отображает текущий статус сервера.

$ mysqladmin -u root -ptmppassword version
mysqladmin  Ver 8.42 Distrib 5.1.25-rc, for redhat-linux-gnu on i686
Copyright (C) 2000-2006 MySQL AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license
Server version          5.1.25-rc-community
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/lib/mysql/mysql.sock
Uptime:                 107 days 6 hours 11 min 44 sec
Threads: 1  Questions: 231976  Slow queries: 0  Opens: 17067
Flush tables: 1  Open tables: 64  Queries per second avg: 0.25

4. Как посмотреть статус MySQL сервера?

$ mysqladmin -u root -ptmppassword status
Uptime: 9267148
Threads: 1  Questions: 231977  Slow queries: 0  Opens: 17067
Flush tables: 1  Open tables: 64  Queries per second avg: 0.25

Команда status отображает следующую информациюcommand displays the following information:

  • Uptime: Время безотказной работы в секундах
  • Threads: Общее количество клиентов, подключенных к серверу.
  • Questions: Общее количество запросов к серверу с момента запуска.
  • Slow queries: Общее количество запросов, чьё время выполнения было больше чем значение переменной long_query_time.
  • Opens: Total number of tables opened by the server.
  • Flush tables: How many times the tables were flushed.
  • Open tables: Total number of open tables in the database.

5. Как просмотреть статус переменных MySQL и их текущее значение?

$ mysqladmin -u root -ptmppassword extended-status
+-----------------------------------+-----------+
| Variable_name                       | Value     |
+-----------------------------------+-----------+
| Aborted_clients                       | 579       |
| Aborted_connects                    | 8         |
| Binlog_cache_disk_use             | 0         |
| Binlog_cache_use                    | 0         |
| Bytes_received                       | 41387238  |
| Bytes_sent                            | 308401407 |
| Com_admin_commands          | 3524      |
| Com_assign_to_keycache        | 0         |
| Com_alter_db                        | 0         |
| Com_alter_db_upgrade           | 0         |

6. Как отобразить все системные переменные MySQL сервера и их значения?

$ mysqladmin  -u root -ptmppassword variables
+---------------------------------+---------------------------------+
| Variable_name                   | Value                           |
+---------------------------------+---------------------------------+
| auto_increment_increment        | 1                               |
| basedir                         | /                               |
| big_tables                      | OFF                             |
| binlog_format                   | MIXED                           |
| bulk_insert_buffer_size         | 8388608                         |
| character_set_client            | latin1                          |
| character_set_database          | latin1                          |
| character_set_filesystem        | binary                          |
skip.....
| time_format                     | %H:%i:%s                        |
| time_zone                       | SYSTEM                          |
| timed_mutexes                   | OFF                             |
| tmpdir                          | /tmp                            |
| tx_isolation                    | REPEATABLE-READ                 |
| unique_checks                   | ON                              |
| updatable_views_with_limit      | YES                             |
| version                         | 5.1.25-rc-community             |
| version_comment                 | MySQL Community Server (GPL)    |
| version_compile_machine         | i686                            |
| version_compile_os              | redhat-linux-gnu                |
| wait_timeout                    | 28800                           |
+---------------------------------+---------------------------------+

7. Как отобразить все запущенные процессы/запросы в базе mysql?

$ mysqladmin -u root -ptmppassword processlist
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host      | db | Command | Time | State | Info             |
+----+------+-----------+----+---------+------+-------+------------------+
| 20 | root | localhost |    | Sleep   | 36   |       |                  |
| 23 | root | localhost |    | Query   | 0    |       | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+

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

$ mysqladmin -u root -ptmppassword -i 1 processlist
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host      | db | Command | Time | State | Info             |
+----+------+-----------+----+---------+------+-------+------------------+
| 20 | root | localhost |    | Sleep   | 36   |       |                  |
| 23 | root | localhost |    | Query   | 0    |       | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host      | db | Command | Time | State | Info             |
+----+------+-----------+----+---------+------+-------+------------------+
| 24 | root | localhost |    | Query   | 0    |       | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+

8. Как создать базу MySQL?

$ mysqladmin -u root -ptmppassword create testdb
$ mysql -u root -ptmppassword
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 705
Server version: 5.1.25-rc-community MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| sugarcrm           |
| testdb             |
+--------------------+
4 rows in set (0.00 sec)

Замечание: Для отображения все таблиц в базе данных, общего количества колонок, строк, индексов и прочее…. используйте команду mysqlshow.

9. Как удалить существующую базу MySQL?

$ mysqladmin -u root -ptmppassword drop testdb
Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.
Do you really want to drop the 'testdb' database [y/N] y
Database “testdb” dropped
$ mysql -u root -ptmppassword
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 707
Server version: 5.1.25-rc-community MySQL Community Server (GPL)
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql> show databases;
+——————–+
| Database           |
+——————–+
| information_schema |
| mysql              |
| sugarcrm           |
+——————–+
3 rows in set (0.00 sec)

10. Как перегрузить все привилегии и права на таблицы?

$ mysqladmin -u root -ptmppassword reload;

Команда Refresh сбросит все таблица и закроет/откроет лог-файлы.

$ mysqladmin -u root -ptmppassword refresh

11. Как образом выполнить безопасную остановку MySQL сервера?

$ mysqladmin -u root -ptmppassword shutdown
$ mysql -u root -ptmppassword
ERROR 2002 (HY000): Can't connect to local MySQL server
through socket '/var/lib/mysql/mysql.sock'

Вы можете использовать команду “/etc/rc.d/init.d/mysqld stop” для остановки сервера. Для запуска выполните “/etc/rc.d/init.d/mysql start”

12. Список всех mysqladmin flush комманд.

$ mysqladmin -u root -ptmppassword flush-hosts
$ mysqladmin -u root -ptmppassword flush-logs
$ mysqladmin -u root -ptmppassword flush-privileges
$ mysqladmin -u root -ptmppassword flush-status
$ mysqladmin -u root -ptmppassword flush-tables
$ mysqladmin -u root -ptmppassword flush-threads
  • flush-hosts: Сбросить всю информацию в кэше хостов.
  • flush-privileges: Перезагрузить права.
  • flush-status: Очистить статус переменных.
  • flush-threads: Flush the thread cache.

13. Как убить подвешенный клиентский процесс в MySQL ?

Сперва определите подвешенный процесс используя команду processlist.

$ mysqladmin -u root -ptmppassword processlist
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host      | db | Command | Time | State | Info             |
+----+------+-----------+----+---------+------+-------+------------------+
| 20 | root | localhost |    | Sleep   | 64   |       |                  |
| 24 | root | localhost |    | Query   | 0    |       | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+

Затем используйте команду kill и нужный process_id. Для завершения нескольких процессов разделите process id запятыми.

$ mysqladmin -u root -ptmppassword kill 20
$ mysqladmin -u root -ptmppassword processlist
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host      | db | Command | Time | State | Info             |
+----+------+-----------+----+---------+------+-------+------------------+
| 26 | root | localhost |    | Query   | 0    |       | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+

14. Как запустить или остановить репликацию MySQL на slave-сервер?

$ mysqladmin  -u root -ptmppassword stop-slave
Slave stopped
$ mysqladmin  -u root -ptmppassword start-slave
mysqladmin: Error starting slave: The server is not configured as slave;
fix in config file or with CHANGE MASTER TO

15. Как скомбинировать несколько команд mysqladmin вместе?

В примере ниже скомбинированы команды process-list, status и version для полного вывода статуса сервера.

$ mysqladmin  -u root -ptmppassword process status version
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host      | db | Command | Time | State | Info             |
+----+------+-----------+----+---------+------+-------+------------------+
| 43 | root | localhost |    | Query   | 0    |       | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+
Uptime: 3135
Threads: 1  Questions: 80  Slow queries: 0  Opens: 15  Flush tables: 3
Open tables: 0  Queries per second avg: 0.25
mysqladmin  Ver 8.42 Distrib 5.1.25-rc, for redhat-linux-gnu on i686
Copyright (C) 2000-2006 MySQL AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license
Server version          5.1.25-rc-community
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/lib/mysql/mysql.sock
Uptime:                 52 min 15 sec

Вы можете также использовать краткую форму записи:

$ mysqladmin  -u root -ptmppassword pro stat ver

Используйте опцию -h для подключения к удаленному MySQL серверу и выполнения команды.

$ mysqladmin  -h 192.168.1.112 -u root -ptmppassword pro stat ver

Настройка SPF-записи в DNS

Sender Policy Framework, SPF (инфраструктура политики отправителя) — расширение для протокола отправки электронной почты через SMTP. SPF определен в RFC 7208, т.е. это запись DNS содержащая информацию о серверах, которые могут отправлять почту с вашего домена. Наличие SPF снижает вероятность попадания вашего письма в спам. Благодаря SPF можно проверить, не подделан ли домен отправителя.
SPF запись может быть только одна для одного домена. В рамках одной SPF может быть несколько записей. Для поддоменов нужны свои записи.
Любая SPF-запись начинается с v=spf1, этот параметр не изменяется. Он указывает на версию записи, и в настоящее время поддерживается только spf1.
Далее указываются параметры (механизмы). Чаще всего используются следующие: all, ip4, ip6, a, mx, include, redirect. Также существуют, но используются значительно реже: ptr, exists, exp. Они все будут рассмотрены ниже.

SPF-запись выглядит примерно следующим образом:

v=spf1 ip4:75.123.48.0/24 ip4:77.137.178.0/22 ip4:ip_вашего_сервера/32 ~all

Такая запись означает, что письма с данного домена могут отправляться из подсетей 75.123.48.0/24 и 77.137.178.0/24, а письма, пришедшие с других серверов (all), должны проходить дополнительную проверку (~).

Основной синтаксис

Любая SPF-запись начинается с v=spf1, этот параметр не изменяется. Он указывает на версию записи, и в настоящее время поддерживается только spf1.
Далее указываются параметры (механизмы). Чаще всего используются следующие: all, ip4, ip6, a, mx, include, redirect. Также существуют, но используются значительно реже: ptr, exists, exp. Они все будут рассмотрены ниже.
Помимо механизмов используются префиксы (определители):
«+» — Pass, принимать почту. Прописывать этот параметр необязательно, он установлен по умолчанию (т.е. значения «+a +mx» и «a mx» — идентичны).
«-» — Fail, отклонять почту.
«~» — SoftFail, «мягко» отклонять (принимать почту, но помещать ее в «Спам»).
«?» — нейтрально (обрабатывать как обычное письмо).
Параметр «all» подразумевает все серверы, не упомянутые отдельно в SPF-записи. «all» задает обработку полученных с них писем и указывается в конце записи.

Например:
v=spf1 ip4:176.57.223.0/24 ~all

— принимать почту только из подсети 176.57.223.0/24; письма с других адресов должны быть помечены как спам.

v=spf1 a -all

— принимать почту только с A-записи домена; письма с других адресов должны отвергаться.

v=spf1 -all

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

В последующих примерах мы не будем дополнительно комментировать значения параметров ~all и -all в SPF-записях.

ip4 / ip6 — Используется для указания конкретных адресов и подсетей, из которых могут отправляться письма. Синтаксис для IPv4 и IPv6 идентичен.

v=spf1 ip4:75.123.48.0/24 ~all

— принимать почту из подсети 75.123.48.0/24.

v=spf1 ip6:2002::4b7b:300b ~all

— принимать почту с IPv6-адреса 2002::4b7b:300b.

a — IP отправителя проверяется на соответствие A-записи домена.

v=spf1 a ~all

— принимать почту с A-записи текущего домена.

v=spf1 a:sub.domain.com ~all

— принимать почту с A-записи домена sub.domain.com.

mx — IP отправителя проверяется на соответствие IP-адресам серверов, указанных в MX-записях домена. На текущий день для многих современных сервисов эта директива уже не так важна, так как серверы входящей и исходящей почты зачастую имеют разные IP.

v=spf1 mx mx:sub.domain.com -all

— принимать почту с MX-серверов текущего домена и домена sub.domain.com.

v=spf1 mx/24 -all

— принимать почту из подсети, в которую входят MX-серверы текущего домена.

include — позволяет учитывать в SPF-записи настройки SPF другого домена.

v=spf1 a include:other-domain.com -all

— принимать почту с A-записи текущего домена и серверов, указанных в SPF-записи домена other-domain.com.

При такой настройке проверяется SPF домена other-domain.com; если это, допустим, «v=spf1 a -all», то далее IP отправителя проверяется на соответствие A-записи домена other-domain.com.

redirect — технически, redirect является модификатором, а не механизмом. Он выполняет одну основную функцию: сообщает, что необходимо применять настройки SPF другого домена.

v=spf1 redirect=other-domain.com

— почта должна приниматься или отклоняться согласно настройкам домена other-domain.com.

Прочие механизмы

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

ptr — PTR-запись IP-адреса отправителя проверяется на соответствие указанному домену. Данный механизм требует большого количества DNS-запросов при проверке, поэтому без острой необходимости использовать его в SPF не рекомендуется.

v=spf1 ptr:other-domain.com -all

— принимать почту со всех адресов, PTR-запись которых направлена на домен other-domain.com

exists — запрашивается А-запись указанного домена; если она существует, проверка считается пройденной. Другими словами, проверяется, резолвится ли домен на какой-либо (любой) IP-адрес.

v=spf1 exists:mydomain.com -all

— принимать почту, если существует A-запись домена mydomain.com.

exp — Параметр «exp» применяется для отправки сообщения об ошибке отправителю письма. С помощью «exp» в SPF прописывается определенный поддомен, в TXT-записи которого указан текст сообщения об ошибке. Имя поддомена и текст ошибки может быть любым.
Параметр «exp» всегда указывается в конце записи (после all).

v=spf1 mx -all exp=error-spf.mydomain.com

При этом TXT-запись домена error-spf.mydomain.com содержит: «Not authorized to send mail for this domain».

Примеры настроек

Настройка SPF для «Почты для доменов» от Mail.Ru
Если вы отправляете почту только с серверов Mail.Ru:

v=spf1 redirect=_spf.mail.ru

Если вы отправляете почту так же и с других серверов (укажите IP-адреса или подсети вместо IP1, IP2 и т.д.):

v=spf1 ip4:IP1 ip4:IP2 ip4:IP3 include:_spf.mail.ru ~all

Настройка SPF для Яндекс.Почты
При использовании только серверов Яндекса:

v=spf1 redirect=_spf.yandex.net

При использовании также и других серверов (укажите IP-адреса или подсети вместо IP1, IP2 и т.д.):

v=spf1 ip4:IP1 ip4:IP2 ip4:IP3 include:_spf.yandex.net ~all

Настройка SPF для Google
При использовании только серверов Google:

v=spf1 include:_spf.google.com ~all

При использовании также и других серверов (укажите IP-адреса или подсети вместо IP1, IP2 и т.д.):

v=spf1 ip4:IP1 ip4:IP2 include:_spf.google.com ~all

Другие примеры

v=spf1 a ip4:75.123.48.11 include:extdomain.com -all

— принимать почту с IP-адресов, соответсвующих A-записям текущего домена, с IP-адреса 75.123.48.11 и серверов, указанных в SPF-записи extdomain.com; прочие письма отклонять.

v=spf1 mx/24 a:extdomain.com/24 ~all

— принимать почту из подсети, в которую входят MX-серверы текущего домена, и из подсети, в которую входят A-записи домена extdomain.com; прочие письма отклонять.

v=spf1 a ip4:75.123.48.11 include:extdomain.com -all

— принимать почту с A-записи текущего домена, IP-адреса 75.123.48.11, а также с серверов, указанных в SPF домена extdomain.com.

N.B!: Настройка SPF необходима для установки политики DMARC (Domain-based Message Authentication, Reporting and Conformance — идентификация сообщений, создание отчётов и определение соответствия по доменному имени). Т.е. DMARC — это подпись, которая позволяет принимающему серверу решить, что делать с письмом. DMARC использует DKIM и SPF.

windows автоматический вход в систему

При запуске windows отменить запрос логина/пароля, для этого выбираем пуск->выполнить-> набираем в окошке
control userpasswords2 и ставим галочку не спрашивать логин/пароль при входе в систему.

Отключить autorun для разных флешек и других дисков

Кстати, если кто еще не отключил автозапуск для дисков в своей windows, тот очень рискует быть зараженным нехорошим вирусом. Дело в том, что они используют файл autorun.inf копируя его в корень вашей usb-flash (как вариант) и затем, когда вы ее вставите в свой компьютер файл запустится автоматически и заразит вас. Как отключить сие дейсвтие мы расскажем вам в нескольких словах.

Вот ниже приводится текст

REGEDIT4
 
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesCdrom]
“AutoRun”=dword:00000000

Скорпируйте его в Блокнот. Затем сохраните обязательно с расширением .reg. Затем кликните два раза по этому файлу и согласитесь с внесением данных в реестр windows. И помните — не отключив autorun вы подвергаете себя, свой компьютер и своих близких большой опасности.