Инсталирайте Lets Encrypt SSL в приложението WordPress с едно щракване
Въведение Lets Encrypt е услуга на сертифициращ орган, която предлага безплатни TLS/SSL сертификати. Процесът на инсталиране е опростен от Certbot,
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
Въведение Lets Encrypt е услуга на сертифициращ орган, която предлага безплатни TLS/SSL сертификати. Процесът на инсталиране е опростен от Certbot,
Използване на различна система? Ако закупите сървър на Debian, винаги трябва да имате най-новите корекции за сигурност и актуализации, независимо дали спите или не
PHP и свързаните с него пакети са най-често използваните компоненти при разгръщане на уеб сървър. В тази статия ще научим как да настроим PHP 7.0 или PHP 7.1 o
Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне
Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте
1. Virtualmin/Webmin Virtualmin е мощен и гъвкав контролен панел за уеб хостинг за Linux и UNIX системи, базиран на добре познатата уеб база с отворен код
Yii е PHP рамка, която ви позволява да разработвате приложения по-бързо и лесно. Инсталирането на Yii в Ubuntu е лесно, както ще научите точно l
Този урок обяснява как да настроите DNS сървър с помощта на Bind9 на Debian или Ubuntu. В цялата статия заменете your-domain-name.com съответно. При th
Въведение Logrotate е помощна програма за Linux, която опростява администрирането на лог файлове. Обикновено се изпълнява веднъж на ден чрез cron задание и управлява базата от регистрационни файлове
Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент
Използване на различна система? Red5 е медиен сървър с отворен код, внедрен в Java, който ви позволява да стартирате Flash многопотребителски приложения, като например предаване на живо
В тази статия ще видим как да компилирате и инсталирате основната линия на Nginx от официалните източници на Nginx с модула PageSpeed, който ви позволява да
Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока
Използване на различна система? Vanilla forum е приложение за форум с отворен код, написано на PHP. Той е напълно адаптивен, лесен за използване и поддържа външен
Използване на различна система? Въведение Kanboard е безплатна програма за управление на проекти с отворен код, която е предназначена да улеснява и визуализира
Използване на различна система? Въведение Kanboard е безплатна програма за управление на проекти с отворен код, която е предназначена да улеснява и визуализира
Използване на различна система? Gitea е алтернатива с отворен код, самостоятелно хоствана система за контрол на версиите, задвижвана от Git. Gitea е написана на Голанг и е
Използване на различна система? Gitea е алтернатива с отворен код, самостоятелно хоствана система за контрол на версиите, задвижвана от git. Gitea е написана на Голанг и е
Въведение Lynis е безплатен инструмент за одит на системата с отворен код, който се използва от много системни администратори за проверка на целостта и заздравяване на техните системи. аз
Използване на различна система? Thelia е инструмент с отворен код за създаване на уебсайтове за е-бизнес и управление на онлайн съдържание, написано на PHP. Изходен код на Thelia i
Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.
Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.
Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.
Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.
Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…
Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.
Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.
Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.
В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.
Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече