LINUX.ORG.RU

Сообщения Dimarius

 

Посоветуйте web морду для видеоархива

Форум — Admin

Посоветуйте пожалуйста web морду для склада mkv файлов, что бы можно было отсортировать их по дате, просмотреть и скачать. Спасибо.

 ,

Dimarius
()

xrdp более одной сесии для одного юзера

Форум — Admin

Установлена чистая debian 9.5 mate, обновлена и доустановлено:

apt update; apt -y upgrade; apt -y autoremove; apt install -y net-tools mc iptables-persistent logwatch traceroute x11vnc openvpn xrdp xorgxrdp firefox-esr; apt -y autoclean; apt -y autoremove
Разрешено всем:
dpkg-reconfigure xserver-xorg-legacy
По умолчанию используется xorg.

В принципе всё отлично работает (раскладки, буферы и т.п.), но сессия для одного пользователя только одна. При попытке подключиться имеющееся подключение киляет, новое подключение видит всё, что было в закрытом подключении.

Есть ли возможность сделать мультисессию для одного пользователя? Спасибо заранее за ответы.

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

Изменение fork=false в /etc/xrdp/xrdp.ini закономерно ничего не меняет.

 ,

Dimarius
()

ls -a не отображает список файлов и папок в $HOME , хотя они там есть.

Форум — General

ubunut 16.04 со всеми обновами, папка пользователя dima шифрована .ecryptfs, но содержимое всегда было видно, а теперь вот такие чудеса:

ls -a /home/dima
итого 32
drwx------ 73 dima dima 24576 окт 30 10:41 .
drwxr-xr-x  6 root root  4096 апр 12  2016 ..
Если указывать полный путь к папкам, то содержимое видно, вот например:
ls -a /home/dima/Музыка
итого 19284
drwxr-xr-x  2 dima dima    4096 окт 17 12:11 .
drwx------ 73 dima dima   24576 окт 30 10:41 ..
-rw-rw-r--  1 dima dima 8773920 окт 17 11:48 doxent_-_Kaaistoep.mp3
-rw-rw-r--  1 dima dima 4996746 окт 17 11:45 septahelix_-_Ukulele_Age.mp3
-rw-rw-r--  1 dima dima 5913122 окт 17 11:49 Vidian_-_the_Morning.mp3
Добавление sudo или через su погоды не меняет. WTF?

 ,

Dimarius
()

Тестирование сети со сбором простой статистики.

Форум — Admin

Имеется ноут с debian9, 3g/4g модем с безлимитным инетом. Задача на удалённом объекте протестировать связь в течение 8-9 часов и собрать статистику: скорость, потери и задержки. Есть возможность задействовать удалённый сервер.

Как вариант вижу использование iperf + ping + ntop. Подскажите пожалуйста, может есть более удобный софт или скрипты толковые для этого. Спасибо.

Up.

Пришёл к следующему решению:

iperf + munin

Первый нагрузит сеть, второй соберёт всю необходимую статистику с плюшками. Задача решена. Всем спасибо.

 , ,

Dimarius
()

Очередной сюрприз от macos 10.14: установка свежей ОС убила corestorage со всеми данными.

Форум — Admin

(Админов прошу добавить теги corestorage и filevault как глобально, так и к моей теме. Спасибо.)

На харде было 4 раздела: efi, macos, win1, win2.

win1 и win2 удалены, на их месте был создан новый HFS+ и на него установлена 10.14, после чего 2 раздел с прошлым маком стал «Not formated». А самая засада в том, что этот 2 раздел был с CoreStorage и любой софт (r-studio, paragon HDM и т.п.) восстановления данных видит только неопознанные блоки. Пароль есть, но толку нет.

1) Пробовал пересоздать gpt:

diskutil umountDisk /dev/disk0
sudo gpt destroy /dev/disk0
diskutil umountDisk /dev/disk0
sudo gpt create -f /dev/disk0
gpt add -b 40 -i 1 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B disk0 
gpt add -b 409640 -i 2 -s 236978175 -t 53746F72-6167-11AA-AA11-00306543ECAC disk0 
Безрезультатно.

2) Пробовал создать новый corestorage раздел с тем же паролем и потом заливал образ раздела на место с помощью dd:

diskutil cs create Macintosh\ HD disk0
diskutil cs createVolume LVGUUID jhfs+ Macintosh\ HD 100%
Безрезультатно, хотя кое-что изменилось, LVG не пропал, но потерял имя и статус стал «инициализация».

Раздел читаем HEX редактором, данных там около 53гиг. Судя по всему информация о corestorage храниться в первом EFI разделе. LGV изначально был создан FileVault.

Есть у кого какие-нить идеи как вынуть инфу?

 ,

Dimarius
()

2 канала инета, скрипт автопереключения на резервный и обратно

Форум — Admin

Тут есть подобные темы, но «боевых» вариантов так и не нашёл, поэтому можете кидаться яйцами и помидорами, но добавлю свои 3 копейки.

Начальные данные:

- основной канал со статическим ip, имя интерфейса ens19

- резервный канал динамический, имя интерфейса wwx0c5b8f279a64 (да, это модем)

- метрика роута для основного канала по умолчанию 100

- метрика роута для резервного канала по умолчанию 700

Что делаем в цикле:

- последовательно добавляем, проверяем и удаляем маршруты до тестируемых узлов, это сделано потому, что при поднятии резервного канала пакеты даже при указании ping -I «net» не пойдут через основной канал

- если все 9 пакетов icmp потерялись, то включаем роут через резервный канал с метрикой 50 и присваиваем переменной gw2 значение off

- если хоть до одного из 3 узлов все ответы пришли, то проверяем переменную gw2, если она on, то на паузу и далее по кругу. Если она off, то удаляем маршрут с метрикой 50 и присваиваем переменной gw2 значение on и далее на круг

Пауза проверки основного канала 20+9, основного (при включенном резервном) 300+9 (сек)

Сам скрипт (/etc/auto_net_switch.sh):

#!/bin/bash

# Основные переменные
# gw2 - шлюз резервного канала, состояние on или off, default=off
# net1 - имя сетевого интерфейса основного канала
# net2 - имя сетевого интерфейса резервного канала
# net1_gw_ip - ip адрес шлюза основного канала
# net2_gw_ip - ip адрес шлюза резервного канала динамический, поэтому определяем его каждый цикл
# net2_ip - ip адрес сетевой карты резервного канала динамический, поэтому определяем его каждый цикл
# ip[1-3] - ip адреса узлов для проверки соединения основного канала

# Изменить нужно только эти 5 переменных:
net1=ens19
net2=wwx0c5b8f279a64
ip1="1.1.1.1"
ip2="2.2.2.2"
ip3="3.3.3.3"

# Далее переменные менять не надо
gw2=off
net1_gw_ip=`ip route | awk '/'$net1'.*static/ { print $3 }'`

# Файл логов
logfile=/var/log/net_switch.log
echo `date +%Y.%m.%d__%H:%M:%S`' Скрипт автопереключения канала запущен' >> ${logfile}
# бесконечный цикл
while [ true ]; do
    net2_gw_ip=`ip route | awk '/default.*'$net2'/ { print $3 }'`
    net2_ip=`ifconfig | grep $net2 -A1 | grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" | awk '{ print $2 }' | cut -f2 -d:`
    route add $ip1 gw $net1_gw_ip
    result1=$(ping -c 3 -I ${net1} -W 1 ${ip1} 2<&1| grep -icE 'unknown|expired|unreachable|time out|100% packet loss')
    route del $ip1
    route add $ip2 gw $net1_gw_ip
    result2=$(ping -c 3 -I ${net1} -W 1 ${ip2} 2<&1| grep -icE 'unknown|expired|unreachable|time out|100% packet loss')
    route del $ip2
    route add $ip3 gw $net1_gw_ip
    result3=$(ping -c 3 -I ${net1} -W 1 ${ip3} 2<&1| grep -icE 'unknown|expired|unreachable|time out|100% packet loss')
    route del $ip3
    if [[ $result1 == 0 && $result2 == 0 && $result3 == 0 ]]; then
        if [[ $gw2 == on ]]; then
	    	route del -net default gw $net2_gw_ip metric 50 dev $net2
	    	ip route flush cache
	    	real_ip=`wget -q -O /dev/stdout http://checkip.dyndns.org/ | awk '{ print $6 }' | cut -d \< -f1`
	    	echo `date +%Y.%m.%d__%H:%M:%S`' Основной канал активирован, внешний ip' $real_ip >> ${logfile}
	    	gw2=off
	fi
	sleep 20
    else
	if [[ $gw2 == off ]]; then
	    	route add -net default gw $net2_gw_ip metric 50 dev $net2
	    	ip route flush cache
	    	real_ip=`wget -q -O /dev/stdout http://checkip.dyndns.org/ | awk '{ print $6 }' | cut -d \< -f1`
	    	echo `date +%Y.%m.%d__%H:%M:%S`' Основной канал деактивирован, включен резевный канал, внешний ip' $real_ip >> ${logfile}
	    	gw2=on
	fi
	sleep 300
    fi
