LINUX.ORG.RU

Сообщения Dimarius

 

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

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

 ,

Dimarius
()

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

Установлена чистая 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 , хотя они там есть.

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
()

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

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

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

Up.

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

iperf + munin

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

 , ,

Dimarius
()

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

(Админов прошу добавить теги 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 канала инета, скрипт автопереключения на резервный и обратно

Тут есть подобные темы, но «боевых» вариантов так и не нашёл, поэтому можете кидаться яйцами и помидорами, но добавлю свои 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?

Планирую построить следующую схему: клиент - шлюз - 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

Ситема: 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»

# 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 установка серверной части

Сначала настройка 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

Прикупил тут китайский адаптер +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 что-то не так

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

Вот такая штука в /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 зондирование, защита есть?

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

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 или как?

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

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

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

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

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

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

 

Dimarius
()

Router из ubuntu 14.04

Собрал во едино все необходимое, что надо сделать на голой 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» и отчет

Предисловие:
Есть «одаренные» админы почтовых серверов, которые в заголовке 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>

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

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

 

Dimarius
()

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

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

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

 , ,

Dimarius
()

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

Не мог изменить файл параметров /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 подписка на новые темы