Установка Webmin

Webmin — графический web интерфейс для управления Linux сервером.
Официальный сайт: www.webmin.com

Один из вариантов установки на Ubuntu:
Открываем список источников:

nano /etc/apt/sources.list

Добавляем в него эти строчки:

deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib

Открываем временную директорию:

cd /tmp

Импортируем ключ:

wget http://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc

Обновляем список источников:

apt-get update

Устанавливаем пакеты необходимые для правильной работы Webmin:

sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl

Устанавливаем Webmin:

apt-get install webmin

Для входя используется: https://IP:10000

Установка и настройка веб-сервера Apache2

Apache HTTP-сервер — назван именем племён североамериканских индейцев Апачи, также является сокращением «a patchy server» — свободный веб-сервер.

Пример команды установки в Ubuntu:

sudo apt-get install apache2

Пример установки в CentOS:

yum install httpd

Проверяем открыв в браузере адрес http://имяхоста
Обычно должна появится стандартная надпись «It works!«.

Директория хранения вэб файлов — /var/www/
Директория конфигурационных файлов — /etc/apache2/

Для каждого сайта создается отдельный виртуальный хост. Стандартный файл виртуального хоста находится по адресу /etc/apache2/sites-available/000-default.conf

Допустим у нас есть домен example.net. Создаем новый файл в директории /etc/apache2/sites-available/example.conf и прописываем в него настройки:

<VirtualHost *:80>
     ServerAdmin admin@example.net
     ServerName example.net
     ServerAlias www.example.net
     DocumentRoot /var/www/example.net/

     <Directory /var/www/example.net>
     Options -Indexes
     AllowOverride All
     Order allow,deny
     allow from all
     </Directory> 

     #можно ограничить доступ по IP к некоторым директориям, например админке таким способом:
     <Directory /var/www/example.net/admin>
     Order allow,deny
     allow from 127.0.0.1 192.168.0.47 172.16.30.5
     </Directory>

     ErrorLog /var/log/example.net.error.log
     CustomLog /var/log/example.net.access.log combined
</VirtualHost>

Опишу опции которые я указывал выше:
-Indexes — в случае отсутствия индексных файлов index.php, index.html и т.д. не будет отображаться содержимое каталогов.
FollowSymLinks — разрешает переходить по символическим ссылкам.
-MultiViews — в случае указания например несуществующей директории http://example.net/img/ включение этой директивы позволит переадресовывать на файл http://example.net/img.php или http://example.net/img.jpg и т.д. если какой нибудь из них существует, такие манипуляции могут плохо сказаться на индексации ссылок поисковиками, поэтому эту директиву лучше отключить.
AllowOverride All — разрешает использование дополнительных файлов конфигурации .htaccess.

Далее делаем ссылку на этот файл в директорию /etc/apache2/sites-enabled/. Сделать это можно командами (вторая для удаления, окончание .conf не указывается):

a2ensite ТЕКСТ
a2dissite ТЕКСТ

Если нужно активировать какие нибудь модули, можно это также сделать например командами (первая команда для подключения, вторая — отключения):

a2enmod rewrite
a2dismod rewrite

Для активации дополнительных файлов конфигурации:

a2enconf ТЕКСТ
a2disconf ТЕКСТ

Теперь создаем директорию для сайта и копируем в нее файлы.

mkdir /var/www/example.net

Редактируем некоторые параметры безопасности веб сервера:
sudo nano /etc/apache2/conf.d/security

ServerTokens OS
на:
ServerTokens Prod

ServerSignature On
на:
ServerSignature Off

Перезапускаем Apache2 чтобы изменения вступили в силу:

/etc/init.d/apache2 restart
service apache2 restart

Если на сервере используется много IP-адресов, а apache2 должен работать не на всех, то можно указать в /etc/apche2/ports.conf на каких ему работать, также можно изменить порт, например:

Listen 192.0.3.1:80
Listen 192.0.1.10:8080

Чтобы работал на всех:

Listen 80

RAR архивы в Linux Ubuntu

Чтобы создавать и распаковывать RAR архивы в операционной системе Linux Ubuntu необходимо в терминале набрать команду установки пакета:

sudo apt-get install rar unrar

После чего в Ubuntu с графическим интерфейсом можно будет выполнять манипуляции с архивами и файлами которые необходимо запаковать или распаковать нажав правой кнопкой мыши.

Примеры выполнения операций через командную строку:
Разархивировать архив:

rar e archive.rar dir

Архивировать директорию и установить на архив пароль:

rar dir -pПАРОЛЬ archive.rar

Разархивировать архив с паролем:

rar e -pПАРОЛЬ archive.rar dir

Разархивировать архив с паролем через unrar (пароль нужно ввести после ввода команды):

unrar x archive.rar

Простая архивация директории:

rar dir archive.rar

Пример создания rar архива с паролем через командную строку:

sudo rar a -m2 -r -hp name.rar /home/backups/now/*

Архивирование нескольких объектов:

sudo rar a -m2 -r -hp name.rar /home/backups/now/* /home/backups/dir2/* file1 file2

a (означает добавление файлов)
-m2 (степень сжатия от 0 до 5)
-r (добавление информации для восстановления)
-hp (установка пароля, необходимо ввести два раза при выполнении команды)

-t (тестирование архива)
-r (восстановление архива)

Установка DHCP сервера в Ubuntu

DHCP (Dynamic Host Configuration Protocol) — сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети.

Приведу пример установки в Ubuntu:

sudo apt-get install dhcp3-server

Остановка/перезапуск/запуск:

sudo /etc/init.d/dhcp3-server stop/restart/start

Конфигурационный файл находится по адресу /etc/dhcp3/dhcpd.conf

Пример конфигурации:

default-lease-time 600; 
max-lease-time 7200;
subnet 192.168.0.0 netmask 255.255.255.0 {
       option routers                  192.168.0.1;  #шлюз
       option subnet-mask              255.255.255.0; #маска подсети
       option domain-name              "example.com"; 
       option domain-name-servers       192.168.0.2, 192.168.0.3; #DNS-сервера
       range 192.168.1.10 192.168.1.100; #диапазон ip адресов
}

Выдача IP по мак адресу:

host host1 {
   option host-name "host1.example.com"; 
   hardware ethernet 00:12:34:56:78:90;
   fixed-address 192.168.0.15;
}

Смотрите также:
Скрипт конфигурации DHCP

Установка и настройка Fail2ban

Команда установки Fail2ban в Ubuntu:

sudo apt-get install fail2ban

После установки настраиваем конфигурационные фалы которые находятся по адресу:
/etc/fail2ban/fail2ban.conf (основной)
/etc/fail2ban/jail.conf (настройки защиты конкретных сервисов)
/etc/fail2ban/jail.local (дополнительный файл с белее высшим приоритетом для настройки защиты конкретных сервисов)
Защита SSH по умолчанию после установки включена.
В конфигурации присутствует уже много готовых настроек, например для apache2, nginx, named, pure-ftpd, proftpd, postfix и т.д., которые можно активировать указав true вместо false.

Фильтры по которым определяется неудачная попытка ввода пароля и другие не желаемые действия находятся в директории /etc/fail2ban/filter.d и включаются естественно в файле конфигурации /etc/fail2ban/jail.conf и /etc/fail2ban/jail.local. А правила реагирования находятся в /etc/fail2ban/action.d.
Логи стандартно пишутся в /var/log/fail2ban.log

Просмотр правил в iptables:

sudo iptables -S | grep fail2ban

Просмотр статуса:

sudo fail2ban-client status

Для перезапуска fail2ban нужно набрать:

sudo service fail2ban restart

Установка и настройка SSH

SSH (англ. Secure SHell — «безопасная оболочка») — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов).

Устанавливаем в Ubuntu:

sudo apt-get install ssh

Для проверки можно набрать:

ssh localhost

Команда для подключения с сервера на сервер:

ssh -l ИМЯПОЛЬЗОВАТЕЛЯ ip -pПОРТ

либо

ssh user@ip -pПОРТ

Копирование файла на сервер в директорию польователя:

scp -P порт /home/user/file.zip user@192.168.1.1:/

Для отключения от ssh сервера служит команда exit, чтобы ее не набирать можно нажать комбинацию клавиш Ctrl+D.

Редактируем стандартный конфиг:

nano /etc/ssh/sshd_config

Опишу несколько параметров:
Port — порт на который сервер будет принимать подключения. Нужно писать в самом начале конфига.
Protocol — версия протокола по которой можно подключатся, стандартное значение = 2, можно указать несколько через запятую. Версия 2 более безопасная чем 1.
HostKey — файл с частными ключами хоста. sshd не будет принимать файлы с атрибутами чтения для всех.
UsePrivilegeSeparation — предпочитаемое значение yes. В целях безопасности при прохождении аутентификации на сервер создается дочерний процес с наинизшими правами, при успешной — пользователь получает соответствующие ему права.
KeyRegenerationInterval — время регенерации ключа, необходимо для того чтобы злоумышленник перехвативший ключ не успел его расшифровать. Значение 0 отключает регенерацию.
ServerKeyBits — длинна ключа сервера.
SyslogFacility — код сообщения для syslog сервера. Стандартное значение AUTH, в этом случает сервер логов будет заносить информацию выдаваемую сервером sshd в файл /var/log/auth.log.
LogLevel — уровень выдаваемой информации в логи. Возможные значения: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3. Стандартное — INFO.
LoginGraceTime — время ожидания в секундах аутентификация пользователя в системе. Если пользователь не успел ввести логин и пароль — соединение обрывается.
PermitRootLogin — в целях безопасности предпочитаемое значение — no. Параметр позволяющий или запрещающий вход на сервер пользователем root.
StrictModes — параметр позволяет проверять серверу sshd атрибуты и владельца файлов конфигурации и директории пользователя перед тем как разрешить доступ к серверу. Стандартное значение — yes.
RSAAuthentication — разрешает поключение к серверу только по ключу RSA, используется для протокола 1.
PubkeyAuthentication — разрешает поключение к серверу по открытому ключу, используется для протокола 2.
IgnoreRhosts — игнорирование содержания файлов .rhosts и .shosts, при аутентификации RhostsRSAAuthentication и HostbasedAuthentication. Учитываться будут только /etc/hosts.equiv и /etc/shosts.equiv.
RhostsRSAAuthentication — параметр разрешающий аутентификацию по файлам .rhosts или /etc/hosts.equiv, используется для протокола 1.
HostbasedAuthentication

Немного дополнительных параметров которых нет в стандартном конфиге:
ListenAddress — параметр указывает порт конкретно для каждого интерфеса. Пример:
ListenAddress 10.0.0.1:1000
ListenAddress 10.0.0.2:1700
PermitEmptyPasswords — параметр запрещает или разрешает подключатся к серверу пользователям с пустыми паролями.
PasswordAuthentication — разрешает либо запрещает аутентификацию по паролю. В случае отключения нужно включить аутентификацию по публичному ключу (PubkeyAuthentication yes) и указать параметром AuthorizedKeysFile путь к файлу с ключами, это метод позволяет защититься от прямого перебора паролей злоумышленниками.
MaxStartups 10:30:60 — установка максимального числа одновременных не авторизованных подключений. Если число превышает указанное, то все следующие подключения будут отброшены.

Параметры разрешают или запрещают подключаться к серверу только указанным через пробел пользователям или группам:
DenyUsers
AllowUsers
DenyGroups
AllowGroups

Например

AllowUsers user1 user2 user3@192.168.1.105

AddressFamily — Укажите какое семейство ip адресов вы используете. Возможные параметры: any (любое), inet (только IPv4), inet6 (только IPv6).
TCPKeepAlive — Возможные значения yes/no. Посылает TCP сообщения клиенту, тем самым поддерживая соединение. В случае плохого интернет соединения пакеты могут не дойти и клиент будет отсоединен от сервера.
PrintMotd no — Указывает, должен ли выводиться на экран текст файла /etc/motd.
Banner — указывает путь к текстовому файлу, содержимое которого показывается на экране в момент аутентификации.
Subsystem sftp /usr/lib/openssh/sftp-server — включение протокола передачи файлов. По умолчанию он включен.

Перезагружаем SSH сервер чтобы изменения вступили в силу:

sudo /etc/init.d/ssh restart

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

sudo ssh-keygen -t rsa

Копируем публичный ключ на удаленный сервер:

sudo ssh-copy-id -i ~/.ssh/id_rsa.pub -p ПОРТ ПОЛЬЗОВАТЕЛЬ@СЕРВЕР

Если возникает ошибка при копировании ключа, то можно вручную скопировать строку из id_rsa.pub на удаленный сервер в файл authorized_keys.

Указанные команды нужно выполнять от того пользователя, от которого будет выполнятся подключение.
Например если от root, то нужно перед двумя командами выше выполнить команду:

sudo -i

Пример правил для iptables (второе разрешает подключаться только из указанной подсети):

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -d 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT

Для подключения к ssh серверу из среды Windows можно использовать известную всем программу Putty.

Смотрите также: Как изменить порт SSH в Ubuntu

Linux snmp OIDs

Пример для проверки: snmpget -v 1 -c «public» localhost .1.3.6.1.2.1.1.3.0

Загрузка системы:
В 1 минуту: .1.3.6.1.4.1.2021.10.1.3.1
В 5 минут: .1.3.6.1.4.1.2021.10.1.3.2
В 15 минут: .1.3.6.1.4.1.2021.10.1.3.3

CPU:
percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0
raw user cpu time: .1.3.6.1.4.1.2021.11.50.0
percentages of system CPU time: .1.3.6.1.4.1.2021.11.10.0
raw system cpu time: .1.3.6.1.4.1.2021.11.52.0
percentages of idle CPU time: .1.3.6.1.4.1.2021.11.11.0
raw idle cpu time: .1.3.6.1.4.1.2021.11.53.0
raw nice cpu time: .1.3.6.1.4.1.2021.11.51.0

Статистика памяти:
Размер Swap раздела: .1.3.6.1.4.1.2021.4.3.0
Свободно Swap пространства: .1.3.6.1.4.1.2021.4.4.0
Общий размер оперативной памяти: .1.3.6.1.4.1.2021.4.5.0
Использовано оперативной памяти: .1.3.6.1.4.1.2021.4.6.0
Свободно оперативной памяти: .1.3.6.1.4.1.2021.4.11.0
Total RAM Shared: .1.3.6.1.4.1.2021.4.13.0
Total RAM Buffered: .1.3.6.1.4.1.2021.4.14.0
Total Cached Memory: .1.3.6.1.4.1.2021.4.15.0
Точка монтирования диска: .1.3.6.1.4.1.2021.9.1.2.1
Точка монтирования устройства для раздела: .1.3.6.1.4.1.2021.9.1.3.1
Общий размер диска/раздела в килобайтах: .1.3.6.1.4.1.2021.9.1.6.1
Свободно места на диске: .1.3.6.1.4.1.2021.9.1.7.1
Использовано места на диске: .1.3.6.1.4.1.2021.9.1.8.1
Использовано места на диске в процентах: .1.3.6.1.4.1.2021.9.1.9.1

Uptime системы: .1.3.6.1.2.1.25.1.1.0
SNMP uptime: .1.3.6.1.2.1.1.3.0

Смотрите также:
Список SNMP OID и MIB для интерфейсов