done

Даём права на исполнение и закидываем в автозагрузку крона

sudo chmod 700 /etc/auto_net_switch.sh
sudo sh -c 'echo "@reboot root sleep 120; /etc/auto_net_switch.sh" >> /etc/crontab'

 ,

Dimarius
()

Часть трафика мимо vpn?

Форум — Admin

Планирую построить следующую схему: клиент - шлюз - vpn сервер - инет

Нужно часть трафика по фиксированным ip завернуть по схеме: клиент - шлюз - инет

Шлюз на полноценном ubuntu. Правильно ли это сделать в цепочке forward шлюза:

iptables -A FORWARD -i tun0 ! -d 1.1.1.1 -j ACCEPT
iptables -A FORWARD -i eth0   -d 1.1.1.1 -j ACCEPT
iptables -P FORWARD                      -j DROP

А списки понятное дело через ipset пойдут.

Решение лежит тут, с точностью до наоборот: https://www.wisereport.ru/linux-routing-sites-vpn/

 , ,

Dimarius
()

umount при завершении сеанса пользователя ubuntu 16.04

Форум — Desktop

Ситема: Ubuntu 16.04 x64, Unity

Собственно из-за того, что 2 cifs шары монтируются на старте сессии, при выключении система встаёт колом на стадии umount. Если выключать комп так:

sudo umount /mnt/*
poweroff
то проблем нет, вырубается мгновенно.

1) Из-за того, что директория юзера шифрована, то вариант писать в fstab что-то типа:

//<SERVER_IP>/<SHARE>/     /<MOUNT_POINT>/ cifs           credentials=/home/user/cifs.passwd,noauto,iocharset=utf8    0 0
бесполезно, ибо на стадии загрузки она еще зашифрована.

2) Добавление:

session-cleanup-script=sudo umount /mnt/*
в /etc/lightdm/user.conf закономерно тоже не дало результатов.

4) Эксперименты с upstart типа:

tee ~/.config/upstart/myjob.conf <<EOF
description «My job»
start on desktop-start
stop on desktop-end

script
mount ...
end script
EOF
так же тщетны и бесполезны.

5) Создал /lib/systemd/system/before_shutdown.service:

[Unit]
Description=Script to exec on shutdown

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/home/user/umount_net.sh

[Install]
WantedBy=multi-user.target
/home/user/umount_net.sh:
sudo umount /mnt/*
Завел сервис:
sudo systemctl daemon-reload
sudo systemctl enable before_shutdown.service
sudo systemctl start before_shutdown.service

Не отмонтируются папки ни при завершении сеанса, ни при выключении/перегазрузке.

Основная задача это размонтирование этих шар не только при выключении/перезагрузке, но и при завершении сеанса юзера. Какие есть варианты решения?

up. Решение нашел сам через lightdm всё-таки:

sudo sh -c 'zcat /usr/share/doc/lightdm/lightdm.conf.gz > /etc/lightdm/lightdm.conf'
sudo sh -c 'echo "[SeatDefaults]" >> /etc/lightdm/lightdm.conf'
sudo sh -c 'echo "session-cleanup-script=sudo umount /mnt/*" >> /etc/lightdm/lightdm.conf'
Теперь всё красиво!

 ,

Dimarius
()

HFS+, в mount не работает опция «uid=1000,gid=1000»

Форум — Admin
# mount -t hfsplus -o rw,force,uid=1000,gid=1000 /dev/sdb2 /media/500
# ls -hl /media/500
итого 8,2M
drwxrwxr-x 1 root   80   86 сен  7 16:18 Applications
drwxr-xr-x 1 root root   39 авг 26  2015 bin
-rw-r--r-- 1  501 root 332K сен 27  2013 boot
drwxrwxr-t 1 root   80    2 авг 17  2012 cores
dr-xr-xr-x 1 root root    2 авг 17  2012 dev
lrwxr-xr-x 1 root root   11 окт 12  2012 etc -> private/etc
drwxr-xr-x 1   99   99    7 сен 30  2014 Extra
dr-xr-xr-x 1 root root    2 сен 30  2014 home
drwxr-xr-x 1 root root   65 май  6  2016 Library
-rw-r--r-- 1 root root 7,9M мар 19  2015 mach_kernel
dr-xr-xr-x 1 root root    2 сен 30  2014 net
drwxr-xr-x 1 root root    2 авг 17  2012 Network
drwxr-xr-x 1 root root    6 окт 12  2012 private
drwxr-xr-x 1 root root   65 авг 26  2015 sbin
drwxr-xr-x 1 root root    3 авг  7  2015 ssud_installation
drwxr-xr-x 1 root root    4 окт 12  2012 System
lrwxr-xr-x 1 root root   11 окт 12  2012 tmp -> private/tmp
drwxr-xr-x 1 root   80    5 сен 21  2015 Users
drwxr-xr-x 1 root root   11 авг 11  2015 usr
lrwxr-xr-x 1 root root   11 окт 12  2012 var -> private/var
drwxrwxrwt 1 root   80    5 сен 12 12:30 Volumes

Соответственно запись у рута есть куда угодно. Для других шар опции uid=1000,gid=1000 работают без проблем. Ограничение работает только с HFS+? Или еще какой «костыль» надо? ))

ОС ubuntu 16.04 со всеми обновами, HFS+ создана макосью 10.6.8

Нашел решение похожее на костыль, зато работает:

sudo apt-get install bindfs
mkdir /home/"user"/500
sudo bindfs -u 1000 -g 1000 /media/500 /home/"user"/500
В результате в папку /home/«user»/500 имеем запись от пользователя с id 1000:
$ ls -hnl ~/500
итого 8,2M
drwxrwxr-x 1 1000 1000   86 сен  7 16:18 Applications
drwxr-xr-x 1 1000 1000   39 авг 26  2015 bin
-rw-r--r-- 1 1000 1000 332K сен 27  2013 boot
drwxrwxr-t 1 1000 1000    2 авг 17  2012 cores
dr-xr-xr-x 1 1000 1000    2 авг 17  2012 dev
lrwxr-xr-x 1 1000 1000   11 окт 12  2012 etc -> private/etc
drwxr-xr-x 1 1000 1000    7 сен 30  2014 Extra
dr-xr-xr-x 1 1000 1000    2 сен 30  2014 home
drwxr-xr-x 1 1000 1000   65 май  6  2016 Library
-rw-r--r-- 1 1000 1000 7,9M мар 19  2015 mach_kernel
dr-xr-xr-x 1 1000 1000    2 сен 30  2014 net
drwxr-xr-x 1 1000 1000    2 авг 17  2012 Network
drwxr-xr-x 1 1000 1000    6 окт 12  2012 private
drwxr-xr-x 1 1000 1000   65 авг 26  2015 sbin
drwxr-xr-x 1 1000 1000    3 авг  7  2015 ssud_installation
drwxr-xr-x 1 1000 1000    4 окт 12  2012 System
lrwxr-xr-x 1 1000 1000   11 окт 12  2012 tmp -> private/tmp
drwxr-xr-x 1 1000 1000    5 сен 21  2015 Users
drwxr-xr-x 1 1000 1000   11 авг 11  2015 usr
lrwxr-xr-x 1 1000 1000   11 окт 12  2012 var -> private/var
drwxrwxrwt 1 1000 1000    5 сен 12 12:30 Volumes

 ,

Dimarius
()

teamspeak установка серверной части

Форум — Admin

Сначала настройка iptables:

apt-get install iptables-persistent
Система предложит сохранить имеющиеся iptables-правила в файлы /etc/iptables/rules.v4 для IPv4 - сохраняем, и /etc/iptables/rules.v6 для IPv6 - не используется, можно не сохранять. Зарежем спамеров и брутеров, открываем файл /etc/iptables/rules.v4 очищаем и вставляем:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:BAN - [0:0]

-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -m state --state INVALID -j DROP
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP

-A INPUT -p tcp --dport 22 -s IP_для_администрирования   -j ACCEPT

-A INPUT -p udp --dport 9987  -m connlimit --connlimit-above 3  --connlimit-mask 32  -j DROP
-A INPUT -p udp --dport 9987  -m connlimit --connlimit-above 50 --connlimit-mask 0   -j DROP
-A INPUT -p tcp --dport 30033 -m connlimit --connlimit-above 1  --connlimit-mask 32  -j DROP
-A INPUT -p tcp --dport 30033 -m connlimit --connlimit-above 2  --connlimit-mask 0   -j DROP

-A INPUT -p udp -m udp --dport 9987 -m recent --rcheck --name baned                              -j DROP
-A INPUT -p udp -m udp --dport 9987 -m recent --rcheck --name grayed --seconds 600 --hitcount 20 -j BAN
-A INPUT -p udp -m udp --dport 9987 -m recent --rcheck --name grayed --seconds 300 --hitcount 10 -j DROP
-A INPUT -p udp -m udp --dport 9987 -m recent --set    --name grayed                             -j ACCEPT

-A INPUT -p tcp -m tcp --dport 30033 -m recent --rcheck --name baned                              -j DROP
-A INPUT -p tcp -m tcp --dport 30033 -m recent --rcheck --name grayed --seconds 600 --hitcount 20 -j BAN
-A INPUT -p tcp -m tcp --dport 30033 -m recent --rcheck --name grayed --seconds 300 --hitcount 10 -j DROP
-A INPUT -p tcp -m tcp --dport 30033 -m recent --set    --name grayed                             -j ACCEPT

-A BAN                               -m recent --set    --name baned                              -j DROP


COMMIT
По лимитам файлов еще не тестировал, скорее всего значения надо слегка изменить. Возможно вам еще придётся допилить правила для:
Порт для передачи запросов на сервер (TCP): 10011
License port (TCP): 2008
Weblist port (UDP): 2010
DNS port (TCP): 41144

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

iptables-restore < /etc/iptables/rules.v4
Проверяем правила:
iptables -L -v

Teamspeak

adduser ts3server
cd /home/ts3server/
wget http://dl.4players.de/ts/releases/3.0.13.6/teamspeak3-server_linux_amd64-3.0.13.6.tar.bz2
tar xvjf *.tar.bz2
cd teamspeak3-server_linux_amd64
chmod +x ts3server_minimal_runscript.sh
chmod +x ts3server_startscript.sh
chmod +x ts3server
./ts3server_minimal_runscript.sh
Обязательно сохраняем токен и пароль:
------------------------------------------------------------------
                      I M P O R T A N T                           
------------------------------------------------------------------
               Server Query Admin Account created                 
         loginname= "serveradmin", password= "*********"
------------------------------------------------------------------
      ServerAdmin privilege key created, please use it to gain 
      serveradmin rights for your virtualserver. please
      also check the doc/privilegekey_guide.txt for details.

       token=*****************************************
------------------------------------------------------------------
Теперь для правильной настройки crontab вам понадобится перейти в каталог выше и назначить пользователя ts3server владельцем файлов TeamSpeak сервера:
cd /home
chown -R ts3server:ts3server ts3server
Автозапуск по перезагрузке в crontab:
EDITOR="nano"
export EDITOR
crontab -u ts3server -e
Добавим строку:
@reboot ts3server /home/ts3server/teamspeak3-server_linux_amd64/ts3server_startscript.sh start
Всё, паролим доступ к серверу из GUI и наслаждаемся ))) Частично взято отсюда - https://habrahabr.ru/post/193378/

 ,

Dimarius
()

Заводим 148f:760b Ralink MT7601U в ubuntu 14.04

Форум — Admin

Прикупил тут китайский адаптер +360 на али, но заводится он с пары конкретных пинков ))) Важно!! Инструкция именно для 148f:760b :

$ lsusb | grep 76
Bus 001 Device 002: ID 148f:760b Ralink Technology, Corp. MT7601U Wireless Adapter
Итак, что-то там для ядра ))) :
sudo apt-get install --reinstall linux-headers-generic build-essential
После этого перезагрузимся, а то модули установятся в старое ядро или указывайте нужное ядро руками. Далее скачиваем патченые дрова (оригинал не собирался, разбираться лень):
wget http://www.lewiscowles.co.uk/dls/MT7601U-14.04-patched.tar -O - | tar -x
cd MT7601U-14.04-patched
Допатчиваем, в файле ./common/rtusb_dev_id.c дописываем после блока:
#ifdef MT7601U
    {USB_DEVICE(0x148f,0x6370)}, /* Ralink 6370 */
    {USB_DEVICE(0x148f,0x7601)}, /* MT 6370 */
