Изучение 26 методов анализа больших данных: часть 1
Изучение 26 методов анализа больших данных: часть 1
iptablesэто мощный инструмент, используемый для настройки встроенного брандмауэра ядра Linux. Он предустановлен в большинстве дистрибутивов Ubuntu, однако, если вы используете настроенную версию Ubuntu или работаете внутри контейнера, вам, скорее всего, придется установить ее вручную.
sudo apt-get install iptables iptables-persistent
После установки, если вас спросят, сохранять ли ваши текущие правила, это не имеет значения в данный момент, поскольку вы собираетесь удалить или создать новые правила позже.
Вы можете использовать netcatкоманду (на компьютере, отличном от вашего сервера), чтобы проверить, какие порты открыты или закрыты.
nc -z -w5 -v SERVER_IP PORT
nc это команда netcat-z просто отправьте пакет без полезной нагрузки.-w5 подождите до 5 секунд ответа.-v подробный режим.SERVER_IPадрес вашего сервера.PORTна порт, который вы хотите проверить, если он открыт (например 22).На вашем сервере вы можете использовать netstatкоманду, чтобы увидеть, какие порты в настоящее время прослушивают соединения.
sudo netstat -tulpn
Примечание. Хотя netstatэто удобно для поиска портов, с которыми вы хотите работать, вы должны знать о приложениях, которые вы в настоящее время установили на своем сервере, и какие порты прослушиваются, вам не нужно разрешать каждый порт, который вы найдете в netstatвыходных данных .
sudo iptables -A INPUT -p tcp -m tcp --dport 22 --m geoip --src-cc PE -j ACCEPT
-A INPUTдобавить правило в INPUTцепочку, цепочка - это группа правил, которыми мы чаще всего будем пользоваться в этом руководстве INPUT, OUTPUTи PREROUTING.-p tcpустановить tcpв качестве протокола, к которому будет применяться это правило, также можно использовать другие протоколы, такие как udp, icmpили all.-m tcpиспользовать tcpмодуль. iptablesподдерживает дополнительные функции через модули, некоторые из которых уже предустановлены, iptablesа другие, например, geoipмодуль.--dport 22Команды, начинающиеся с, --указывают на дополнительные опции для ранее использованного модуля, в этом случае мы сообщим, что tcpмодуль применяется только к порту 22.-m geoipиспользовать geoipмодуль. Он будет ограничивать пакеты в зависимости от страны (дополнительная информация на шаге 5).--src-cc PEскажите geoipмодулю ограничить входящие пакеты теми, которые приходят из Перу. Для получения дополнительных кодов стран ищите ISO 3166 country codesв Интернете.-j ACCEPT-jаргумент указывает , iptablesчто делать , если пакет соответствует ограничениям , указанным в предыдущих рассуждениях. В этом случае это будут ACCEPTте пакеты, другие варианты REJECT, DROPи многое другое. Вы можете найти больше вариантов, выполнив поиск iptables jump targetsв Интернете.Перечислите все правила.
sudo iptables -L
Перечислите все команды, которые использовались для создания используемых в настоящее время правил, полезных для редактирования или удаления правил.
sudo iptables -S
Чтобы удалить конкретное правило, выберите правило sudo iptables -Sи замените его -Aна -D.
# -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
sudo iptables -D INPUT -p tcp -m tcp --dport 22 -j ACCEPT
Перечислите все пронумерованные правила в INPUTцепочке.
sudo iptables -L INPUT --line-numbers
Удалить пронумерованное правило.
sudo iptables -D INPUT 2
Очистить все правила.
sudo iptables -F
Предупреждение: вы можете потерять соединение, если подключены по SSH .
Очистить только правила в OUTPUTцепочке.
sudo iptables -F OUTPUT
Разрешить SSHна eth0интерфейсе
sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-i eth0 применить правило к определенному интерфейсу, чтобы разрешить из любого интерфейса удалить эту команду.Чтобы ограничить входящие пакеты определенным IP (т.е. 10.0.3.1/32).
sudo iptables -A INPUT -i eth0 -s 10.0.3.1/32 -p tcp -m tcp --dport 22 -j ACCEPT
-s 10.0.3.1/32 указывает IP / подсеть, из которой разрешены соединения.Установить правила цепочки по умолчанию.
Предупреждение: перед продолжением убедитесь, что вы применили правильные правила SSH при работе на удаленном сервере .
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
-P INPUT DROP запрещает все входящие пакеты (т.е. никто не сможет подключиться к вашим работающим серверам, таким как Apache, SQL и т. д.).-P FORWARD DROP запрещает все перенаправленные пакеты (т.е. когда вы используете свою систему в качестве маршрутизатора).-P OUTPUT ACCEPTразрешает все исходящие пакеты (т.е. когда вы выполняете HTTPзапрос).Разрешить весь трафик по интерфейсу обратной связи ( рекомендуется ).
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
Сохранить текущие iptablesправила.
sudo netfilter-persistent save
sudo netfilter-persistent reload
Если вы работаете внутри контейнера, netfilter-persistentкоманда, скорее всего, не будет работать, поэтому вам нужно перенастроить iptables-persistentпакет.
sudo dpkg-reconfigure iptables-persistent
Разрешить DNS-запросы.
sudo iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
sudo iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
Используйте stateмодуль для разрешения RELATEDи ESTABLISHEDисходящих пакетов.
sudo iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Разрешить желаемые порты; в этом случае HTTPпорты.
sudo iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
Больше портов вы можете использовать.
FTP: TCP в порту 21HTTPS: tcp в порту 443DHCP: udp в порту 67NTP: udp в порту 123Примечание. Если вы хотите разрешить, apt-getможет потребоваться разрешить FTPиHTTPS .
Разрешить возвращаемый трафик только для RELATEDуже ESTABLISHEDподключенных соединений ( рекомендуется, поскольку иногда требуется двунаправленная связь).
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Разрешить пинг запросы извне.
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
Форвард трафик на eth0порт 2200в 10.0.3.21:22(полезно , если вы хотите , чтобы открыть сервер SSH , который работает внутри контейнера).
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2200 -j DNAT --to-destination 10.0.3.21:22
Если вы успешно войдете на свой сервер с помощью SSH, будет создано постоянное соединение (т.е. никаких новых соединений, даже если вы подключены более 1 часа). Если вы ошибетесь и попытаетесь войти снова, будет создано новое соединение. Это заблокирует непрерывные попытки входа по SSH, ограничивая количество новых подключений в час.
sudo iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
sudo iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 3600 --hitcount 4 -j DROP
Перенаправить все запросы от порта 443к порту 4430(полезно, если вы хотите привязать порт 443без root).
sudo iptables -t nat -A PREROUTING -i ens3 -p tcp --dport 443 -j REDIRECT --to-port 4430
sudo iptables -A INPUT -p tcp -m tcp --dport 4430 -m geoip --src-cc PE -j ACCEPT
ens3 сетевой интерфейс.-m geoip модуль блока страны (см. шаг 5).Предупреждение: не используйте lo, ОС будет отбрасывать все пакеты, перенаправленные на интерфейс обратной связи .
xtables-addonsВы можете установить xtables-addonsмодуль, используя различные методы, не стесняйтесь использовать метод установки, который подходит вам лучше всего.
Установите с помощью apt-get.
sudo apt-get install xtables-addons-common
Установите с помощью module-assistant.
sudo apt-get install module-assistant xtables-addons-source
sudo module-assistant --verbose --text-mode auto-install xtables-addons
Установить из источника.
sudo apt-get install git bc libncurses5-dev libtext-csv-xs-perl autoconf automake libtool xutils-dev iptables-dev
git clone git://git.code.sf.net/p/xtables-addons/xtables-addons
cd xtables-addons
./autogen.sh
./configure
make
sudo make install
Создайте базу данных "стран".
sudo apt-get install libtext-csv-xs-perl unzip
sudo mkdir /usr/share/xt_geoip
sudo /usr/lib/xtables-addons/xt_geoip_dl
sudo /usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv
sudo rm GeoIPCountryCSV.zip GeoIPCountryWhois.csv GeoIPv6.csv
Перезагрузите вашу систему.
sudo reboot
После xtables-addonsуспешной установки, после первой перезагрузки, запустите, depmodиначе блокировка страны не будет работать должным образом (это требуется только в первый раз).
sudo depmod
Создайте скрипт /etc/cron.monthly/geoip-updaterдля обновления geoipбазы данных ежемесячно.
#!/usr/bin/env bash
# this script is intended to run with sudo privileges
echo 'Removing old database---------------------------------------------------'
rm -rf /usr/share/xt_geoip/*
mkdir -p /usr/share/xt_geoip
echo 'Downloading country databases-------------------------------------------'
mkdir /tmp/geoip-updater
cd /tmp/geoip-updater
/usr/lib/xtables-addons/xt_geoip_dl
echo 'Building geoip database-------------------------------------------------'
/usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv
echo 'Removing temporary files------------------------------------------------'
cd /tmp
rm -rf /tmp/geoip-updater
Сделать /etc/cron.monthly/geoip-updaterисполняемым.
sudo chmod +x /etc/cron.monthly/geoip-updater
_Примечание: Если вы получаете сообщение iptables: No chain/target/match by that nameоб ошибке при попытке применить geoipправило, возможно, xtables-addonsоно установлено неправильно. Попробуйте другой способ установки.
Блокируйте все входящие пакеты из Китая, Гонконга, России и Кореи.
sudo iptables -A INPUT -m geoip --src-cc CN,HK,RU,KR -j DROP
Разрешить входящие пакеты через порт 80отовсюду, кроме стран выше.
sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
Разрешить входящие пакеты на ens3интерфейс через порт 22только из Перу (не стесняйтесь выбирать код страны, из которой вы хотите принимать пакеты, например, USдля Соединенных Штатов).
sudo iptables -A INPUT -i ens3 -p tcp -m tcp --dport 22 -m geoip --src-cc PE -j ACCEPT
Разрешить входящие пакеты на порт 443только из Перу.
sudo iptables -A INPUT -p tcp -m tcp --dport 443 -m geoip --src-cc PE -j ACCEPT
Изучение 26 методов анализа больших данных: часть 1
Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.
Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.
Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.
Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.
По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.
CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?
Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!
Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.
Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше