The Rise of Machines: Real World Applications of AI
Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.
Tento tutoriál vám ukáže, jak chránit váš server FreeBSD pomocí brány firewall OpenBSD PF. Budeme předpokládat, že máte čistou instalaci FreeBSD nasazenou Vultrem bez přidání uživatelů. Kromě konfigurace Firewallu uděláme některé další věci, které také posílí zabezpečení našeho FreeBSD serveru. Před konfigurací firewallu nainstalujeme některé balíčky, protože výchozí instalace FreeBSD je dodávána s minimální sadou nástrojů a balíčků (což je správné), aby nám usnadnila práci.
Výchozí shell ve FreeBSD je /bin/sh. Toto je základní shell bez funkcí automatického dokončování. Použijeme něco lepšího. Nainstalujeme zsh.
Nejprve nainstalujte tyto balíčky:
# 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 je lsprogram z Linuxu. Chceme mít stejný lspříkaz v Linuxu a FreeBSD.
Přidejte do systému normálního uživatele: (nahraďte john svým uživatelským jménem a nezapomeňte přidat uživatele do skupiny kol)
# 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!
Vytvořte konfigurační soubor zsh:
# ee /home/your-username/.zshrc
Zkopírujte to do svého souboru .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
Spusťte tento příkaz: (nahraďte Jana svým uživatelským jménem)
chown john:john /home/john/.zshrc
Nyní se přihlaste k serveru FreeBSD pomocí svého uživatelského jména a změňte výchozí heslo uživatele root:
<vultr>[~]$ su
Password:
<vultr>[~]# passwd
Changing local password for root
New Password:
Retype New Password:
<vultr>[~]#
Nepotřebujeme sendmail. Zastavte a deaktivujte tuto službu:
<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.
Dále změníme náš soubor rc.conf, aby vypadal přirozeněji:
# ee /etc/rc.conf
Změňte jej, aby vypadal takto:
#----------- 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"
Upravit /etc/hostssoubor:
# ee /etc/hosts
Přidejte svou IP adresu a název hostitele:
::1 localhost localhost.ceph ceph
127.0.0.1 localhost localhost.ceph ceph
108.61.178.110 ceph.domain1.com ceph
Nastavit časové pásmo:
# bsdconfig
Kdykoli je to možné, zakažte vzdálený přístup pro uživatele root. Většina útoků na SSH se pokusí o přístup prostřednictvím uživatelského účtu root. Vždy se spojte se svým uživatelským jménem a poté sus rootem. Rootovat mohou pouze uživatelé ze wheelskupiny su. Proto jsme přidali našeho uživatele do skupiny kol.
Zakázat přihlášení root:
# ee /etc/ssh/sshd_config
Odkomentujte tento řádek:
PermitRootLogin no
Restartovat:
# reboot
Po dokončení restartu se v konzole Vultr zobrazí zpráva podobná této:
time correction of 3600 seconds exceeds sanity limit (1000); set clock manually to
correct UTC time.
Proto musíme hodiny korigovat ručně. Postupujte podle těchto příkazů, nejprve surootujte:
$ su
Password:
# ntpdate 0.europe.pool.ntp.org
Nyní nakonfigurujeme firewall. OpenBSD PF je součástí jádra FreeBSD, takže nemusíte instalovat žádné balíčky.
Pomocí eeeditoru vytvořte soubor /etc/firewall:
# ee /etc/firewall
Vložte toto: (nahraďte všechny IP adresy svou)
#######################################################################
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
Vytvořit /etc/trustedsoubor. Do tohoto souboru vložíme IP adresy, kterým „důvěřujeme“.
# ee /etc/trusted
Přidejte nějaké IP adresy:
# Hosting
1.2.0.0/16
# My friends
1.2.4.0/24
Nyní nějaké vysvětlení. Nevyžádané porty a nevyžádané adresy IP jsou jen některé porty/IP, které nechceme vidět v protokolech. Udělali jsme to s tímto pravidlem:
# ---- 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
Toto jsou pouze výchozí hodnoty a nemusíte se o to starat:
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
Toto pravidlo blokuje odchozí provoz SMTP z vašeho serveru (což je výchozí nastavení na Vultr).
# ---- block SMTP out
block quick proto tcp from $me to any port 25
Až na to, bruteforcersže zbytek je docela přímočarý.
# ---- 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 jen říká: Povolte z <důvěryhodných> IP na port 22, ale z jedné zdrojové IP lze vytvořit pouze 10 souběžných připojení. Pokud je to více než 10, zablokujte tuto IP a vložte ji do tabulky bruteforcers. Totéž platí pro pravidlo 20/60. To znamená maximálně 20 připojení za 60 sekund.
Povolit firewall:
# ee /etc/rc.conf
Odkomentujte tyto řádky:
pf_enable="YES"
pf_rules="/etc/firewall"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""
Restartovat:
# reboot
Pokud jste udělali vše správně, budete se moci přihlásit a firewall bude povolen. Nemusíte restartovat pokaždé, když změníte /etc/firewallsoubor. Stačí udělat:
# /etc/rc.d/pf reload
Podívejte se, kdo se pokouší připojit k vašemu serveru v reálném čase:
# tcpdump -n -e -ttt -i pflog0
Zobrazit historii:
# tcpdump -n -e -ttt -r /var/log/pflog
Podívejte se, jestli máte někoho v tabulce bruteforcers:
# pfctl -t bruteforcers -T show
A to je vše. Úspěšně jste implementovali PF firewall na serveru FreeBSD!
Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.
Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.
Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.
Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.
Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…
Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.
Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.
Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.
V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.
Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více