LINUX.ORG.RU

Forbidden по IP

 ,


0

1

Добрый день. Ситуация следующая

Сайт прекрасно открывается по имени (e.g. domain.com) Но при попытке открыть по ip адресу получаю ошибку

Forbidden Access denied

точно так же не открывается и через http://www.domain.com

Отключаю апач, сайт открывается до nginx'а в любом варианте написания. Как только включаю апач, то вот так.

Что не так может быть в настройках апача? Подскажите куда хоть копать? Почему вообще может быть блокировка при доступе напрямик по ip?

Ответ на: комментарий от Acceptor

nginx.conf

user bitrix; worker_processes 2; worker_priority -5; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; worker_rlimit_nofile 10240;

events { use epoll; worker_connections 10240; }

http {

include /etc/nginx/mime.types; default_type application/force-download; server_names_hash_bucket_size 128;

# Description of supported access log formats log_format main '$remote_addr - $remote_user [$time_local - $upstream_response_time] ' '$status «$request» $body_bytes_sent ' '«$http_referer» «$http_user_agent» «$http_x_forwarded_for»';

log_format common '$remote_addr - - [$time_local - $upstream_response_time] ' '«$request» $status $bytes_sent ' '«$http_referer» «$http_user_agent» $msec';

log_format balancer '$remote_addr - $remote_user [$time_iso8601] «$host» ' '«$request» $status $body_bytes_sent «schema: $scheme» ' '«$http_referer» «$http_user_agent» «$http_x_forwarded_for» ' '«$request_length» : «$request_time» -> $upstream_response_time';

log_format debug '$upstream_response_time,«$time_local»,«$remote_addr»,«$request»,$status,$body_bytes_sent';

# upload default maps include bx/maps/*.conf;

# Disable request logging in nginx by default #access_log /var/log/nginx/access.log common; access_log off;

sendfile on; tcp_nopush on; tcp_nodelay on;

client_max_body_size 1024m; client_body_buffer_size 4m;

# Parameters for back-end request proxy proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; proxy_buffer_size 64k; proxy_buffers 8 256k; proxy_busy_buffers_size 256k; proxy_temp_file_write_size 10m;

# Assign default error handlers error_page 500 502 503 504 /500.html; error_page 404 = /404.html;

# Content compression parameters gzip on; gzip_proxied any; gzip_static on; gzip_http_version 1.0; gzip_types application/x-javascript application/javascript text/css;

add_header «X-Content-Type-Options» «nosniff»; add_header X-Frame-Options SAMEORIGIN;

# Set nginx-push-stream-module common parameters include bx/conf/im_settings.conf;

# Set default website include bx/site_enabled/*.conf;

# Set additional websites include bx/site_ext_enabled/*.conf; }

bx/site_enabled/s1.conf

# Default website server {

listen 80 default_server; server_name _; server_name_in_redirect off;

proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host:80;

set $proxyserver "http://127.0.0.1:8888"; set $docroot «/home/bitrix/www»;

index index.php; root /home/bitrix/www;

# Redirect to ssl if need if (-f /home/bitrix/www/.htsecure) { rewrite ^(.*)$ https://$host$1 permanent; }

# Include parameters common to all websites include bx/conf/bitrix.conf;

# Include server monitoring locations include bx/server_monitor.conf; }

chainik2015
() автор топика
Ответ на: комментарий от Acceptor

/etc/httpd/conf/httpd.conf

ServerName www.mydomain.com:80

RewriteLog /var/log/httpd/mod_rewrite.log
RewriteLogLevel 1

ServerTokens OS
ServerRoot "/etc/httpd"
PidFile run/httpd.pid

Timeout 120

KeepAlive Off

MaxKeepAliveRequests 100

KeepAliveTimeout 15

<IfModule worker.c>
	StartServers         2
	MaxClients         250
	MinSpareThreads     25
	MaxSpareThreads     75
	ThreadsPerChild     25
	MaxRequestsPerChild  0
</IfModule>


# Active module

LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule env_module modules/mod_env.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule status_module modules/mod_status.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule dir_module modules/mod_dir.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so


#
# Disabled standart config
#

#Include conf.d/*.conf

#
# BitrixEnv include configs
#

Include bx/conf/*.conf
Include bx/custom/*.conf

User bitrix
Group bitrix

ServerAdmin root@localhost

UseCanonicalName Off

DocumentRoot "/home/bitrix/www"

<Directory />
	Options FollowSymLinks
	AllowOverride None
</Directory>

<IfModule mod_userdir.c>
	UserDir disable
</IfModule>

DirectoryIndex index.html
AccessFileName .htaccess

<Files ~ "^\.ht">
	Order allow,deny
	Deny from all
</Files>

TypesConfig /etc/mime.types
DefaultType text/plain
<IfModule mod_mime_magic.c>
	MIMEMagicFile conf/magic
</IfModule>

HostnameLookups Off
ErrorLog /var/log/httpd/error_log


LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

CustomLog logs/access_log combined

ServerSignature On

<IfModule mod_dav_fs.c>
	# Location of the WebDAV lock database.
	DAVLockDB /var/lib/dav/lockdb
</IfModule>

<IfModule mod_autoindex.c>
	IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable
	IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
</IfModule>


AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage da .dk
AddLanguage de .de
AddLanguage el .el
AddLanguage en .en
AddLanguage eo .eo
AddLanguage es .es
AddLanguage et .et
AddLanguage fr .fr
AddLanguage he .he
AddLanguage hr .hr
AddLanguage it .it
AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw

#LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
#ForceLanguagePriority Prefer Fallback

AddDefaultCharset UTF-8

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

AddHandler type-map var
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0

#BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
#BrowserMatch "MS FrontPage" redirect-carefully
#BrowserMatch "^WebDrive" redirect-carefully
#BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
#BrowserMatch "^gnome-vfs/1.0" redirect-carefully
#BrowserMatch "^XML Spy" redirect-carefully
#BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully

/etc/httpd/bx/conf/default.conf

Listen 127.0.0.1:8888
<VirtualHost 127.0.0.1:8888>
	ServerAdmin webmaster@localhost
	DocumentRoot /home/bitrix/www

	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>

	<DirectoryMatch .*\.svn/.*>
		 Deny From All
	</DirectoryMatch>

	<DirectoryMatch .*\.git/.*>
		 Deny From All
	</DirectoryMatch>

	<DirectoryMatch .*\.hg/.*>
		 Deny From All
	</DirectoryMatch>

	<Directory /home/bitrix/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride All
		DirectoryIndex index.php index.html index.htm
		Order allow,deny
		allow from all
		php_admin_value session.save_path /tmp/php_sessions/www
		php_admin_value upload_tmp_dir /tmp/php_upload/www
	</Directory>

	<Directory /home/bitrix/www/bitrix/cache>
		AllowOverride none
		Order allow,deny
		Deny from all
	</Directory>

	<Directory /home/bitrix/www/bitrix/managed_cache>
		AllowOverride none
		Order allow,deny
		Deny from all
	</Directory>

	<Directory /home/bitrix/www/bitrix/local_cache>
		AllowOverride none
		Order allow,deny
		Deny from all
	</Directory>

	<Directory /home/bitrix/www/bitrix/stack_cache>
		AllowOverride none
		Order allow,deny
		Deny from all
	</Directory>

	<Directory /home/bitrix/www/upload>
		AllowOverride none
		AddType text/plain php,php3,php4,php5,php6,phtml,pl,asp,aspx,cgi,dll,exe,ico,shtm,shtml,fcg,fcgi,fpl,asmx,pht
		php_value engine off
	</Directory>

	<Directory /home/bitrix/www/upload/support/not_image>
		AllowOverride none
		Order allow,deny
		Deny from all
	</Directory>

	<Directory /home/bitrix/www/bitrix/images>
		AllowOverride none
		AddType text/plain php,php3,php4,php5,php6,phtml,pl,asp,aspx,cgi,dll,exe,ico,shtm,shtml,fcg,fcgi,fpl,asmx,pht
		php_value engine off
	</Directory>

	<Directory /home/bitrix/www/bitrix/tmp>
		AllowOverride none
		AddType text/plain php,php3,php4,php5,php6,phtml,pl,asp,aspx,cgi,dll,exe,ico,shtm,shtml,fcg,fcgi,fpl,asmx,pht
		php_value engine off
	</Directory>

	ErrorLog logs/error_log
	# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
	LogLevel warn

	CustomLog logs/access_log combined

	<IfModule mod_rewrite.c>
		#Nginx should have "proxy_set_header HTTPS YES;" in location
		RewriteEngine On
		RewriteCond %{HTTP:HTTPS} =YES
		RewriteRule .* - [E=HTTPS:on,L]
	</IfModule>
</VirtualHost>
chainik2015
() автор топика
Ответ на: комментарий от Acceptor

Для удобства и конфиги nginx:

/etc/nginx/nginx.conf

user bitrix;
worker_processes 2;
worker_priority -5;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
worker_rlimit_nofile 10240;

events {
	use epoll;
	worker_connections  10240;
}

http {

	include /etc/nginx/mime.types;
	default_type application/force-download;
	server_names_hash_bucket_size 128;

	# Description of supported access log formats
	log_format main	'$remote_addr - $remote_user [$time_local - $upstream_response_time] '
                  '$status "$request" $body_bytes_sent '
                  '"$http_referer" "$http_user_agent" "$http_x_forwarded_for"';

	log_format common '$remote_addr - - [$time_local - $upstream_response_time] '
                    '"$request" $status $bytes_sent '
                    '"$http_referer" "$http_user_agent" $msec';

  log_format balancer '$remote_addr - $remote_user [$time_iso8601] "$host" '
                    '"$request" $status $body_bytes_sent "schema: $scheme" '
                    '"$http_referer" "$http_user_agent" "$http_x_forwarded_for" '
                    '"$request_length" : "$request_time" -> $upstream_response_time';

	log_format debug '$upstream_response_time,"$time_local","$remote_addr","$request",$status,$body_bytes_sent';


  # upload default maps
  include bx/maps/*.conf;

	# Disable request logging in nginx by default
	#access_log /var/log/nginx/access.log  common;
	access_log			off;

	sendfile			on;
	tcp_nopush			on;
	tcp_nodelay			on;

	client_max_body_size		1024m;
	client_body_buffer_size		4m;

	# Parameters for back-end request proxy
	proxy_connect_timeout		300;
	proxy_send_timeout		300;
	proxy_read_timeout		300;
	proxy_buffer_size		64k;
	proxy_buffers			8 256k;
	proxy_busy_buffers_size		256k;
	proxy_temp_file_write_size	10m;

	# Assign default error handlers
	error_page 500 502 503 504 /500.html;
	error_page 404 = /404.html;

	# Content compression parameters
	gzip				on;
	gzip_proxied			any;
	gzip_static			on;
	gzip_http_version		1.0;
	gzip_types			application/x-javascript application/javascript text/css;

	add_header "X-Content-Type-Options" "nosniff";
  add_header X-Frame-Options SAMEORIGIN;

	# Set nginx-push-stream-module common parameters
	include bx/conf/im_settings.conf;


	# Set default website
	include bx/site_enabled/*.conf;

	# Set additional websites
	include bx/site_ext_enabled/*.conf;
}

/etc/nginx/bx/site_enabled/s1.conf

	# Default website
		
	server {
		listen 80 default_server;
		server_name _;
		server_name_in_redirect off;

		proxy_set_header	X-Real-IP        $remote_addr;
		proxy_set_header	X-Forwarded-For  $proxy_add_x_forwarded_for;
		proxy_set_header	Host $host:80;

		set $proxyserver	"http://127.0.0.1:8888";
		set $docroot		"/home/bitrix/www";

		index index.php;
		root /home/bitrix/www;

		# Redirect to ssl if need
		if (-f /home/bitrix/www/.htsecure) { rewrite ^(.*)$ https://$host$1 permanent; }

		# Include parameters common to all websites
		include bx/conf/bitrix.conf;

		# Include server monitoring locations
		include bx/server_monitor.conf;
	}
chainik2015
() автор топика
Ответ на: комментарий от Acceptor

Ну и до кучи

/etc/nginx/bx/conf/bitrix.conf

# cache condition variable
set $usecache "";
if ($is_global_cache = 1)                     { set $usecache "${usecache}A"; }

# main config without processing cache pages
include bx/conf/bitrix_general.conf;

# php file processing
location ~ \.php$ {

  set $cache_file "bitrix/html_pages$general_key@$args.html";

  # test file conditions
  if (-f "$docroot/bitrix/html_pages/.enabled") { set $usecache "${usecache}B"; }
  if (-f "$docroot/$cache_file")                { set $usecache "${usecache}C"; }
  
  # create rewrite if cache-file exists
  if ($usecache = "ABC" ) { rewrite .* /$cache_file last; }

  proxy_pass $proxyserver;
}

# directories page processing
location ~ /$ {
  
  set $cache_file "bitrix/html_pages$general_key/index@$args.html";

  # test file conditions
  if (-f "$docroot/bitrix/html_pages/.enabled") { set $usecache "${usecache}B"; }
  if (-f "$docroot/$cache_file")                { set $usecache "${usecache}C"; }

  # create rewrite if cache-file exists
  if ($usecache = "ABC" ) { rewrite .* /$cache_file last; }

  proxy_pass $proxyserver;
}

# Main location
location / {
  proxy_pass $proxyserver;
}

/etc/nginx/bx/conf/bitrix_general.conf

#
# Main configuration file for site with Bitrix CMS.
# It doesn't contain configuration for .php and / 
# as their treatment depends on the type of caching on the site:
# - general cache - default option
# - composite cache + file - can be enabled in the menu
# - composite cache + memcached -  can be enabled in the menu
#

# Assign error handler
include	bx/conf/errors.conf;

# Include im subscrider handlers
include bx/conf/im_subscrider.conf;

# Deny external access to critical areas
include bx/conf/bitrix_block.conf;

# Intenal locations
location ^~ /upload/support/not_image	{ internal; }

# Cache location: composite and general site
location ~* @.*\.html$ {
  internal;
  # disable browser cache, php manage file
  expires -1y;
  add_header X-Bitrix-Composite "Nginx (file)";
}

# Player options, disable no-sniff
location ~* ^/bitrix/components/bitrix/player/mediaplayer/player$ {
  add_header Access-Control-Allow-Origin *;
}

# Process dav request on
# main company
# extranet
# additional departments
# locations that ends with / => directly to apache 
location ~ ^(/[^/]+)?(/docs|/workgroups|/company/profile|/bitrix/tools|/company/personal/user|/mobile/webdav|/contacts/personal).*/$ {
  proxy_pass $proxyserver;
}

# Add / to request
location ~ ^(/[^/]+)?(/docs|/workgroups|/company/profile|/bitrix/tools|/company/personal/user|/mobile/webdav|/contacts/personal) {

  set $addslash "";
  if (-d $request_filename)   { set $addslash "${addslash}Y"; }
  if ($is_args != '?')    { set $addslash "${addslash}Y"; }
  if ($addslash = "YY" )    { proxy_pass $proxyserver$request_uri/; }

  proxy_pass $proxyserver;
}

# Accept access for merged css and js
location ~* ^/bitrix/cache/(css/.+\.css|js/.+\.js)$ {
  expires 30d; 
  error_page 404 /404.html;
}

# Disable access for other assets in cache location
location ~* ^/bitrix/cache		{ deny all; }

# Excange and Outlook
location ~ ^/bitrix/tools/ws_.*/_vti_bin/.*\.asmx$	{ proxy_pass $proxyserver; }

# Groupdav
location ^~ /bitrix/groupdav.php 			{ proxy_pass $proxyserver; }

# Use nginx to return static content from s3 cloud storage
# /upload/bx_cloud_upload/<schema>.<backet_name>.<s3_point>.amazonaws.com/<path/to/file>
location ^~ /upload/bx_cloud_upload/ {
  location ~ ^/upload/bx_cloud_upload/(http[s]?)\.([^/:]+)\.(s3|s3-us-west-1|s3-eu-west-1|s3-ap-southeast-1|s3-ap-northeast-1)\.amazonaws\.com/(.+)$ {
    internal;
    resolver 8.8.8.8;
    proxy_method GET;
    proxy_set_header	X-Real-IP		$remote_addr;
    proxy_set_header	X-Forwarded-For		$proxy_add_x_forwarded_for;
    proxy_set_header	X-Forwarded-Server	$host;
    #proxy_max_temp_file_size 0;
    proxy_pass $1://$2.$3.amazonaws.com/$4;
  }
  location ~* .*$	{ deny all; }
}

# Static content
location ~* ^/(upload|bitrix/images|bitrix/tmp) { 
  expires 30d; 
}

location  ~* \.(css|js|gif|png|jpg|jpeg|ico|ogg|ttf|woff|eot|otf)$ {
  error_page 404 /404.html;
  expires 30d;
}

# Nginx server status page
location ^~ /nginx-status {
  stub_status on;
  allow 127.0.0.0/24;
  deny all;
}

# Bitrix setup script
location ^~ ^(/bitrixsetup\.php)$ { proxy_pass $proxyserver; proxy_buffering off; }

chainik2015
() автор топика
Ответ на: комментарий от handbrake

Обратился. Но чую начнется как обычно раз в 3-5 часов:

«А какая версия веб окружения?»

еще через 5 часов:

«А попробуйте жмакнуть кнопочку такую-то»

еще через 5 часов «А ....»

Да и думаю ведь где-то на поверхности лежать должно. Ну может хоть кто-то посоветует как логи включить на все что можно по этому поводу. А то все облазил - нет ничего в логах.

chainik2015
() автор топика
Ответ на: комментарий от Goury

На www можно редирект сделать.

Пробовал ServerAlias прописать - не помогает. Да и по ip ведь нужно чтоб ходило. Одна причина ведь.

chainik2015
() автор топика

Вообще весело. Стучусь напрямую на апач и получаю тоже самое:

curl http://127.0.0.1:8888
<html>
        <head>
                <title>403 Forbidden</title>
        </head>
        <body>
                <h1>Forbidden</h1>
                Access denied.
        </body>
</html>
chainik2015
() автор топика
Ответ на: комментарий от Goury

1) Ну как минимум чтобы понять, где же собака порылась :) 2) Неизвестно каким еще боком вылезет. 3) В 1С стоит обмен через ip. А при смене ip на имя будут выгружены по новой все данные (а их немало). Да думаю можно обойти заменив адрес в 1С программно, а не через форму, но не хочется. 4) Считаю ненормальным отсутствие доступа локально через 127.0.0.1:8888 5) Если по ip мало кто будет заходить, то уж обычный пользователь вполне может набрать http://www.mydomain.com и получить 403.