вот такую строку:
{USB_DEVICE(0x148f,0x760b)}, /* 360 wifi */
Собираем и устанавливаем модуль:
make
make install
modprobe -v mt7601Usta
Копируем драйвер в yнужное место с нужным названием:
cp MT7601U-14.04-patched/mcu/bin/MT7601.bin /lib/firmware/mt7601u.bin
В моём случае модуль после перезагрузки пропал, добавил его в /etc/rc.local:
modprobe -v mt7601Usta
После этого перезагружаемся и ifconfig -a выдал заветные:
ra0       Link encap:Ethernet  HWaddr  
          inet6 addr:  Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:189 errors:0 dropped:0 overruns:0 frame:0
          TX packets:84 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:41129 (41.1 KB)  TX bytes:8736 (8.7 KB)

 ,

Dimarius
()

ModSecurity что-то не так

Форум — Admin

ModSecurity

Пробовал вот такое правило:

SecRule REQUEST_URI "../" "phase:2,id:55,t:none,t:urlDecode,t:lowercase,t:normalizePath,deny"
Оно блокирует вообще всё.

Вариант:

SecRule REQUEST_URI "../" "phase:2,id:55,t:none,t:urlDecode,t:lowercase,t:normalizePath"
А это наоборот ничего не делает, кроме записи в лог.

Подскажите, где ошибка? Как правильно сделать замену "../" в строке запроса на «/» например?

 ,

Dimarius
()

Атака на apache2 /etc/passwd%00.png&p_id=60

Форум — Admin

Вот такая штука в /var/log/apache2/access.log:

//?lang=../../../../../../../../../etc/passwd%00.png&amp;p_id=60 HTTP Response 200

Уж больно похоже на поиск уязвимостей - http://image.slidesharecdn.com/webserversapplicationhacking-141222113611-conv...

Самая засада в том, что apache2 этот запрос в отличие от сотни подобных отработал: HTTP Response 200. Как можно защититься от подобного в дальнейшем?

 ,

Dimarius
()

http зондирование, защита есть?

Форум — Admin

Периодически появляется вот такой лог:

400 Bad Request
       /: 10 Time(s)
       /%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd: 1 Time(s)
       /%5C%5C..%2f..%2f..%2f..%2fboot.ini%%20../: 1 Time(s)
       /%NETHOOD%/: 1 Time(s)
       /static/../../../../../../../../../etc/passwd.: 1 Time(s)
       @localhost: 1 Time(s)
       HTTP/1.1: 1 Time(s)
403 Forbidden
       /cgi-bin/index.php: 24 Time(s)
       /cgi-bin/status: 14 Time(s)
       /cgi-bin/test: 13 Time(s)
.......
404 Not Found
       /index.php: 23 Time(s)
       /scripts/index.php: 17 Time(s)
       /dasdec/dasdec.csp: 16 Time(s)
       /admin/admin.php: 2 Time(s)
........
Явное зондирование. Есть ли способ защиты от этих сканеров? Fail2ban может перенастроить?

 , , ,

Dimarius
()

sarg ротация отчетов, опция lastlog или как?

Форум — Admin

Дано: Полностью настроенная боевая система, sarg делает отчеты каждый день и каждую неделю правилами крона, а также ежемесячный отчет, после которого происходит ротация логов squid3.

Загвоздка: web папка с отчетами через несколько месяцев может занять всё свободное пространство и без того небольшого харда.

Задача: Иметь актуальные web отчеты sarg за последние (например) 3 месяца.

Предполагаемое решение: Установить в конфиге sarg -

lastlog 109
109 складывается за 3 месяца из: 92 отчетов ежедневных + 14 еженедельных + 3 месячных.

Правильное решение?

 

Dimarius
()

Router из ubuntu 14.04

Форум — Admin

Собрал во едино все необходимое, что надо сделать на голой ubuntu 14.04.4, что бы она раздавала интернет для локалки. Всё это работает на боевой машине.

После установки настраиваем сеть: eth1 - внутренний интерфейс, eth0 - внешний

Разрешим направление пакетов:

sudo echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
Для вступления в силу до перезагрузки:
sudo sysctl -w net.ipv4.ip_forward="1"

Установим необходимые и удобные пакеты:

sudo apt-get install -y dnsmasq mc iptables-persistent sysv-rc-conf

Настроим фаервол не только на проброс локалки наружу, но и необходимые порты снаружи внутрь:

sudo mcedit /etc/iptables/rules.v4:
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]

-A PREROUTING  -p tcp --source [ip/mask внешние адреса для доступа] -d [ip внешнего интерфейса eth0] --dport [внешний порт] -j DNAT --to [ip внутренней машины]:[порт внутренней машины]
-A POSTROUTING -p tcp -d [ip внутренней машины]  -j MASQUERADE
# 2 правила для проброса порта из-вне
-A POSTROUTING -o eth0 -j MASQUERADE
# последнее для доступа локальных клиентов наружу

COMMIT

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]

-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth1 -j ACCEPT
-A FORWARD -i eth1 -j ACCEPT
-A FORWARD -o eth1 -j ACCEPT
# последние 2 правила для прохождения ответных пакетов локальным клиентам

COMMIT
Применяем правила и рестарт фаервола:
 sudo iptables-restore < /etc/iptables/rules.v4
 sudo service ufw restart
 
Конфиг DHCP (при необходимости) /etc/dnsmasq.conf добавляем в конец:
 interface=eth1
 listen-address=192.168.0.1 
 bind-interfaces
 dhcp-range=192.168.0.20,192.168.0.50,24h
 dhcp-option=3,192.168.0.1 # 3 опция это шлюз, 6 опция - dhs через запятую
 
Т.к. у меня сеть настроена через графику NM (NetworkManager) служба dnsmasq пытается стартовать раньше сети, но тщетно, поэтому выключаем dnsmasq из автозагрузки:
sudo sysv-rc-conf
Прописываем старт dnsmasq например в /etc/rc.local с задержкой 5 сек (если служба dnsmasq после загрузки лежит, то можно это значение увеличить):
sleep 5; service dnsmasq start

Добавим webmin для удобства просмотра логов и не только:

