Убунту Server & Debian. Полезности

[ Версия для печати ]
Добавить в Telegram Добавить в Twitter Добавить в Вконтакте Добавить в Одноклассники
  [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]
kredetz
8.02.2016 - 05:19
Статус: Offline


W T F ?

Регистрация: 23.02.13
Сообщений: 1887
8
Так как на домашнем NAS юзаю Ubuntu Server 14.04, пришлось немало поразбираться с некоторыми специфическими настройками. Всё найдено на просторах инета и просто сведено в один текст. Только проверенные решения, лично опробованные на Ubuntu Server и частично на Debian. Авторство не моё, всё честно скопипащено, пруфлинков нет. Вдруг кому-нибудь пригодится.

Transmission

Проблема - нет подключения к веб-интерфейсу или с помощью Transmission Remote Gui после перезагрузки или выключения сервера.

Решение – привести файл /etc/network/interfaces к виду

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp


Настройка отправки почты через терминал

Итак, нужно иметь почтовый ящик, например, на GMail. Все письма, рассылаемые через ssmtp будут приходить адресату так, как будто они были отправлены с ящика Google. Предположим, что у нас есть ящик [email protected]. Будем проводить настройки с использованием этого почтового ящика.

Устанавливаем программу ssmtp. В Debian для этой цели можно использовать команду:

$ sudo apt-get install ssmtp

После установки нужно настроить файл /etc/ssmtp/ssmtp.conf. Вот как он должен выглядеть, чтобы ssmtp работал через GMail:

[email protected]

mailhub=smtp.gmail.com:465

AuthUser=myemail
AuthPass=пароль_к_почтовому_ящику

rewriteDomain=gmail.com

hostname=gmail.com

FromLineOverride=YES

UseTLS=YES


Далее нужно настроить файл /etc/ssmtp/revaliases. В нем следует прописать тех пользователей, от которых возможна отправка почты. Обычно прописывается пользователь root и пользователь www-data чтобы веб-сервер имел возможность отправлять почту. Содержимое этого файла должно быть следующим:

root:[email protected]:smtp.gmail.com:465
www-data:[email protected]:smtp.gmail.com:465


На этом настройку можно считать законченой.

Отправка уведомления о загрузке сервера

Даже о таком важном событии, как внеплановые перезагрузки, некоторые администраторы узнают, случайно проверив uptime или last. Немедленно быть в курсе событий поможет следующая строка над «exit» в /etc/rc.local:

M="Booting complete on $(hostname)."; echo $M | mail -s "$M" admins

Уведомление об авторизации по SSH

это реализовано посредством прописывания в /etc/ssh/sshrc следующего:

echo $USER $(date) $SSH_CLIENT | mail -s "ssh login" [email protected]

Fail2ban

Итак. Каждый администратор сервера на Debian должен выполнить команду:
debian:~# aptitude install fail2ban
После установки и запуска fail2ban мы получаем намного более защищенный ssh. После 3х попыток неправильного ввода пароля с одного ip адреса — этому ip адресу будет закрыт 22й порт на сервере. Но это всё по умолчанию.
Сейчас же мы будем настраивать fail2ban.
Основная часть настроек хранится в конфигурационном файле /etc/fail2ban/jail.conf
Рассмотрим некоторые директивы:
ignoreip = 127.0.0.1 # указываем, на какие ip адреса, маски или хостнеймы не распространяется действие fail2ban
bantime = 600 # указываем сколько действует бан в секундах. Я указываю либо огромное число, либо -1 — что значит «навечно».
maxretry = 3 # через сколько неправильных попыток ввода пароля банить гада
destemail = root@localhost # на какой адрес слать уведомления о банах. Можно поменять, но нужно будет написать правила для писем.
banaction = iptables-multiport # через что банить. Если у вас нет shorewall, то менять это значение я не рекомендую.
mta = sendmail # через что отправлять письма админу о банах. Exim/sendmail/etc. Пишем тут тот MTA, который стоит у вас на сервере.
Чуть ниже следуют секции конфига, которые отвечают за блокировку тех, кто брутфорсит что-либо. Конечно же, здесь есть почти все сервисы, которые можно брутфорсить) списочек будет чуть ниже. Не изменяйте эти секции ни в коем случае! Те jails, которые вам необходимо включить — дописывайте в файл /etc/fail2ban/jail.local в форме:
[jail_name]
enabled = true

Например:
[apache]
enabled = true

Рассмотрим параметры секции [ssh] (который отвечает за бан тех, кто пытается сбрутить ssh-аккаунт).
enabled = true # включаем сервис.
port = ssh # указываем на каком порту/портах висит сервис. Некоторые умеют определяться автоматически по имени сервиса — вот как ssh
filter = sshd # указываем фильтр, по которому парсятся логи. Не следует менять. Вообще же можно написать свои фильтры и использовать их для любого вашего сервиса. Именно этот порт в нашем случае будет блокироваться для брутфорсера через iptables.
logpath = /var/log/auth.log # какой лог парсить. Нужно на тот случай, если вы изменяли дефолтный путь до лога сервиса
maxretry = 6 # количество попыток, после которых человека или бота банят.
Какие есть шаблоны по умолчанию: ssh, pam-generic, xinetd-fail, ssh-ddos, apache (неверные авторизации в каталогах, защищенных через .htpasswd), apache-noscript, apache-overflows, vsftpd, proftpd, wuftpd, postfix, couriersmtp, courierauth, sasl, named-refused-udp, named-refused-tcp.
Не забываем перезапускать fail2ban после изменения конфигурации командой /etc/init.d/fail2ban restart
Этого вполне достаточно, чтобы окопаться от брутфорса по самое «нехочу». Если вы поняли систему работы fail2ban — вы легко сможете написать скрипт, который будет защищать вас от http-ddos, udp-ddos, исходящего спама и много другого. Правила писать очень просто, нужно лишь указать правильный regexp в файле /etc/fail2ban/filter.d/имя_фильтра.conf
Тем более, что там есть примеры.
Только не дописывайте свои сервисы c опций enabled = true в jail.conf. Пишите шаблон в jail.conf, а включайте свой jail уже в jail.local.


Автоматическое монтирование usb устройств при подключении, размонтирование по нажатию клавиши питания

Автоматическое монтирование было решено с помощью настройки udev, для чего было создано правило /etc/udev/rules.d/10-automount.rules с такими параметрами:

SUBSYSTEM=="block", KERNEL=="sd[b-z][0-9]", ACTION=="add", RUN+="/bin/mount -o iocharset=utf8,codepage=866,uid=1000 /dev/%k /mnt/flash"
SUBSYSTEM=="block", KERNEL=="sd[b-z][0-9]", ACTION=="remove", RUN+="/bin/umount /mnt/flash"


Так как кнопка питания практически не используется, было решено повесить на неё задачу размонтирования подключенных USB-дисков. Для начала нужно отредактировать файл /etc/systemd/logind.conf и заменить

#HandlePowerKey=poweroff
на
HandlePowerKey=ignore - и не забыть раскомментировать

Затем привести /etc/acpi/events/powerbtn к виду:

event=button[ /]power
action=/etc/acpi/powerbtn.sh


И в завершении /etc/acpi/powerbtn.sh отредактировать до:

#!/bin/sh
umount /dev/sdb1


Выполнить:

sudo udevadm control --reload-rules
sudo service systemd-logind restart



Для !Debian! Если не монтируются ntfs-диски, то apt-get install ntfs-3g


Как установить Dropbox на Ubuntu Server

В консоли сервера пишем следующую команду:
wget -O dropbox.tar.gz "http://www.dropbox.com/download/?plat=lnx.x86"
Если у вас 64-битная версия Ubuntu, то нужна следующая команда:
wget -O dropbox.tar.gz "http://www.dropbox.com/download/?plat=lnx.x86_64"
После нужно распаковать архив:
tar -xvzf dropbox.tar.gz
И запустить Dropbox:
~/.dropbox-dist/dropboxd
После этого будет отображаться прогресс установки, где будет нужная нам ссылка:
This client is not linked to any account...
Please visit *тут ссылка* to link this machine.

Вам нужно будет перейти по ссылке, что бы привязать свой сервер к списку устройств, которым разрешён доступ в ваш аккаунт Dropbox. После перехода по ссылке в консоли будет следующее сообщение:
Client successfully linked, Welcome Ubuntovod!
После этого начнётся синхронизация. Прервём её, что бы настроить демона.

Настройка Daemon для Dropbox

Создадим файл /etc/init.d/dropbox со следующим содержимым:

#!/bin/sh
#dropbox service
DROPBOX_USERS="Ubuntovod"

DAEMON=.dropbox-dist/dropboxd

start() {
echo "Starting dropbox..."
for dbuser in $DROPBOX_USERS; do
HOMEDIR=`getent passwd $dbuser | cut -d: -f6`
if [ -x $HOMEDIR/$DAEMON ]; then
HOME="$HOMEDIR" start-stop-daemon -b -o -c $dbuser -S -u $dbuser -x $HOMEDIR/$DAEMON
fi
done
}

stop() {
echo "Stopping dropbox..."
for dbuser in $DROPBOX_USERS; do
HOMEDIR=`getent passwd $dbuser | cut -d: -f6`
if [ -x $HOMEDIR/$DAEMON ]; then
start-stop-daemon -o -c $dbuser -K -u $dbuser -x $HOMEDIR/$DAEMON
fi
done
}

status() {
for dbuser in $DROPBOX_USERS; do
dbpid=`pgrep -u $dbuser dropbox`
if [ -z $dbpid ] ; then
echo "dropboxd for USER $dbuser: not running."
else
echo "dropboxd for USER $dbuser: running (pid $dbpid)"
fi
done
}

case "$1" in

start)
start
;;
stop)
stop
;;
restart|reload|force-reload)
stop
start
;;
status)
status
;;
*)
echo "Usage: /etc/init.d/dropbox {start|stop|reload|force-reload|restart|status}"
exit 1

esac

exit 0


Обратите внимание на третью строку. Вместо Ubuntovod введите свой логин на сервере.
Дадим скрипту нужные права на запуск и поместим в автозагрузку:
sudo chmod +x /etc/init.d/dropbox && sudo update-rc.d dropbox defaults
После этого вы можете управлять Dropbox следующими командами:
• sudo service dropbox start - Запуск Dropbox
• sudo service dropbox stop - Остановка Dropbox
• sudo service dropbox restart - Перезапуск Dropbox
• sudo service dropbox status - Состояние Dropbox
Всё, установка окончена.

Автозапуск консольного Яндекс.Диска

Ставим яндекс диск консольный и делаем скрипт автозапуска (см ниже).
Итак — содержание скрипта автозапуска yandex_autostart.sh тривиально:

#!/bin/sh
yandex-disk start --dir=/home/adept/srv_storage/YandexDisc --auth=/home/adept/.config/yandex-disk/passwd


start —dir путь, куда диск качает файлы
—auth путь, где лежит сгенеренный после инсталла токен с вашими паролями / логинами
Далее топаем в крон crontab -e (без sudo!)

@reboot sleep 60 && /home/adept/yandex_autorun.sh # тут путь до вашего скриптика

Не забываем так же chmod +x путь_до_скрипта(делаем его исполняемым)
После перезагрузки крон выждет 60 секунд и пнет ваш скрипт, запустив диск.
Мишшн комплит!

Это сообщение отредактировал kredetz - 8.02.2016 - 05:37
 
[^]
Yap
[x]



Продам слона

Регистрация: 10.12.04
Сообщений: 1488
 
[^]
Shizo
8.02.2016 - 05:54
1
Статус: Offline


Юморист

Регистрация: 27.07.11
Сообщений: 553
Позeлeнил, потому как хотелось бы, чтобы подобных тем было больше.
Но не понял, ТС, в первом абзаце - причём здесь Transmission, если Вы занимаетесь управлением сетевым интерфейсом? И, любопытства ради, просто "auto eth0" эффекта не давало?
 
[^]
kredetz
8.02.2016 - 05:59
0
Статус: Offline


W T F ?

Регистрация: 23.02.13
Сообщений: 1887
Transmission-daemon, судя по всему, пытается стартануть на порту 9091 раньше чем поднимается сеть, из-за этого и возникает глюк, что, вроде бы, демон запущен, но до веб-интерфейса и по TRG достучаться до него не получается. Ичсх, вот именно эта настройка interfaces решает проблему.
 
[^]
Squ1sh
8.02.2016 - 18:16
0
Статус: Offline


echo 1 > /etc/init.d/status

Регистрация: 4.06.14
Сообщений: 321
Transmission - вроде как торрент клиент? Одно время хотел его натянуть, да чет подзапарился, да и торрентами я не особо-то и увлекаюсь. За fail2ban позеленю отдельно, ибо тема нужная (не все же на авось надеяться). Единственное что не вкурил - shorewall. Надо погуглить что за зверь.
 
[^]
АзъЕсмь
8.02.2016 - 18:25
0
Статус: Offline


:-)

Регистрация: 5.12.15
Сообщений: 2248
Цитата (kredetz @ 8.02.2016 - 05:19)
Так как на домашнем NAS юзаю UbЮТУ Server 14.04, пришлось немало поразбираться... Вдруг кому-нибудь пригодится.


Можно тупой вопрос от среднестатистического юзверя который сам в состоянии закатать винду на пустой жестак, туда же дрова и вкинуть пакет софта на домашний комп и в случае проблем которые не связаны с физическим разрушением харда все реинсталить с сейвой данных. - а зачем?
 
[^]
kredetz
9.02.2016 - 11:05
0
Статус: Offline


W T F ?

Регистрация: 23.02.13
Сообщений: 1887
Цитата (АзъЕсмь @ 8.02.2016 - 18:25)
Цитата (kredetz @ 8.02.2016 - 05:19)
Так как на домашнем NAS юзаю UbЮТУ Server 14.04, пришлось немало поразбираться...  Вдруг кому-нибудь пригодится.


Можно тупой вопрос от среднестатистического юзверя который сам в состоянии закатать винду на пустой жестак, туда же дрова и вкинуть пакет софта на домашний комп и в случае проблем которые не связаны с физическим разрушением харда все реинсталить с сейвой данных. - а зачем?

Что значит "зачем"? Потому что мне нужно определенным образом сконфигурированное домашнее файловое хранилище, по совместительству являющееся торренто-качалкой-раздавалкой, синхронизатором яндекс.диска и дропбокса, DLNA-сервером. Также я хочу защитить эту машинку от брутафорса, т.к. она смотрит иногда 22-м портом в инет, хочу чтобы машинка оповещала меня по почте о том, что она включилась. Также планирую прикрутить OwnCloud. И этот NAS построен на базе mini-ITX материнской платы на Atom с пассивным охлаждением, к которому я таки прикрутил очень тихий вентилятор сверху, который дует через заводскую перфорацию верхней крышки; с двумя жесткими дисками 750 и 500Gb, которые вынесены в отдельную корзину, т.к. в mini-ITX корпусе места нет для двух, и даже когда был только один диск, всё равно снаружи греется намного меньше; оперативной памяти 2Gb. Вся эта конструкция практически бесшумная, стоит на шкафчике в прихожей, работает 24\7 и никому не мешает.

Это сообщение отредактировал kredetz - 9.02.2016 - 11:08

Убунту Server & Debian. Полезности
 
[^]
kredetz
28.06.2016 - 00:26
0
Статус: Offline


W T F ?

Регистрация: 23.02.13
Сообщений: 1887
Немного дополню.

Настройка автозапуска консольного Dropbox (другой вариант)

wget https://www.dropbox.com/download?dl=packages/dropbox.py (скачать в домашнюю папку)
Полученный файл переименовать в dropbox.py, если имя будет другое.
Создать в домашней папке файл dbstart.sh с содержанием

#!/bin/sh
### BEGIN INIT INFO
# Provides: myscript
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 1 0 6
# Short-Description: simple description.
### END INIT INFO
python dropbox.py start


Затем делаем получившийся скрипт исполняемым, для этого выполняем

сhmod +x dropbox.py

Добавляем автозапуск скрипта после загрузки системы, выполняем

crontab -e

добавляем задание

@reboot sleep 60 && /home/user/dbstart.sh

Сохраняем, выходим.

Управление Dropbox:

python dropbox.py status
python dropbox.py start
python dropbox.py stop

Настройка отправки почты gmail через консоль (другой вариант)


