Изучение 26 методов анализа больших данных: часть 1
Изучение 26 методов анализа больших данных: часть 1
Из этого туториала вы узнаете, как защитить свой сервер FreeBSD с помощью брандмауэра OpenBSD PF. Мы предполагаем, что у вас есть чистая установка FreeBSD, развернутая Vultr без добавления пользователей. Помимо конфигурации брандмауэра мы сделаем еще кое-что, что также усилит безопасность нашего сервера FreeBSD. Перед настройкой брандмауэра мы установим несколько пакетов, поскольку установка FreeBSD по умолчанию поставляется с минимальным набором инструментов и пакетов (что правильно), чтобы нам было легче работать.
Оболочка по умолчанию во FreeBSD /bin/sh
. Это базовая оболочка без функций автозаполнения. Мы будем использовать что-то лучше. Мы установим zsh
.
Сначала установите эти пакеты:
# pkg install zsh gnuls
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Bootstrapping pkg from pkg+http://pkg.FreeBSD.org/freebsd:10:x86:64/latest, please wait...
...
GNULS - это ls
программа из Linux. Мы просто хотим иметь одну и ту же ls
команду в Linux и FreeBSD.
Добавьте обычного пользователя в систему: (замените john своим именем пользователя и не забудьте добавить пользователя в группу wheel)
# adduser
Username: john
Full name: John Doe
Uid (Leave empty for default):
Login group [john]:
Login group is john. Invite john into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh zsh rzsh nologin) [sh]: zsh
Home directory [/home/john]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : john
Password : *****
Full Name : John Doe
Uid : 1001
Class :
Groups : john wheel
Home : /home/john
Home Mode :
Shell : /usr/local/bin/zsh
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (john) to the user database.
Add another user? (yes/no): no
Goodbye!
Создайте файл конфигурации zsh:
# ee /home/your-username/.zshrc
Скопируйте это в ваш файл .zshrc:
PS1="<%U%m%u>$[%B%1~%b]%(#.#.$) "
bindkey -e
alias su='su -m'
alias du='du -h -d0'
alias df='df -h'
alias l=less
alias ll='gnuls --color=always -l'
alias ls='gnuls --color=always'
alias pkg_ver='pkg version -v -l "<" | > upgrade'
export EDITOR=ee
autoload -U colors && colors
autoload -U promptinit && promptinit
autoload -U compinit && compinit
# History settings
SAVEHIST=1000
HISTSIZE=1000
HISTFILE=~/.history
setopt histignoredups appendhistory
Запустите эту команду: (замените john на ваше имя пользователя)
chown john:john /home/john/.zshrc
Теперь войдите на сервер FreeBSD под своим именем пользователя и измените пароль root по умолчанию:
<vultr>[~]$ su
Password:
<vultr>[~]# passwd
Changing local password for root
New Password:
Retype New Password:
<vultr>[~]#
Нам не нужен sendmail. Остановите и отключите этот сервис:
<vultr>[~]# /etc/rc.d/sendmail stop
Stopping sendmail.
Waiting for PIDS: 7843.
sendmail_submit not running? (check /var/run/sendmail.pid).
Stopping sendmail_msp_queue.
Waiting for PIDS: 7846.
Далее мы изменим наш файл rc.conf, чтобы он выглядел более естественным:
# ee /etc/rc.conf
Измените это, чтобы выглядеть так:
#----------- NETWORKING ------------------------------------------------#
hostname="ceph.domain1.com" # replace ceph.domain1.com with your domain
ifconfig_vtnet0="dhcp"
static_routes=linklocal
route_linklocal="-net 169.254.0.0/16 -interface vtnet0"
#--------- SERVICES BSD LOCAL ----------------------------------------#
sshd_enable="YES"
ntpd_enable="YES"
#pf_enable="YES"
#pf_rules="/etc/firewall"
#pf_flags=""
#pflog_enable="YES"
#pflog_logfile="/var/log/pflog"
#pflog_flags=""
sendmail_enable="NONE"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
Редактировать /etc/hosts
файл:
# ee /etc/hosts
Добавьте свой IP-адрес и имя хоста:
::1 localhost localhost.ceph ceph
127.0.0.1 localhost localhost.ceph ceph
108.61.178.110 ceph.domain1.com ceph
Установить часовой пояс:
# bsdconfig
По возможности отключайте удаленный доступ для пользователя root. Большинство атак на SSH пытаются получить доступ через учетную запись пользователя root. Всегда подключайтесь с вашим именем пользователя, а затем su
с правами root. Только пользователи из wheel
группы могут su
получить root права. Вот почему мы добавили нашего пользователя в группу wheel.
Отключить root-логин:
# ee /etc/ssh/sshd_config
Раскомментируйте эту строку:
PermitRootLogin no
Перезагружать:
# reboot
После завершения перезагрузки вы увидите следующее сообщение в консоли Vultr:
time correction of 3600 seconds exceeds sanity limit (1000); set clock manually to
correct UTC time.
Вот почему мы должны исправить часы вручную. Выполните следующие команды, su
чтобы получить root права:
$ su
Password:
# ntpdate 0.europe.pool.ntp.org
Теперь мы собираемся настроить брандмауэр. OpenBSD PF включен в ядро FreeBSD, поэтому вам не нужно устанавливать какие-либо пакеты.
С помощью ee
редактора создайте файл /etc/firewall
:
# ee /etc/firewall
Вставьте это: (замените любые IP-адреса вашими)
#######################################################################
me="vtnet0"
table <bruteforcers> persist
table <trusted> persist file "/etc/trusted"
icmp_types = "echoreq"
junk_ports="{ 135,137,138,139,445,68,67,3222 }"
junk_ip="224.0.0.0/4"
set loginterface vtnet0
scrub on vtnet0 reassemble tcp no-df random-id
# ---- First rule obligatory "Pass all on loopback"
pass quick on lo0 all
# ---- Block junk logs
block quick proto { tcp, udp } from any to $junk_ip
block quick proto { tcp, udp } from any to any port $junk_ports
# ---- Second rule "Block all in and pass all out"
block in log all
pass out all keep state
############### FIREWALL ###############################################
# ---- Allow all traffic from my Home
pass quick proto {tcp, udp} from 1.2.3.4 to $me keep state
# ---- block SMTP out
block quick proto tcp from $me to any port 25
# ---- Allow incoming Web traffic
pass quick proto tcp from any to $me port { 80, 443 } flags S/SA keep state
# ---- Allow my team member SSH access
pass quick proto tcp from 1.2.3.5 to $me port ssh flags S/SA keep state
# ---- Block bruteforcers
block log quick from <bruteforcers>
# ---- Allow SSH from trusted sources, but block bruteforcers
pass quick proto tcp from <trusted> to $me port ssh \
flags S/SA keep state \
(max-src-conn 10, max-src-conn-rate 20/60, \
overload <bruteforcers> flush global)
# ---- Allow ICMP
pass in inet proto icmp all icmp-type $icmp_types keep state
pass out inet proto icmp all icmp-type $icmp_types keep state
Создать /etc/trusted
файл. В этом файле мы разместим IP-адреса, которым «доверяем».
# ee /etc/trusted
Добавьте несколько IP-адресов:
# Hosting
1.2.0.0/16
# My friends
1.2.4.0/24
Теперь некоторые объяснения. Нежелательные порты и нежелательные IP-адреса - это только некоторые порты / IP-адреса, которые мы не хотим видеть в журналах. Мы сделали это с этим правилом:
# ---- Block junk logs
block quick proto { tcp, udp } from any to $junk_ip
block quick proto { tcp, udp } from any to any port $junk_ports
Это просто настройки по умолчанию, и вам не нужно об этом беспокоиться:
icmp_types = "echoreq"
set loginterface vtnet0
scrub on vtnet0 reassemble tcp no-df random-id
pass quick on lo0 all
block in log all
pass out all keep state
Это правило блокирует исходящий SMTP-трафик с вашего сервера (который используется по умолчанию в Vultr).
# ---- block SMTP out
block quick proto tcp from $me to any port 25
За исключением того, bruteforcers
что все остальное довольно просто.
# ---- Allow SSH from trusted sources, but block bruteforcers
pass quick proto tcp from <trusted> to $me port ssh \
flags S/SA keep state \
(max-src-conn 10, max-src-conn-rate 20/60, \
overload <bruteforcers> flush global)
Bruteforcers просто говорит: «Разрешить с <доверенных> IP-адресов порт 22, но с одного исходного IP можно установить только 10 одновременных подключений». Если это больше 10, заблокируйте этот IP и поместите его в таблицу bruteforcers. То же самое касается правила 20/60. Это означает максимум 20 подключений за 60 секунд.
Включить брандмауэр:
# ee /etc/rc.conf
Раскомментируйте эти строки:
pf_enable="YES"
pf_rules="/etc/firewall"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""
Перезагружать:
# reboot
Если вы все сделали правильно, то сможете войти и брандмауэр будет включен. Вам не нужно перезагружаться каждый раз, когда вы меняете /etc/firewall
файл. Просто делать:
# /etc/rc.d/pf reload
Посмотрите, кто пытается подключиться к вашему серверу в режиме реального времени:
# tcpdump -n -e -ttt -i pflog0
Показать историю:
# tcpdump -n -e -ttt -r /var/log/pflog
Посмотрите, есть ли у вас кто-то в таблице брутфорсеров:
# pfctl -t bruteforcers -T show
Вот и все. Вы успешно внедрили брандмауэр PF на сервере FreeBSD!
Изучение 26 методов анализа больших данных: часть 1
Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.
Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.
Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.
Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.
CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?
По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.
Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!
Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.
Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше