Несмотря на то, что FreeBSD по праву считается одной из самых безопасных ОС в мире, тем не менее дам несколько советов, как эту самую безопасность улучшить.
Для начала, я не буду рассказывать про пользу обновлений операционной системы, обновление ПО, правильная настройка фаервола и т.д. и т.п. Это Вы и так должны понимать.
Для начала, поиграемся с sysctl.conf
vi /etc/sysctl.conf
# Это превращает машину в черную дыру при попытке подключиться к портам, которые не обслуживаются вашим сервером. net.inet.tcp.blackhole=2 net.inet.udp.blackhole=1 # Только пользователь root может видеть все запущенные процессы kern.ps_showallprocs=0
/etc/rc.d/sysctl restart
Теперь поиграемся с правами доступа к крону
# только пользователь root должен иметь доступ к файлу настройки cron chmod 0600 /etc/crontab
Права доступа к файлам.
При помощи команды chmod 600, мы разрешаем доступ только пользователю root на запись и чтение файла. При помощи команды chmod 700, мы также даем возможность пользователю root возможность запускать файл.
chmod 0700 /root chmod 0600 /etc/syslog.conf chmod 0600 /etc/rc.conf chmod 0600 /etc/newsyslog.conf chmod 0600 /etc/hosts.allow chmod 0600 /etc/login.conf chmod 0700 /usr/home/*
Console Access (доступ к консоли)
Запомните что хоть мы и блокируем доступ от неавторизованного доступа в однопользовательском режиме, это не обеспечивает полную защиту вашего сервера. Некто с плохими намерениями может снять жесткий диск с вашего сервера и установить его на другом компьютере. Если сервер не защищен физически, то никакие программные настройки, вас не спасут от взлома вашей системы. Изменение прав доступа к первой консоли означает что вы не сможете войти в систему в однопользовательском режиме, не зная пароля пользователя
vi /etc/ttys console none unknown off insecure # запрашивать пароль пользователя root в однопользовательском режиме. ttyv0 “/usr/libexec/getty Pc” cons25 on insecure # Virtual terminals ttyv1 “/usr/libexec/getty Pc” cons25 on insecure ttyv2 “/usr/libexec/getty Pc” cons25 on insecure ttyv3 “/usr/libexec/getty Pc” cons25 on insecure ttyv4 “/usr/libexec/getty Pc” cons25 on insecure ttyv5 “/usr/libexec/getty Pc” cons25 on insecure ttyv6 “/usr/libexec/getty Pc” cons25 on insecure ttyv7 “/usr/libexec/getty Pc” cons25 on insecure
Некоторые данные, которые необходимы в rc.conf
vi /etc/rc.conf inetd_enable=”NO” # Better ways to run your daemons syslogd_enable=”YES” # Конечно мы хотим вести регистрацию событий. Если вы планируете настроить # удаленную регистрацию событий, тогда пропустите следующую строку. # Если файлы регистрации событий будут расположены на локальном диске, # убедитесь что у вас смонтирован раздел /var. syslogd_flags=”-ss” # Этим мы закроем 514 udp порт если мы не хотим использовать удаленную # регистрацию событий на или с этого сервера. Естественно не нужно добавлять # эту строчку, если вы планируете настроить удаленную регистрацию событий. icmp_drop_redirect=”YES” # Отключаем прием и отправку переадресовующих ICMP пакетов. icmp_log_redirect=”YES” # Регистрировать переадресовующие ICMP пакеты в журнальном файле clear_tmp_enable=”YES” # Очищать директорию /tmp при загрузке. portmap_enable=”NO” # Если не используется NFS icmp_bmcastecho=”NO” # Предотвращает springboarding и smurf атаки, запрещая серверу отвечать # на широковещательные ping-пакеты. fsck_y_enable=”YES” # При ошибках файловой системы на этапе загрузки утилита fsck будет # запущена с флагом -y (man fsck) update_motd=”NO” #Не обновлять файл с сообщением дня /etc/motd tcp_drop_synfin=”YES” # Отбрасывать synfin пакеты. Смотри ниже, необходимые изменения в ядре. log_in_vain=”YES” # Установите эту опцию, если вы хотите записывать все попытки подключения # к закрытым портам вашего сервера. sshd_enable=”YES” # Это позволит сделать удаленный доступ к серверу более защищенным.