sudo apt-get install msmtp
sudo apt-get install mutt


Листинг 1. (Настройка msmtp). системный файл конфигурации /etc/msmtprc

account default
host smtp.gmail.com
port 587
auth on
tls on
tls_starttls on
tls_certcheck off
user [email protected]
password *************
from [email protected]


Организация взаимодействия msmtp с mutt
Теперь необходимо довести до сведения почтового клиента mutt информацию о том, что при отправке почты он должен обращаться к программе msmtp. Для этого потребуется внести некоторые изменения в соответствующий файл конфигурации, как показано в листинге 2.

Листинг 2. Строки, которые необходимо добавить (или откорректировать) в файл конфигурации ~/.muttrc

set realname='Debian'
set [email protected]
set sendmail="/usr/bin/msmtp"
set envelope_from=yes
set from = [email protected]
set imap_user = [email protected]
set imap_pass = **********

# don't let your firewall kill your idle connection
set imap_keepalive = 900

# do not copy sent mail
set copy = no
set move = no

set folder = imaps://imap.gmail.com:993
set spoolfile = +INBOX #or +[Gmail]/Important
set postponed = +[Gmail]/Drafts

# cache
set header_cache = ~/.mutt/cache/headers
set message_cachedir = ~/.mutt/cache/bodies
set certificate_file = ~/.mutt/certificates


В листинге 2 для параметра sendmail в качестве значения указывается полный путь к программе msmtp. Следует отметить, что если место расположения msmtp отличается от указанного в листинге 2, то значение данного параметра нужно изменить соответствующим образом.
После того, как все необходимые изменения в конфигурационные файлы внесены, связка mutt+msmtp полностью готова к работе.

Отправка почты с помощью mutt, пример консольной команды:

echo "Текст письма" | mutt -s Тема письма [email protected]
 
[^]
3xTeR
28.06.2016 - 00:40
-2
Статус: Offline


Хохмач

Регистрация: 5.03.16
Сообщений: 654
знатный уголок интеллектуального BDSMa
сам уже 1к раз думал о том чтобы начать изучать хотя бы Убунту и хотя бы десктоп для начала , но так там все уныло и не дружелюбно что руки опускаюцца
 
[^]
kredetz
28.06.2016 - 00:47
0
Статус: Offline


W T F ?

Регистрация: 23.02.13
Сообщений: 1887
Бэкап с помощью rsync

Задача: делать бэкап папки /home/user/data в папку на другом жестком диске /mnt/otherdisk/backup каждую ночь в 5 часов 15 минут и отправлять сообщение о выполнении по электронной почте.

Реализация:

sudo apt-get install rsync

В папке /home/user выполнить nano rsyncbackup.sh

содержимое rsyncbackup.sh:

##!/bin/sh
rsync -azP --delete data /mnt/otherdisk/backup


chmod +x rsyncbackup.sh

crontab -e


Добавить строку:

15 5 * * * /home/user/rsyncbackup.sh | echo "Синхронизировано" | mutt -s rsyncbackup [email protected]

Сохранить, выйти.
 
[^]
djmodesto
28.06.2016 - 00:53
1
Статус: Online


кавалер ордена бани

Регистрация: 26.02.14
Сообщений: 1530
пасиб камрад))) есть интерестные варианты))) Мне не хватает внимания со стороны окружающих. Обнимите меня, кому не лень. в карму
 
[^]
kredetz
30.06.2016 - 18:06
0
Статус: Offline


W T F ?

Регистрация: 23.02.13
Сообщений: 1887
Настройка терминала на удобное отображение размера файлов и папок

nano ~/.bashrc
И добавьте в конец файла следующие строки:

alias du='du -h -d 1'
alias ls='ls -sh'

И сохраните изменения. Теперь команда ls по умолчанию будет показывать размеры файлов, а du будет показывать размеры файлов и папок только 1 уровня вложенности.

Удобная утилита для отображения размера файлов и папок

sudo apt-get install ncdu
 
[^]
Понравился пост? Еще больше интересного в Телеграм-канале ЯПлакалъ!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) Просмотры темы: 3641
0 Пользователей:
[ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]


 
 



Активные темы






Наверх