The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"shell CGI & Apache 2.2.3: Как заставить резолвить ping www.g..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"shell CGI & Apache 2.2.3: Как заставить резолвить ping www.g..."  
Сообщение от Searcher (??) on 25-Окт-07, 05:34 
Приветсвую уважаемый ALL!

Что есть:

Apache 2.2.3 под 5ым центосом, с настройками:

/usr/sbin/httpd -V
Server version: Apache/2.2.3
Server built:   Jun 26 2007 19:26:32
Server's Module Magic Number: 20051115:3
Server loaded:  APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

/usr/sbin/suexec -V
-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="apache"
-D AP_LOG_EXEC="/var/log/httpd/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=500
-D AP_USERDIR_SUFFIX="public_html"


Пишу на shell"e CGI скрипт вида:


#!/bin/sh

# disable filename globbing
set -f

#echo Content-type: text/plain
echo Content-type: text/html
echo
#echo  "Content-type: text/html\n"

# our html code
echo "<html>"
echo "<head><title>Send CV report</title></head>"
echo "<body>"
echo "<h1>Message has been sent</h1>"
echo `date`
echo Hello from myself
echo "<BR>"
echo `ping -c 1 www.google.com`
echo "<BR>ping done"

:( и ничего не работает!!!! Тоесть почему-то нет резолвинга www.google.com!!!
В логах пишется такое:

tail -f /var/log/httpd/error_log

[Thu Oct 25 04:15:12 2007] [error] [client 192.168.1.100] ping: unknown host www.google.com

при этом suexec.log чист!

Если заменить echo `ping -c 1 www.google.com` на echo `ping --help`

то /var/log/httpd/error_log получим подтверждение того что сама шел команда пинг вызывается:

[Thu Oct 25 04:20:49 2007] [error] [client 192.168.1.100] Usage: ping [-LRUbdfnqrvVaA] [-c count] [-i interval] [-w deadline]
[Thu Oct 25 04:20:49 2007] [error] [client 192.168.1.100]             [-p pattern] [-s packetsize] [-t ttl] [-I interface or address]
[Thu Oct 25 04:20:49 2007] [error] [client 192.168.1.100]             [-M mtu discovery hint] [-S sndbuf]
[Thu Oct 25 04:20:49 2007] [error] [client 192.168.1.100]             [ -T timestamp option ] [ -Q tos ] [hop1 ...] destination


Если заменить echo `ping -c 1 www.google.com` на echo `ping localhost`
то в error_log получим:
[Thu Oct 25 04:31:39 2007] [error] [client 192.168.1.100] socket: Permission denied


Это наводит на мысль, что нету резолвинга! по каким то возможно секьюрным причинам в Апаче
В системе естетсвенно резолвинг есть, но его нету в самом CGI-shell скрипте.

Запускал апач и через указания User = мой шел юзер Group = моя група для моего шел юзера - те же яйца, вывод при этом в ошибках ничем не отличается!

ВОПРОС: Как пофиксить этот резолвинг и заставить CGI-шел скрипт работать правильно?
В скрипте работают все шел комманды, кроме пинга, который валится на резолвинге.

При моих текущих настройках получается, что данный скрипт выполняется под юзером apache через suexec. (вставлял просто в скрипт вывод whoami).

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "shell CGI & Apache 2.2.3: Как заставить резолвить ping www.g..."  
Сообщение от Searcher (??) on 25-Окт-07, 05:38 
Забыл добавить - в шелле:

sudo -u apache ping -c 1 www.google.com
PING www.l.google.com (64.233.183.103) 56(84) bytes of data.
64 bytes from nf-in-f103.google.com (64.233.183.103): icmp_seq=1 ttl=246 time=56.6 ms

--- www.l.google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 56.664/56.664/56.664/0.000 ms

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "shell CGI & Apache 2.2.3: Как заставить резолвить ping www.g..."  
Сообщение от Searcher (??) on 25-Окт-07, 06:13 
кажись нашел проблемму - возможно это selinux - на другой машине без se - фурычит наура!
SELinux policy enabled; httpd running as context user_u:system_r:httpd_t:s0

Как пофиксить?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "shell CGI & Apache 2.2.3: Как заставить резолвить ping www.g..."  
Сообщение от Searcher (??) on 25-Окт-07, 06:21 
Да, проблема была именно в се, отключение помогло!
disable SELinux protection for the httpd daemon by executing:

              setsebool -P httpd_disable_trans 1
              service httpd restart

:) Оставим пожалуй сию риторическую ветку потомкам.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "shell CGI & Apache 2.2.3: Как заставить резолвить ping www.g..."  
Сообщение от Searcher (??) on 25-Окт-07, 06:23 
man httpd_selinux
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру