вторник, 26 апреля 2016 г.

Squid и FTP - разрешаем доступ



Дано - офис ходит в интернет через squid, и кому-то прислали ссылку на очень важные архивы, которые лежат на ftp.
Ссылка вида ftp://user:pass@domain.example
Squid режет и не пускает.
Почему так происходит: squid переключается  в режим EPSV (extended passive mode), и, согласно этому режиму, запрашивает у сервера порт, по которому будут приниматься/передаваться данные. Сервер отвечает с номером порта >1024.  Для успешного соединения в данной среде с ftp сервером, нужен режим PASV.

Решаем:


В /etc/squid3/squid.conf
 
ftp_epsv off

И рестартим squid. Однако мне показалось, что файлы отдаются не очень быстро через браузер, и не пускает через Проводник и прочие ужасы оффтопика :)
 
Решаем и это:

В /etc/squid3/squid.conf


acl SSL_ports port 443 21    #(добавим сюда порт 21)
acl Safe_ports port 21       #ftp (не трогаем, если есть)
acl ftp proto FTP            #(создаем ACL для протокола FTP)
http_access allow ftp        #(И разрешаем ACL ftp доступ в интернет)
 
И снова не забудем рестартить squid.

вторник, 28 октября 2014 г.


ISPmanager, пропала страница-заглушка об отключении юзера - валиться просто forbidden. А у нас есть красивая страничка-заглушка, объясняющая что нам надо денежку платить.
Фиксим:


Include /usr/local/ispmgr/etc/ispmgr.inc
<Directory /var/www/mgrtest/data/www/mgrtest.isp>
Options -ExecCGI -Includes
php_admin_value open_basedir "/var/www/mgrtest/data:."
php_admin_flag engine on
</Directory>

воскресенье, 26 октября 2014 г.

iptables -s


Случайно узнал о дичайше полезном ключике iptables -S
Выводит правило в том виде, в котором мы его вносим в фаерволл.
Наконец смогу нормально удалять правила.

воскресенье, 12 октября 2014 г.

понедельник, 5 мая 2014 г.

Защищаем DNS от мини-ddos


Недавно стали DDoS-ить DNS сервер. Некий школьнику своего домена alexcoolshow.ru указал наши DNS, соответственно пришли боты и стали дёргать сервера.
Немного сложности добавляло то, что один запрос вида alexcoolshow, другой AlExCoOlShOw, третий еще как-нибудь играется с регистрами букв.
По умолчанию модуль strings в iptables не умеет работать с регистром, но есть ключик --icase.

Пример правил:

iptables -A INPUT -p tcp -m multiport --dport 53,993 -m string --string 'alexcool' --algo bm --icase -j DROP

iptables -A INPUT -p udp -m multiport --dport 53,993 -m string --string 'alexcool' --algo bm --icase -j DROP


Запрещаем все запросы к DNS (порты 53 и 993), имеющие запрос вида alexcool, независимо от регистра букв. Нагрузка на процессоры  незаметна, в отличие от постоянного дерганья nameserver.

вторник, 21 мая 2013 г.

ISPmanager + nginx + MODx - локально для юзера чиним админку


Набор софта на сервере такой: CentOS 6.4, httpd.itk, nginx, ispmanager pro v. 4.4.10.9
Сайт - example.by, движок MODx.
По умолчанию админка находится по адресу example.by/manager
Открывается же панель управления хостингом ispmanager.
Исправляем:

httpd: Добавляем алиас, отмечено красным
nano /etc/httpd/conf/httpd.conf


<VirtualHost 123.456.789.101:81 >
        ServerName example.by
        AssignUserID example example
        CustomLog /var/www/httpd-logs/example.by.access.log combined
        DocumentRoot /var/www/example/data/www/example.by
        ErrorLog /var/www/httpd-logs/example.by.error.log
        ServerAdmin webmaster@example.by
        ServerAlias www.example.by
        AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
        AddType application/x-httpd-php-source .phps
        php_admin_value open_basedir "/var/www/example/data:."
        php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@example.by"
        php_admin_value upload_tmp_dir "/var/www/example/data/mod-tmp"
        php_admin_value session.save_path "/var/www/example/data/mod-tmp"
        php_admin_value memory_limit "67108864"
        php_admin_value max_execution_time "60"
        Alias /manager/ /var/www/
example/data/www/example.by/manager/
        MaxClientsVHost 8
        RLimitCPU 60
        RLimitMEM 67108864
        RLimitNPROC 10
        ScriptAlias /cgi-bin/ /var/www/
example/data/www/example.by/cgi-bin/

</VirtualHos>
В nginx - комментируем отмеченное красным:

nano /etc/nginx/nginx.conf
server {
                server_name
example.by www.example.by;
                listen
123.456.789.101;
                set $root_path /var/www/
example/data/www/example.by;
                location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
                        root $root_path;
                        access_log /var/www/nginx-logs/
example isp;
                        access_log /var/www/httpd-logs/
example.by.access.log ;
                        error_page 404 = @fallback;
                }
                location / {
                        proxy_pass http://
123.456.789.101;
                        proxy_redirect http://
123.456.789.101/ /;
// пропущено
                location @fallback {
                        proxy_pass http://
123.456.789.101:81;
                        proxy_set_header Host $host;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Forwarded-Proto $scheme;
                        proxy_set_header X-Real-IP $remote_addr;
                }
                # include /usr/local/ispmgr/etc/nginx.inc;
        }



Сохраняем. Далее

/etc/init.d/httpd restart  
/etc/init.d/nginx restart 
Проверяем, радуемся

среда, 15 мая 2013 г.

0day уязвимость в Linux от 2.6.37 до 3.8.10


Сегодня в сети появился рабочий эксплоит для всех версий Linux от 2.6.37 до 3.8.10, который дает возможность локальному пользователю получить права root. Проблема осложняется тем, что в случае с RHEL/CentOS 6 уязвимость была бэкпортирована в ядро 2.6.32, так что владельцам серверов с данными системами так же следует надеяться на скорейший выпуск ядра и исправлением ошибки. Таким образом, уязвимыми оказались все основные выпуски наиболее популярных серверных дистрибутивов: Debian 7.0, RHEL/CentOS 6, Ubuntu 12.04.

UPD: эксплоит для x86_64 / amd64, компилировать надо с -O2 о чем сказано в исходном коде.



Источник:  habrahabr.ru


Временно фиксится так:

sysctl -w kernel.perf_event_paranoid=2
sysctl -w kernel.perf_event_max_sample_rate=-1