billing:secure_01062018

Закрытие доступа в ЛК из "мира"

В файле /etc/httpd/vhosts.d/stat_vhost.conf
Найдите блок:

<Directory "/var/www/mikbill/stat">
        AllowOverride All
        Options FollowSymlinks Includes
	Allow from all
</Directory>

И замените на:

<Directory "/var/www/mikbill/stat">
        AllowOverride All
        Options FollowSymlinks Includes
        Order Deny,Allow
        Deny from all
        # localhost
        Allow from 127.0.0.1
        # local net
        Allow from 192.168.0.0/16
        Allow from 172.16.0.0/12
        Allow from 10.0.0.0/8
        # trusted hosts
        
</Directory>

Добавив под # trusted hosts свои доверенные адреса, сохраняя синтаксис Allow from. После чего перезапустите httpd выполнив:

/etc/init.d/httpd restart

Создадим файл для регулирования доступа:

nano /etc/nginx/access.list

Вставим туда подготовленный шаблон:

# localhost (для внутренних запросов)
allow 127.0.0.1;
# local net (локальные клиенты)
allow 192.168.0.0/16;
allow 172.16.0.0/12;
allow 10.0.0.0/8;
# trusted hosts


# deny others
deny all;

Под trusted hosts можете добавить свои IP адреса или сети которым нужно оставить доступ сохраняя синтаксис ( в начале allow а в конце ; ).

Редактируем виртуальный хост личного кабинета:

nano /etc/nginx/conf.d/stat_vhost.conf

находим блок:

location ~ \.php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass  unix:/var/run/php-worker-socket;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/mikbill/stat/$fastcgi_script_name;
}

и добавляем в него include access.list;, что бы получилось:

location ~ \.php$ {
    include access.list;
    
    include /etc/nginx/fastcgi_params;
    fastcgi_pass  unix:/var/run/php-worker-socket;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/mikbill/stat/$fastcgi_script_name;
}

Перезагружаем nginx:

/etc/init.d/nginx restart

Перейдем в нужную директорию:

cd /var/www/mikbill

Скачаем архив с обновленными файлами ЛК:

wget https://wiki.mikbill.ru/_media/billing/stat.tar.gz

Удалим старые файлы:

rm -f stat/main.php
rm -f stat/pay.php
rm -f stat/data/lib/gettext.inc
rm -f stat/data/lib/gettext.php
rm -f stat/data/lib/streams.php
rm -rf stat/res/paysystems/*

Распакуем новые файлы:

tar xzf stat.tar.gz

Обновим права:

chown apache:apache -R stat/*
chmod 755 stat/pay.php
chmod 755 -R stat/res/paysystems/*.php

Выполним:

find /var/www/mikbill/stat/ -type f \( ! -name "*.php" -and ! -name "*.tpl" -and ! -name "*.txt" \) -exec grep -H '<?php'  {} \;

Все найденные файлы нужно удалить.

Готово.

Так же, настоятельно рекомендуем закрыть сервер через iptables.

# localhost
iptables -A INPUT -i lo -j ACCEPT
# related
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# local net / trusted hosts
iptables -A INPUT -s 10.0.0.0/8 -j ACCEPT
iptables -A INPUT -s 172.16.0.0/12 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/16 -j ACCEPT
# accept dhcp
iptables -A INPUT -p udp --dport 67 -j ACCEPT
# accept web
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 81 -j ACCEPT
iptables -A INPUT -p tcp --dport 82 -j ACCEPT
iptables -A INPUT -p tcp --dport 83 -j ACCEPT
iptables -A INPUT -p tcp --dport 84 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# accept radius
iptables -A INPUT -p udp --dport 1812 -j ACCEPT
iptables -A INPUT -p udp --dport 1813 -j ACCEPT
# drop others
iptables -A INPUT -j DROP
  • billing/secure_01062018.txt
  • Последнее изменение: 3 лет назад
  • alexd