chainik2015
() автор топика
Ответ на: комментарий от chainik2015

По IP вообще нехер никому заходить. Либо домен либо 403 должно быть на нормальном публичном сайте. Ибо сайт с домена раздаётся, а не с IP. И регистрируется-то домен, а IP выдаётся специальной организации. Хотя если таковой организацией является владелец сайта и адрес зарезервирован именно для сайта, то это редкое исключение. Иначе возможнось зайти по IP на сайт потенциально несёт много проблем и ничего хорошего.
1С закопать.
По 127.0.0.1 можно и открывать сайт, хотя через сокет таки лучше.
С www возможность посетить сайт стоит оставить, идеальным решением является редирект на нормальный адрес.
К сожалению я сейчас не имею возможности прочитать конфиги и рассказать что там не так.

Goury ★★★★★
()
Последнее исправление: Goury (всего исправлений: 1)
Ответ на: комментарий от chainik2015

А если так (поменяй хост на свой)?

$ curl -H 'Host: www.linux.org.ru' http://127.0.0.1:8888

Да и думаю ведь где-то на поверхности лежать должно.

Так и было бы, если бы были нормальные конфиги, а не эта лапша от BitrixVM.

d2
()
Ответ на: комментарий от d2

Спасибо. Все оказалось проще. В админке битрикса есть в Проактивной защите есть галка Ограничивать хосты. Я ее сам и включил следуя рекомендациям битрикса :) Вопрос конечно, где же эта «галка» в файлах лежит.

chainik2015
() автор топика

Что не так

Это наоборот, «так». Не ломай, кто-то правильно настроил. Почему - не помню, что-то с безопасностью.

DonkeyHot ★★★★★
()
Ответ на: комментарий от chainik2015

Не в файлах, а в базе, затем тебя в ТП и отправляли.

handbrake ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.