Здравейте приятели от DesdeLinux, обещаното е дълг и ето публикация за как да максимизираме защитата на Linux системите и останете така безопасно от натрапници в допълнение към защитата на информацията на вашите сървъри, компютри или лаптопи !!!!
Comenzando
Fail2ban: е приложение, написано на Python за предотвратяване на проникване в система, която действа чрез наказване или блокиране на отдалечени връзки, които се опитват да получат груба сила.
Инсталация:
Fedora, RHEL, CentOS:
yum install fail2ban
Debian, Ubuntu:
apt-get install fail2ban
Настройка:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local nano /etc/fail2ban/jail.local
В частта, наречена [ПО подразбиране], ние коментираме и модифицираме #bantime = 3600, оставяйки го така:
#bantime = 3600 bantime = 604800
В частта [sshd] въвеждаме enabled = true, оставяйки го така:
#enabled = вярно активирано = вярно
Спестяваме с CTRL + O и затваряме с CTRL + X
Стартираме услугата:
Fedora, RHEL, CentOS:
systemctl активира fail2ban.service systemctl стартира fail2ban.service
Debian, Ubuntu:
услуга fail2ban старт
Отказ на root достъп чрез ssh:
За да защитим нашата машина, ще откажем ssh чрез root потребителя. За целта редактираме файла / etc / ssh / sshd_config, както следва:
cp sshd_config sshd_config.bck nano / etc / ssh / sshd_config
Ние коментираме и се променяме
# Протокол 2 Протокол 2
Ние коментираме и се променяме
#PermitRootLogin да PermitRootLogin не
Спестяваме с CTRL + O и затваряме с CTRL + X
Стартираме услугата:
Fedora, RHEL, CentOS:
systemctl активира sshd.service systemctl стартира sshd.service
Debian, Ubuntu:
услуга sshd старт
Откажете достъпа до ssh сървър с помощта на ключ и разрешете ssh само с RSA ключове
Ако искаме да се свържем с PC1 към Server1, първото нещо, което трябва да направим, е да генерираме нашия ключ на PC1. С нашия потребител и без root на PC1 изпълняваме:
ssh-keygen -t rsa -b 8192 (това генерира повече от сигурен ключ, тъй като обикновено се използват ключове от 1024 до 2048)
След като получим нашата парола, я качваме на Server1:
ssh-copy-id потребител @ server_ip
След като това стане, ще се свържем с нашия Server1 и ще модифицираме файла nano / etc / ssh / sshd_config с права на root:
ssh потребител @ Server1 nano / etc / ssh / sshd_config
Променяме реда, който казва #PasswordAuthentication да на това:
#PasswordAuthentication да
Парола Аутентификационен номер
Спестяваме с CTRL + O и затваряме с CTRL + X
Рестартираме услугата ssh:
Fedora, RHEL, CentOS:
systemctl рестартирайте sshd.service
Debian, Ubuntu:
услуга sshd рестартиране
Променете ssh порта за слушане
Отново редактираме / etc / ssh / sshd_config и в частта, отнасяща се до порта, го оставяме така:
# Порт 22 Порт 2000 (или всяко друго число, по-голямо от 2000 г. В нашите примери ще използваме това.)
Спестяваме с CTRL + O и затваряме с CTRL + X
Рестартираме услугата ssh:
Fedora, RHEL, CentOS:
systemctl рестартирайте sshd.service
Debian, Ubuntu:
услуга sshd рестартиране
Ако използват fail2ban, е необходимо да промените конфигурацията по отношение на sshd за настройка на порта.
nano /etc/fail2ban/jail.local [sshd] port = ssh, 2000 [sshd-ddos] port = ssh, 2000 [dropbear] port = ssh, 2000 [selinux-ssh] port = ssh, 2000
Спестяваме с CTRL + O и затваряме с CTRL + X
Ние подновяваме услугата:
Fedora, RHEL, CentOS:
systemctl рестартирайте fail2ban.service
Debian, Ubuntu:
услуга fail2ban рестартиране
Firewall
Fedora, RHEL, CentOS:
Selinux и Iptables се активират по подразбиране на тези системи и препоръчвам да продължите по този начин. Как да отворите порт с iptables? Нека да видим как да отворим новия порт 2000 на ssh порта, който сме променили преди:
Отворено:
nano / etc / sysconfig / iptables
и ние модифицираме реда, отнасящ се до по подразбиране ssh порт 22 и го оставяме така:
# -A INPUT -m състояние - състояние НОВО -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m състояние - състояние NEW -m tcp --dport 2000 -j ACCEPT
Спестяваме с CTRL + O и затваряме с CTRL + X
Рестартираме услугата:
systemctl рестартирайте iptables
Debian, Ubuntu:
В Debian или Ubuntu и дериватите имаме защитна стена UFW, която ще улесни живота ни, тъй като много лесно управлява Netfilter.
Инсталация:
apt-get install ufw ufw enable
За да видите състоянието на отворените портове, които изпълняваме:
ufw статус
За да отворите порт (в нашия пример това ще бъде новият ssh порт 2000):
ufw позволи 2000
За да откажете порт (в нашия случай това ще бъде портът по подразбиране 22 на ssh):
ufw отказ 22 ufw изтриване отказ 22
И готови приятели. По този начин те ще пазят вашите машини в безопасност. Не забравяйте да коментирате и до следващия път: D.
и система за криптиране като: https://www.dyne.org/software/tomb/
А също и потребителите на клетки в дома ви, ако се свържат чрез tty:
http://olivier.sessink.nl/jailkit/index.html#intro
https://operativoslinux.wordpress.com/2015/02/21/enjaular-usuarios-en-linux/ (лесният начин)
Много по-добре и по-сигурно е да шифровате цялата файлова система.
За следния урок относно сигурността в Linux ще го взема предвид: D.
Също така би било добре да поговорим за втвърдяване на ядрото чрез sysctl, активиране на произволната купчина и Exec-Shield в ядрата, които го поддържат, разрешаване на достъп до dmesg и файловата система / proc, стартиране на демон за одит, активиране на TCP защита SYN, ограничаване достъп до / dev / mem, деактивиране на опциите за стека на TCP / IP, които могат да бъдат опасни или опасни за системата (пренасочване, ехо, маршрутизиране на източника), използвайте pam_cracklib за потребителите да генерират силни пароли, важността на използването на MAC система като Tomoyo, AppArmor и SELinux.
много полезно!!!! точно това, което търсех, благодаря 🙂
Добре дошъл приятел :).
Ако се използва apache, не пречи да се добавят правила с mod_rewrite, за да се избегнат ботове. Много полезно
http://perishablepress.com/eight-ways-to-blacklist-with-apaches-mod_rewrite/
а за nginx има ли някакъв трик или конфигурация?
В debian 8 файлът / etc / ssh / sshd_config вече има активен протокол 2 и функцията PermitRootLogin е с опцията без парола (можете да въведете root само с ключа за удостоверяване и от компютъра, който има частния ключ)
pd в debian 8 firewalld вече е пристигнал, което го оставя малък за ufw
Виждали ли сте ферм? Харесва ми как са дефинирани правилата.
http://ferm.foo-projects.org/download/examples/webserver.ferm
Е, радвам се, че Debian 8 използва firewalld, тъй като е много много много добър ...
Пазете се от fail2ban, че нападателят произвежда пакети с ip на локалния компютър и прави DOS много лесен.
Човекът, локалният IP на компютъра и обратният IP са изключени от списъка Fail2ban.
Ако не, можем да имаме фалшиви положителни резултати.
Добри и много ефективни препоръки ... Разбира се, в сървърната среда и ако хостваме уебсайт, това включва допълнителни стъпки .... Понастоящем поддържаме проект, наречен JackTheStripper, който не е нищо повече от bash Script, който подготвя и осигурява сървър с GNU / Linux следвайки най-добрите практики за сигурност, за уеб приложения ... можете да знаете проекта на http://www.jsitech.com/jackthestripper ....
Хубав скрипт, въпреки че обичам да запазвам стойността на kernel.randomize_va_space = 2
Хубавото е, че преди да го стартирате, можете да го модифицирате малко според вашите нужди ..... A Здравейте ...
Здравейте, разбира се, моят пост се занимава с осигурена база и всеки трябва да се защити горе-долу в зависимост от услугите, които е инсталирал в своите системи като LAMP или FTP, SFTP, BIND и дълги и други:) ...
В следващия пост за сигурността ще разгледам тези проблеми.
Благодаря за положителната обратна връзка :).
@petercheco, вашите ръководства са отлични, би било добре ръководство за криптиране за системата FreeeBSD, не знам кога ще правите втората част за FreeBSD, за конфигуриране и персонализиране на настолни компютри, за защитна стена, за създаване и конфигуриране на безжична мрежа.
Здравей приятел,
Малко съм зает, както показва рядкото публикуване, но ще го имам предвид при следващата публикация на FreeBSD.
Поздрав :).
Това се изравни в коментарите, нямам идея или за какво говорите, никой xD
Страхотна статия!
Това действие за сигурност предполага ограничаване на оборудването по някакъв начин?
Не ... Нормалното използване на системата изобщо не е ограничено.
И забавното (трагичното) нещо е, че както току-що видяхме при машините на Lenovo, ако фърмуерът на bios е подправен със злонамерен софтуер, нищо, което правите, няма значение.
Докато използвате Windows, предварително инсталиран от производителя ...
грешка: не забравяйте, че са го инсталирали във фърмуера на bios, тоест той започва със системата при всяко рестартиране, преди операционната система, преди демоните, преди всичко и не ви позволява да правите нищо срещу него. атакува малко може да се направи, поради което идеята на uefi е добра по принцип.
Интересна статия, ще я прочета по-внимателно днес следобед. Благодаря ти.
Моля :). Радвам се.
Отлична статия, забавлявах се цял следобед, четейки я. Оценявам времето, което отделяте, за да обясните всичко много внимателно,
Поздрави от Чили
Карлос
Здравей Карлос,
Благодаря много :).
Машините на Lenovo, ако изглежда, че фърмуерът на bios се намесва със злонамерен софтуер, машините (лаптоп PC-настолен компютър) винаги се инсталират с Windows от производителя, като се има предвид горното ... прави ли пост ... .petercheco?
Дори и без да прави всичко това, той работи, тъй като зловредният софтуер е създаден за Windows, а не за Linux.
Много неща и трикове липсват в iptables, като замаян nmap, така че от всички отворени портове, лъже, че това е компютър с Windows, използващ ttl и размера на прозореца, scanlogd, apache mod security, grsec, selinux или нещо подобно. Заменете ftp с sftp, ограничете броя на връзките на IP към всяка услуга в X порт, за да избегнете, че преди DDoS те да ни оставят без услуги, както и да блокират IP адресите, които изпращат повече от толкова много UDP за толкова много секунди.
С примерите, които представихте, нов потребител ще полудее, когато го чете ... Не можете да поставите всичко в една публикация. Ще направя няколко записа :).
Получавам грешка в archlinux в този момент, когато давам стартовата услуга, давам й статус и това излиза:
sudo systemctl статус fail2ban
● fail2ban.service - услуга Fail2Ban
Заредено: заредено (/usr/lib/systemd/system/fail2ban.service; активирано; предварително зададено от доставчика: деактивирано)
Активно: неуспешно (резултат: начален лимит) от петък 2015-03-20 01:10:01 CLST; Преди 1 сек
Документи: man: fail2ban (1)
Процес: 1695 ExecStart = / usr / bin / fail2ban-client -x start (код = излязъл, статус = 255)
20 март 01:10:01 Gundam systemd [1]: Неуспешно стартиране на услугата Fail2Ban.
20 март 01:10:01 Gundam systemd [1]: Устройството fail2ban.service влезе в неуспешно състояние.
20 март 01:10:01 Gundam systemd [1]: fail2ban.service се провали.
20 март 01:10:01 Gundam systemd [1]: заявката за старт се повтаря твърде бързо за fail2ban ... ice
20 март 01:10:01 Gundam systemd [1]: Неуспешно стартиране на услугата Fail2Ban.
20 март 01:10:01 Gundam systemd [1]: Устройството fail2ban.service влезе в неуспешно състояние.
20 март 01:10:01 Gundam systemd [1]: fail2ban.service се провали.
Съвет: Някои линии бяха елиптирани, използвайте -l, за да ги покажете изцяло.
малко помощ? Д:
Здравейте, ако сте активирали fail2ban със systemctl enable fail2ban.service и systemctl start fail2ban.service, проблемът ще бъде в конфигурираната от вас затвор. Моля, проверете затвора си и се уверете, че всичко е наред.
поздравления
Петерчеко
Преди всичко добър урок. Много неща липсват, но вие сте се съсредоточили върху основите.
shini-kire, проверете вашия /var/log/fail2ban.log
Поздрави.
Благодаря ти @Maykel Franco :).
добър,
fail2ban трябва ли да го инсталират на домашен компютър или това е повече за сървъри ???
Благодаря.
По-скоро за сървърите, но ако сте на wifi, достъпен от повече хора от вас, е добре ...
Здравейте приятелю, струва ми се добър пост за сигурност в частта от кратък пожар в дистрибуциите на Gnu / Linux.Пиша този коментар, защото го правя в дистрибуция на Ubuntu 14.04, знаейки, че вече е в 15.04 какво се случва е следният проблем, който въвеждам nano /etc/fail2ban/jail.local като root и нямам визуализация в sshd частта и запазвам В частта, наречена [DEFAULT], ние коментираме и модифицираме #bantime = 3600 и
В частта [sshd] въвеждаме enabled = true, оставяйки го така:
#enabled = вярно
enabled = true
Не изглежда, че на sshd това може да е, защото работя предишната версия, благодаря