Публикации

Как отследить, почему curl подключается к серверу через раз?

Здравствуйте. Есть 2 сервера. Один в Германии, один в Казахстане. На обоих стоит Debian 7. Раз в 10 минут германский сервер бегает на казахстанский за данными и сохраняет их в Redis. Данные забираются через php + curl.

Все давно уже было настроено и работало, но в последнее время появилась проблема: примерно один раз из трех curl не может подключиться к серверу. Приходит ответ: «curl: (7) couldn't connect to host». При этом казахстанский сервер отлично пингуется как с домашней машины, так и с немецкого сервера. Никаких работ на серверах перед появлением ошибки не проводилось и новые пакеты не ставились, кроме обновлений.

Оба провайдера уверяют, что с их стороны проблем с сетью нет.
Подскажите, в какую сторону копать, чтобы найти причину?

Конфиг nginx-а
upstream backend { server 127.0.0.1:88; } ## # Virtual Host Configs ## server { listen ipaddress:80; server_name domain.kz; access_log /var/log/nginx/domain.access.log; server_name_in_redirect off; location ~ /\.ht { deny all; } location / { proxy_pass backend/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; proxy_connect_timeout 120; proxy_send_timeout 120; proxy_read_timeout 180; } location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|js)$ { root /var/www/domain.kz/www/; } }

CentOS 6.5: нужно писать логи internal-sftp и sshd в разные файлы

Чистый и полностью обновленный Centos 6.5, OpenSSH версии 5.3p1-94.el6, настройки классические:
/etc/rsyslog.d/sftp.conf
$AddUnixListenSocket /var/www/vhosts/user1/dev/log :programname, isequal, «internal-sftp» -/var/log/sftp.log :programname, isequal, «internal-sftp» ~
/etc/ssh/sshd_config
Subsystem sftp internal-sftp -l VERBOSE Match Group sftp ChrootDirectory %h X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp -l VERBOSE
Пользователь user1, home=/var/www/vhosts/user1, group=sftp
Проблема в том, что всё работает как надо, только если убрать ChrootDirectory из настроек, даже ChrootDirectory / не помогает. Собственно вот что должно быть:
/var/log/secure
Jun 8 12:08:01 srv sshd[10371]: Accepted password for user1 from IP port 38817 ssh2 Jun 8 12:08:01 srv sshd[10371]: pam_unix(sshd:session): session opened for user user1 by (uid=0) Jun 8 12:08:01 srv sshd[10373]: subsystem request for sftp…
/var/log/sftp.log
Jun 8 12:08:01 srv internal-sftp[10374]: session opened for local user user1 from [IP] Jun 8 12:08:01 srv internal-sftp[10374]: received client version 3 Jun 8 12:08:01 srv internal-sftp[10374]: opendir "/" Jun 8 12:08:01 srv internal-sftp[10374]: closedir "/"…
Если включить ChrootDirectory все логи идут в /var/log/secure от sshd с его Level и Facility, так что разделить их по разным файлам уже не реально, вот пример
Jun 8 12:11:01 srv sshd[10825]: Accepted password for user1 from IP port 38821 ssh2 Jun 8 12:11:01 srv sshd[10825]: pam_unix(sshd:session): session opened for user user1 by (uid=0) Jun 8 12:11:01 srv sshd[10827]: subsystem request for sftp Jun 8 12:11:01 srv sshd[10828]: session opened for local user user1 from [IP] Jun 8 12:11:01 srv sshd[10828]: received client version 3 Jun 8 12:11:01 srv sshd[10828]: opendir "/" Jun 8 12:11:01 srv sshd[10828]: closedir "/"…

Варианты которые перебрал, но ничего хорошего не получилось:
1) Наличие доп.сокета rsyslog не на что не влияет, раскидывал его чуть ли не всей файловой системе, без видимого результата.
2) Домашняя директория пользователя по сути тоже не важна, понятно, если указывать абсолютный путь в jail или %u, поэтому оставил вариант выше, как наиболее удобный… корень тоже пробовал.
3) Продвинутая скриптовая схема правил rsyslog-а (версия 5.8.10) не работает. Как вариант, можно было-бы написать например: if $programname == 'sshd' and ($msg startswith 'open' or $msg startswith 'close' ...) then /var/log/sftp.log
На этом мои светлые идеи закончились… подскажите, пожалуйста, что я мог упустить?

Как грамотно настроить автоматические обновления на боевом Ubuntu Server?

Уже пару лет являюсь обладателем и админом (начинающим) нескольких боевых веб-серверов под управлением debian и ubuntu. Крутятся на них обычные вещи вроде nginx, apache, unicorn, mysql, postgresql.
До chef/puppet я еще не дорос, поэтому все делаю ручками по ssh. Проблема в том, что каждый раз, когда я пишу aptitude update, я вижу какую-то нереальную цифру с количеством предлагаемых к обновлению пакетов и каждый раз не знаю что с этим делать.
С одной стороны, страшно делать upgrade, потому что что-то где-то может сломаться из-за обновления пакета до новой major версии. Еще ситуация осложняется тем, что среди серверов есть VPSки, где нельзя обновлять ядро, потому что оно собрано хостером с модулем xen.
С другой же стороны, в голове сидит паранойя, что в любом из тех же apache, ssh или mysql в любой момент может вылезти что-то страшное, наподобие недавнего heartbleed.