echo deb http://download.webmin.com/download/repository sarge contrib >> /etc/apt/sources.list
cd /root
wget http://www.webmin.com/jcameron-key.asc && apt-key add jcameron-key.asc && rm jcameron-key.asc && apt-get update && apt-get install -y webmin
Для просмотра нагрузки на сеть установим ntop:
apt-get install -y ntop
Просмотр статистики ntop в веб морде на 3000 порту. Мне больше всего нравится: Summary -> Network Load

Вроде всё ))) Удачи.

 , ,

Dimarius
()

Фильтр лога postfix по «Host not found» и отчет

Форум — Admin

Предисловие:
Есть «одаренные» админы почтовых серверов, которые в заголовке HELO указывают хрен знамо что. Таких мало, но как оказалось не только наши, но и америкосы так болеют.
В результате почтовик их шлёт куда подальше как спамеров, по сути:
mail postfix/smtpd: NOQUEUE: reject: RCPT 450 4.7.1 Helo command rejected: Host not found;

Задача:
Выявить этих нерадивых без строк с явным спамом, хотя бы раз в сутки.

Что придумал:
1) Фильтруем лог по «Helo command rejected: Host not found»
2) В найденном фильтр по дате «$(date +»%b %d")"
3) В оставшемся удаляем строки с «unknown» т.к. ip адреса без А записей это точно спам
4) В файл и на мыло

cat /var/log/mail.log | grep "Helo command rejected: Host not found" | grep "$(date +"%b %d")" |  grep -v -e "unknown" > /home/user/mail_grep.log
(echo "Subject:mail_grep $(date +"%Y %b %d %R:%S")"; cat /home/user/mail_grep.log) | sendmail root


Вопросы:
Может есть более красивое решение? Каковы мои ошибки/недочеты? Предложения? :)

 ,

Dimarius
()

postfix неавторизованный доступ по ip и для конкретных <from>

Форум — Admin

Собственно подобная тема уже есть - Таблица доступа в Postfix - совмещение email и IP-адреса, но там все решилось авторизацией. В моём случае есть устройства типа МФУ, которые не имеют возможности не то что SSL, но и пароль не передают. Можно конечно локальный почтарь поднять, но это явный костыль. Можно завернуть с помощью iptables свободный порт, но это тоже как-то некрасиво.

Собственно вопрос: есть ли возможность в postfix разрешить неавторизованный доступ с статического ip для конкретного <from>, что бы остальные с этого ip не устраивали спам атаки?

 

Dimarius
()

nautilus тормоза с сетевыми шарами

Форум — Admin

Собственно давно раздражала задержка при подключении ко всем сетевым шарам в nautilus на ubuntu 14.04, немного курил форумы, но решения там не нашел и забил. Но тут на досуге пробовал 16.04 с KDE и там такой проблемы нет, но там dolphin по умолчанию. Эксперимента ради установил dolphin на 14.04 и nautilus стал работать как положено.

sudo apt-get install dolphin
Вот где собака... оказывается ))) Скорее всего не в самом дельфине дело, а в устанавливаемых с ним пакетах, но мне лень вычислять.

 , ,

Dimarius
()

Модуль xt_recent не меняется параметр ip_list_tot

Форум — Admin

Не мог изменить файл параметров /sys/module/xt_recent/parameters/ip_list_tot. Его править в результате не надо :) Оговорюсь сразу ОС использовала один контейнер lxc, в котором производились эксперименты с iptables и в котором собственно появилась потребность изменить этот параметр, а как оказалось он берется из параметров «гипервизора».

В результате для достижения цели надо:

1) Отключить все правила iptables использующие модуль «recent» или погасить их вовсе

2) Отключить модуль, применить параметр, включить модуль:

# modprobe -r xt_recent
# modprobe xt_recent ip_list_tot=5000000
# modprobe xt_recent
3) Но это работает до ребута ОС, для решения этого казуса добавил в /etc/rc.local строку:
modprobe -r xt_recent && modprobe xt_recent ip_list_tot=5000000 && modprobe xt_recent

Собственно рабочее решение. Но какой-то осадок остался, что это временный костыль. Может у кого есть идеи для более красивой реализации?

 ,

Dimarius
()

RSS подписка на новые темы