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/passwdstart —dir путь, куда диск качает файлы
—auth путь, где лежит сгенеренный после инсталла токен с вашими паролями / логинами
Далее топаем в крон
crontab -e (без sudo!)
@reboot sleep 60 && /home/adept/yandex_autorun.sh # тут путь до вашего скриптика
Не забываем так же
chmod +x путь_до_скрипта(делаем его исполняемым)После перезагрузки крон выждет 60 секунд и пнет ваш скрипт, запустив диск.
Мишшн комплит!
Это сообщение отредактировал kredetz - 8.02.2016 - 05:37