Собственно, вопрос к знатокам: как правильно обновлять пакеты на debian-based сервере, чтобы ничего не ломалось?
А еще лучше так: как правильно настроить автоматические обновления на debian-based сервере, чтобы об этом можно было спокойно забыть до выхода следующей LTSки?

P.S. До кучи, приветствуются рекомендации и ссылки по настройке прочих вещей на сервере (например iptables), которые тоже необходимо «настроить и забыть».

Почему падает mysql и поднять помогает только ребут, иначе daemon failed?

CentOS. VestaCP. Падает mysql и его не рестартануть (service mysqld restart), пишет daemon failed.

140601 18:09:38 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 140601 18:09:38 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead. 140601 18:09:38 [Note] Plugin 'FEDERATED' is disabled. 140601 18:09:38 InnoDB: The InnoDB memory heap is disabled 140601 18:09:38 InnoDB: Mutexes and rw_locks use GCC atomic builtins 140601 18:09:38 InnoDB: Compressed tables use zlib 1.2.3 140601 18:09:38 InnoDB: Using Linux native AIO 140601 18:09:38 InnoDB: Initializing buffer pool, size = 128.0M 140601 18:09:38 InnoDB: Completed initialization of buffer pool 140601 18:09:38 InnoDB: highest supported file format is Barracuda. InnoDB: The log sequence number in ibdata files does not match InnoDB: the log sequence number in the ib_logfiles! 140601 18:09:38 InnoDB: Database was not shut down normally! InnoDB: Starting crash recovery. InnoDB: Reading tablespace information from the .ibd files… InnoDB: Restoring possible half-written data pages from the doublewrite InnoDB: buffer… 140601 18:09:38 InnoDB: Waiting for the background threads to start 140601 18:09:39 InnoDB: 5.5.37 started; log sequence number 3023145 140601 18:09:39 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306 140601 18:09:39 [Note] — '0.0.0.0' resolves to '0.0.0.0'; 140601 18:09:39 [Note] Server socket created on IP: '0.0.0.0'. 140601 18:09:39 [Warning] 'proxies_priv' entry '@ root@myserver' ignored in --skip-name-resolve mode. 140601 18:09:39 [Note] Event Scheduler: Loaded 0 events 140601 18:09:39 [Note] /usr/libexec/mysqld: ready for connections. Version: '5.5.37' socket: '/var/lib/mysql/mysql.sock' port: 3306
Читать дальше

Как установить VPS для тестирующей системы ejudge?

Всем доброго времени суток!
Мне необходимо установить ejudge на VPS.
Но, как известно, для корректной работы и защиты необходимо либо установить патч на ядро, либо накатить образ системы (ejudge предоставляет образ Fedora'ы).

Я почитал про VPS и нашел двух самых лучших, на мой взгляд: digitalocean.com и linode.com
Но, почитав побольше, я узнал, что там образ системы можно только выбрать из списка (т.е. свой образ уже отпадает). Информацию про возможность установки патча на ядро не смог найти. Поэтому такой вопрос: Можно ли как-то поставить ejudge на VPS, предоставляемый двумя вышеперечисленными компаниями, и, если нет, то подскажите, где есть такая возможность?

Почему не работает NFQUEUE?

Уважаемые профессионалы! Есть VPS. Задача: ловить все TCP-пакеты от определенного пользователя и записывать их в файл. Казалось бы, ничего сложного — из iptables через NFQUEUE, далее ловить на dumpcap. Но на виртуальной машине не работает. Какие могут быть соображения? Помогите, пожалуйста.

Ниже привожу упрощенный тест по попытке соединения с 80 портом.# iptables -A OUTPUT -m tcp -p tcp --dport=80 -j NFQUEUE --queue-num=2 # dumpcap -i nfqueue:2 & [1] 20424 # Capturing on nfqueue:2 File: /tmp/wireshark_nfqueue-2_20140512211225_1QWcTP # telnet google.com 80 Trying 74.125.136.138… telnet: connect to address 74.125.136.138: Connection timed out Trying 74.125.136.113… ^C # fg dumpcap -i nfqueue:2 Packets captured: 0 Packets received/dropped on interface nfqueue:2: 0/0 (0.0%) # iptables -D OUTPUT -m tcp -p tcp --dport=80 -j NFQUEUE --queue-num=2 # telnet google.com 80 Trying 74.125.136.113… Connected to google.com. Escape character is '^]'. ^] telnet> Connection closed. # uname -r 2.6.32-042stab085.17 # dumpcap -v Dumpcap 1.8.10 (SVN Rev Unknown from unknown) Copyright 1998-2013 Gerald Combs and contributors. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled (64-bit) with GLib 2.26.1, with libpcap, with libz 1.2.3, without POSIX capabilities. Running on Linux 2.6.32-042stab085.17, with locale en_US.UTF-8, with libpcap version 1.4.0, with libz 1.2.3. Built using gcc 4.4.7 20120313 (Red Hat 4.4.7-4). See www.wireshark.org for more information. # iptables iptables v1.4.7: no command specified Try `iptables -h' or 'iptables --help' for more information.Как видно, как только убираю правило, связанное с NFQUEUE, пакеты сразу начинают проходить. В чем может быть проблема? Спасибо заранее.

Как правильно настроить pac-файл для Internet Explorer?

Имеется pac-файл, расположен в \\MAIN2\Public\proxy.pac
Содержание файла:
function FindProxyForURL(url, host) { return «PROXY 10.10.1.4:8080; DIRECT»; }
Все провернные браузеры (Opera, Firefox, Chrome) нормально обрабатывают и выбирают нужный прокси, все ок.
Но наш старый друг IE в упор не хочет использоваться pac и использует DIRECT.
Как создать идеальный файл, может нужна специальная кодировка или синтаксис?
Или в Свойства браузера→Подключения→Настройка сети, в поле «Использовать сценарий автоматической настройки» нужно как-то по особому прописать ссылку (у меня написано: \\MAIN2\Public\proxy.pac)?
Спасибо.

Почему не идет трафик между vlan, если устройства на одном коммутаторе L3 Cisco Catalyst 3850?

Есть коммутатор третьего уровня cisco 3850 c лицензией IPBase.
Подключил в порт 3 точку доступа cisco aironet 2602I и к порту 5 компьютер.

Вопрос — как настроить коммутатор, чтоб из wlan я мог видеть любую подсеть? Все подсети подключены к коммутатору напрямую.

Краткое описание основных настроек конфигурации:

1 vlan3 присвоил для управления точками доступа и повесил на 3й порт коммутатора с ip адресом 192.168.3.1 255.255.255.0 (точке доступа выдается адрес 192.168.3.2)

2 vlan 4 присвоил WLANу и создал интерфейс с ip 192.168.4.1 255.255.255.0 (клиенту wi-fi выдается 192.168.4.2)

3 vlan 5 присвоил Desktopу который повесил на 5й порт коммутатора с ip 192.168.5.1 255.255.255.0 (Адрес Десктопа 192.168.5.2)

Ip адрес каждого vlan своего рода шлюз по умолчанию для под-сети к которой он относится.

Ip routing работает. К примеру из Desktopa имеющий ip адрес 192.168.5.2 я вижу точку доступа
Читать дальше

Как настроить VNP IPSec туннель на Windows?

Добрый день, подскажите, пожалуйста, как настроить IPSec туннель между двумя сетями?

сеть1:
192.168.0.0
255.255.255.0
шлюз — 213.150.*.*
сеть2:
10.0.120.0
255.255.254.0
шлюз — 213.87.*.*
сеть2 настроена со следующими параметрами:
Phase1:
pre-shared-key ****
encryption algorithm: 3DES
hash algorithm: SHA1
authentication method: Pre-Shared Key
Diffie-Hellman group: #2 (1024 bit)
lifetime: 86400 seconds, no volume limit
Phase 2:
Transform set esp3dtu: { esp-3des esp-sha-hmac }
will negotiate = { Tunnel, },
Security association lifetime: 4608000 kilobytes/3600 seconds

Как настроить сеть1 штатными средствами windows xp или с помощью утилит, например Shrew Soft VPN Client?

Пробовал использовать этот мануал: www.ixbt.com/comm/wrls-ovislink-wmu-9000vpn_2.shtml туннель видится на обоих сторонах, но при попытки пинговать адрес в сети2 происходит бесконечное согласование политик безопасности. Есть возможность изменять параметры сети2. В логах сети2 не проходит первая фаза.

Windows Server 2012 — как исправить ошибку WSUS при подключении к WID?

Доброго дня!
Возникла проблема при добавлении роли WSUS на Windows Server 2012 R2, в качестве базы данных была выбрана «Внутренняя база данных Windows».
Следуя советам гугла, добавил в «Вход в качестве службы»: NT SERVICE\ALL SERVICES, иначе роль на сервер тупо не добавляется.
Роль установилась успешно, требуется конфигурация после развертывания. И тут возникает ошибка с отсылом к файлу с логом. Содержание ошибки:

System.Data.SqlClient.SqlException (0x80131904): Не удалось выполнить вход. Имя входа принадлежит недоверенному домену и не может использоваться в проверке подлинности Windows.

Компьютер является контроллером домена, а пользователь от имени которого все это запускается — Администратором. На это уже гугл затрудняется ответить, прошу совета, как быть, заранее спасибо.