Linux系統在設計上是安全的,並且提供了健壯的管理工具。但無論系統設計得多麼好,其安全性都取決於使用者。
初學者通常需要幾年的時間來為他們的機器找到最好的安全策略。這就是為什麼我們要為像你這樣的新使用者分享這些基本的Linux強化技巧。試試看。
密碼是大多數系統的主要身份驗證方法。無論您是家庭使用者還是專業人士,強制執行可靠的密碼都是必須的。首先,禁用空密碼。你不會相信有多少人還在用它們。
awk -F: '($2 == "") {print}' /etc/shadow以root使用者身份執行上述命令以檢視哪些帳戶的密碼為空。如果發現有人密碼為空,請立即鎖定該使用者。您可以使用以下方法來實現這一點。
passwd -l USERNAME您還可以設定密碼老化,以確保使用者不能使用舊密碼。使用chage命令從終端執行此操作。
chage -l USERNAME此命令顯示當前過期日期。要在30天后設定密碼過期,請使用以下命令。使用者可以使用Linux密碼管理器來保證線上帳戶的安全。
chage -M 30 USERNAME如果你對你的資料很認真,那就定期備份。這樣,即使系統崩潰,也可以快速恢復資料。但是,選擇正確的備份方法對於Linux的加固是至關重要的。
如果您是家庭使用者,將資料克隆到硬碟驅動器就足夠了。然而,企業需要提供快速恢復的複雜備份系統。
Linux支援多種遠端通訊方式。但是,telnet、rlogin和ftp等遺留Unix服務可能會帶來嚴重的安全問題。所以,儘量避開他們。您可以完全刪除它們,以減少與它們相關的安全問題。
apt-get --purge remove xinetd nis tftpd tftpd-hpa telnetd \> rsh-server rsh-redone-server這個命令從Ubuntu/Debian機器上刪除一些廣泛使用但過時的服務。如果您使用的是基於RPM的系統,請改用以下方法。
yum erase xinetd ypserv tftp-server telnet-server rsh-serverSSH協議是Linux遠端通訊的推薦方法。確保您的OpenSSH伺服器(sshd)配置安全。您可以在這裡瞭解有關設定SSH伺服器的更多資訊。
編輯/etc/ssh/sshd_config檔案以設定ssh的安全策略。下面是一些常見的安全策略,任何人都可以使用。
PermitRootLogin no # disables root loginMaxAuthTries 3 # limits authentication attemptsPasswordAuthentication no # disables password authenticationPermitEmptyPasswords no # disables empty passwordsX11Forwarding no # disables GUI tran**issionDebianBanner no # di**ales verbose bannerAllowUsers *@XXX.X.XXX.0/24 # restrict users to an IP rangeCRON是一個健壯的Linux作業排程程式。它允許管理員使用crontab在Linux中排程任務。因此,限制誰可以執行CRON作業是至關重要的。您可以使用以下命令找出使用者的所有活動cronjob。
crontab -l -u USERNAME檢查每個使用者的作業以確定是否有人在利用CRON。您可能希望阻止除您之外的所有使用者使用crontab。執行以下命令以執行此操作。
echo $(whoami) >> /etc/cron.d/cron.allow# echo ALL >> /etc/cron.d/cron.denyLinux-PAM(Pluggable Authentication Modules)為應用程式和服務提供了強大的身份驗證功能。您可以使用各種PAM策略來保護系統的登入。例如,以下命令限制密碼重用。
# CentOS/RHELecho 'password sufficient pam_unix.so use_authtok md5 shadow remember=5' >> \> /etc/pam.d/system-auth# Ubuntu/Debianecho 'password sufficient pam_unix.so use_authtok md5 shadow remember=5' >> \> /etc/pam.d/common-password他們限制使用過去五週內使用過的密碼。還有許多PAM策略提供了額外的安全層。
移除未使用的包可以減少對機器的攻擊。因此,我們建議您刪除很少使用的包。您可以使用以下命令檢視當前安裝的所有軟體包。
yum list installed # CentOS/RHEL apt list --installed # Ubuntu/Debian假設要刪除未使用的包vlc。可以透過以root使用者身份執行以下命令來實現這一點。
yum remove vlc # CentOS/RHELapt remove vlc # Ubuntu/DebianLinux強化的另一個有效方法是保護核心引數。您可以使用sysctl或透過修改配置檔案來配置這些引數。下面是一些常見的配置。
kernel.randomize_va_space=2 # randomnize address base for mmap, heap, and stackkernel.panic=10 # reboot after 10 sec following a kernel panicnet.ipv4.icmp_ignore_bogus_error_resp***es # protects bad error messagesnet.ipv4.ip_forward=0 # disables IP forwardingnet.ipv4.icmp_ignore_bogus_error_resp***es=1 # ignores ICP errors這些只是一些基本的配置。您將根據經驗學習不同的核心配置方法。
Linux核心透過netfilterapi為網路包提供了健壯的過濾方法。您可以使用iptables與這個API互動,併為網路請求設定自定義過濾器。下面是面向安全使用者的一些基本iptables規則。
-A INPUT -j REJECT # reject all inbound requests-A FORWARD -j REJECT # reject traffic forwarding-A INPUT -i lo -j ACCEPT-A OUTPUT -o lo -j ACCEPT # allow traffic on localhost# allow ping requests-A OUTPUT -p icmp -j ACCEPT # allow outgoing pings# allow established/related connecti***-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT# allow DNS lookups-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT# allow http/https requests-A OUTPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT-A OUTPUT -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT# allow SSH access-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT-A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT您可以利用日誌來更好地理解您的Linux機器。您的系統為應用程式和服務儲存多個日誌檔案。我們在這裡概述一些基本的。
保護Linux系統並不像你想象的那麼難。您可以透過遵循本指南中提到的一些提示來加強安全性。隨著經驗的積累,您將掌握更多保護Linux的方法。
...常常是一個挑戰。儘管像ChaletOS和Manjaro這樣的Linux發行版針對的是入門級使用者和那些從Windows切換過來的使用者,但是學習曲線仍然很陡峭。誠然,包括命令列和擺弄依賴項在內的方面對初學者並不友好。 ...
... 5raspberry-pi:針對初學者的raspberry-pi程式設計,包括raspberry-pi專案、技巧、技巧等 ...
...人都應該使用Ubuntu。特別是,Ubuntu和它的大多數派生版本對初學者非常友好,所以我向任何進軍Linux的人推薦這個。我第一次使用Linux是在一個古老的太空梭XPC系統上安裝Lubuntu。 ...
... 雖然當前關於Unity Learn的大部分內容是針對初學者的,但它也為經驗豐富的開發人員提供了教程。 ...
...用程式啟動器。如果這兩個都不是你喜歡的,我們有一個針對Linux的九個最好的應用程式啟動程式的列表。很有可能你會在他們中間找到至少一個你真正喜歡的人。 ...
... TuxMath實際上是針對兒童的一系列遊戲和程式的一部分,雖然它的過時介面在2019年沒有獲獎,但它是幫助兒童學習(並學會熱愛)數學的一個非常有效的工具,尤其是在傳統學習不適合...
...你不會發現Blender或FreeCAD工具的相同範圍,但Tinkercad是絕對初學者的完美入門點。 ...