Възходът на машините: Реални приложения на AI
Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.
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
Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.
Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.
Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.
Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.
Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…
Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.
Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.
Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.
В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.
Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече