Улучшаем безопасность сервера FreeBSD

Если Вам необходимо улучшить безопасность Вашего сервера FreeBSD, необходимо проделать следующее.

а. Обезопасим работу демона SSHD.

Для этого:

1. Разрешим доступ к машине только тем, кому положено.

Это осуществляется добавлением следующей линии в файл /etc/ssh/sshd_config:

AllowUsers john bob

И не забываем перезапустить службу.

# /etc/rc.d/sshd restart

Вы можете также разрешить доступ группе wheel(лично я не считаю это правильным!!!),введя для этого в конфигурационный файл /etc/ssh/sshd_config строку

AllowGroups wheel

А также запретить логиниться под root.

PermitRootLogin no

2. Запустите SSH сервис на другом порту. По умолчанию он запускается на 22 порту.

Для этого отредактируйте /etc/ssh/sshd_config, изменив соответствующую строку на:

Port 456

При этом проверте, чтобы этот порт не использовался други сервисом.

И не забудьте перезапустить службу.

# /etc/rc.d/sshd restart

и перелогинуться по новому порту.

3. Блокируйте множественное подключение по SSH

MaxAuthTries 6

-максимальное количество попыток подключения (6)

MaxSessions 10

— Максимальная длина сессии(10 минут).

4. Регулярно обновляйте SSHD,ставьте патчи.

5. Если Вы логинитесь только с одного IP адреса, я не рекомендую прописывать его в конфигурационном файле.

6. Запретите ввод инрерактивного пароля и пользуйтесь публичными ключами.

7. Всегда используйте SSH протокол 2, он используется по умолчанию.

Protocol 2

8.Если Вы выдаете пользователям пароли,то они должны  быть не менее 8 знаков и состоять из букв,цифр и т.д и т.п.

Регулярно меняйте пароли и отключайте ненужные учетные записи.

б. Отключите все ненужные сервисы.

Запретите inetd.

Просканируйте свой сервер с помощью nmap

(

nmap -P0 server_ip

),

чтобы увидеть все открытые порты и запущенные сервисы.

Остановите ненужные сервисы и отключите их загрузку в файле /etc/rc.conf.

Удалите или запретите выполнение ненужных скриптов  в директории /usr/local/etc/rc.d  (

chmod -x /usr/local/etc/rc.d/script_name.sh

).

Для некоторых служб, закоментируйте их в файле /etc/inetd.conf

в. Обезопасьте вашу консоль.

Отредактируйте /etc/ttys и замените строки

console none                            unknown off secure

на

console none                            unknown off insecure

Запретите перезагрузку машины через Ctrl+Alt+Del.

Для этого введите строку в файл конфигурации ядра:

options SC_DISABLE_REBOOT

и пересоберите ядро.

г.Регулярно сканируйте порты и и отключайте ненужные сервисы.

д. Синхронизируйте время сервера.

Не используйте Logrotate. Если используете, то урезайте логи только еженедельно и ежемесячно.

е. Защита от DOS/DDOS.

Ниже описанное помогает частично защититься от DOS/DDOS атак.

отредактируйте следующие переменные  sysctl

kern.ipc.somaxconn=32768

# to defend against SYN attacks

Атакующий может попытаться модифицировать таблицу маршрутизации.

Для избежания этого измените:

net.inet.icmp.drop_redirect=1

net.inet.icmp.log_redirect=1

net.inet.ip.redirect=0

net.inet6.ip6.redirect=0

ж. Создайте checksum ваших файлов

Для этого используйте tripwire (

/usr/ports/security/tripwire-131

)

Не используйте ftp, пользуйтесь только sftp для копирования файлов.

Регулярно проверяйте логи.

з.

net.inet.tcp.msl=7500

msl = maximum segment life = максимальное время ожидания ACK  в рукопожатии SYN-ACK или FIN-ACK в миллисекундах.

net.inet.tcp.blackhole=2

-Эта переменная устанавливает, что произойдет, когда ваша машина примет пакер TCP на закрытый порт. ( 1- SYN пакет будет откинут, 2 —  все пакеты будут отброшены.)

net.inet.udp.blackhole=1

net.inet.icmp.icmplim=50

— Эта переменная контролирует максимальное число ICMP «Unreachable» и TCP RST возвращаемых каждую секунду.

Для сетевых карт dc, em, fxp, nge, rl, sis включите в ядре DEVICE_POLLING option, чтобы уменьшить время центрального процессора в обработке входящего трафика. Перекомпилите и переинстальте ядро и поменяйте следующую переменную sysctl.

kern.pooling.enable=1

и. Установите и настройте firewall

к. Используйте JAIL, где это возможно для Web Server, Mail server,DNS Server.

л. Используйте DMZ для Вашего Web-сервера.

м. Проверьте разрешения файлов

Проверьте setuid and setgid файлы на Вашем сервере:

# find / -type f ( — perm 2000 -o perm -4000 ) -print

о. Установите уровень безопасности ядра.

Существует 5 уровней безопасности для FreeBSD — от -1 до 3.Уровень меняется с помощью переменной sysctl kern.securelevel

п. Удалите неиспользуемые опции ядра.

Ниже показанные опции  обычно не используются на промышленных серверах.

DEBUG

IPv6,gif, faith

BPF

KTRACE

CD9660

MSDOSFS

NFS

USB

UCONSOLE

р. Drop synfins

Сконфигурите Ваш сервер так, чтобы он скрывал подпись операционной системы для утилит типа nmap. Для этого надо перекомпилить ядро с опцией

TCP_DROP_SYNFIN

. Затем добсавить в /etc/sysctl.conf:

net.inet.tcp.drop_synfin=1

Comments are closed.