最大化GNU / Linux上的安全性

你好,朋友 DesdeLinux,所承諾的是一筆債務,這是一篇關於 如何最大限度地保護Linux系統 並保持那樣 安全 從入侵者以及保護您的服務器,PC或筆記本電腦上的信息!!!!

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

在名為[DEFAULT]的部分中,我們取消註釋並修改#bantime = 3600,如下所示:

#bantime = 3600 bantime = 604800

在[sshd]部分中,我們介紹enabled = true,如下所示:

#enabled = true enabled = true

我們用CTRL + O保存,然後用CTRL + X關閉

我們啟動服務:

Fedora,RHEL,CentOS:

systemctl啟用fail2ban.service systemctl啟動fail2ban.service

Debian,Ubuntu:

服務fail2ban啟動

使用ssh拒絕root訪問:

為了保護我們的機器,我們將通過root用戶拒絕ssh。 為此,我們編輯/ etc / ssh / sshd_config文件,如下所示:

cp sshd_config sshd_config.bck納米/ etc / ssh / sshd_config

我們取消評論並改變

#Protocol 2協議2

我們取消評論並改變

#PermitRootLogin是PermitRootLogin否

我們用CTRL + O保存,然後用CTRL + X關閉

我們啟動服務:

Fedora,RHEL,CentOS:

systemctl啟用sshd.service systemctl啟動sshd.service

Debian,Ubuntu:

服務sshd啟動

使用密碼拒絕對SSH服務器的訪問,僅允許使用RSA密鑰進行SSH

如果要將PC1連接到Server1,我們要做的第一件事就是在PC1上生成密鑰。 使用我們的用戶並且在PC1上沒有root用戶,我們執行:

ssh-keygen -t rsa -b 8192(由於通常使用從1024到2048的密鑰,因此它生成的不僅僅是安全密鑰)

獲得密碼後,將其上傳到Server1:

ssh-copy-id用戶@ server_ip

完成此操作後,我們將連接到Server1並使用root權限修改nano / etc / ss / sshd_config文件:

ssh用戶@ Server1 nano / etc / ssh / sshd_config

我們將表示#PasswordAuthentication yes的行更改為此:

#PasswordAuthentication是
密碼驗證否

我們用CTRL + O保存,然後用CTRL + X關閉

我們重新啟動ssh服務:

Fedora,RHEL,CentOS:

systemctl重新啟動sshd.service

Debian,Ubuntu:

服務sshd重新啟動

更改ssh監聽端口

再次,我們編輯/ etc / ssh / sshd_config,在引用端口的部分中,我們將其保留為:

#Port 22 Port 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重新啟動

火牆

Fedora,RHEL,CentOS:

在這些系統上,默認情況下會激活Selinux和Iptables,我建議您繼續這種方式。 如何用iptables打開端口? 讓我們看看如何打開之前更改的ssh端口的新端口2000:

打開:

納米/ etc / sysconfig / iptables

並且我們修改了引用默認ssh端口22的行,並將其保留為:

#-A INPUT -m狀態--state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 2000 -j ACCEPT

我們用CTRL + O保存,然後用CTRL + X關閉

我們重新啟動服務:

systemctl重新啟動iptables

Debian,Ubuntu:

在Debian或Ubuntu及其衍生產品中,我們擁有UFW防火牆,這使我們的生活變得輕鬆,因為它非常容易管理Netfilter。

安裝方式:

apt-get install ufw ufw啟用

要查看開放端口的狀態,我們執行:

ufw狀態

打開一個端口(在我們的示例中,它將是新的ssh端口2000):

ufw allow 2000

拒絕端口(在本例中為ssh的默認端口22):

ufw deny 22 ufw delete deny 22

和準備好的朋友。 這樣,它們將確保您的機器安全。 不要忘記發表評論,直到下一次:D.


41條評論,留下您的評論

發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   罪人 他說:

    和一個加密系統,例如: https://www.dyne.org/software/tomb/

    1.    罪人 他說:

      如果用戶通過tty連接,也可以將他們關在家裡:
      http://olivier.sessink.nl/jailkit/index.html#intro
      https://operativoslinux.wordpress.com/2015/02/21/enjaular-usuarios-en-linux/ (簡單的方法)

    2.    友喜 他說:

      加密整個文件系統會更好,更安全。

    3.    彼得切科 他說:

      對於以下有關Linux安全性的教程,我將其考慮在內:D.

      1.    友喜 他說:

        討論通過sysctl強化內核,在支持內核的內核中激活隨機堆和Exec-Shield,啟用對dmesg和/ proc文件系統的訪問,運行審核守護程序,啟用TCP保護SYN,限制訪問/ dev / mem,禁用可能會導致危險或使系統不安全的TCP / IP堆棧選項(重定向,回顯,源路由),使用pam_cracklib為用戶生成強密碼,使用Tomoyo等MAC系統的重要性, AppArmor和SELinux。

  2.   uk 他說:

    很有用!!!! 我一直在尋找謝謝thanks

    1.    彼得切科 他說:

      歡迎您的朋友:)。

  3.   天使之刃 他說:

    如果使用apache,那麼使用mod_rewrite添加規則來避免漫遊器並沒有什麼壞處。 很有用

    http://perishablepress.com/eight-ways-to-blacklist-with-apaches-mod_rewrite/

    1.    羅洛 他說:

      對於nginx,是否有任何技巧或配置?

  4.   羅洛 他說:

    在debian 8中,/ etc / ssh / sshd_config文件已經啟用了協議2,並且PermitRootLogin函數帶有不帶密碼的選項(您只能使用身份驗證密鑰以及具有私鑰的計算機輸入root)

    Debian 8 Firewalld中的pd已到來,這對ufw來說很小

    1.    獵人 他說:

      你看過蕨類嗎? 我喜歡規則的定義。

      http://ferm.foo-projects.org/download/examples/webserver.ferm

    2.    彼得切科 他說:

      好吧,我很高興Debian 8使用firewalld,因為它非常非常好...

  5.   獵人 他說:

    當心fail2ban,攻擊者使用本地pc的ip製造數據包並使DOS非常容易。

    1.    Hery 他說:

      手動,本地PC IP和環回一從Fail2ban列表中排除。
      如果沒有,我們可能會有誤報。

  6.   傑森·索托 他說:

    良好且非常有效的建議…當然,在服務器環境中,如果我們託管網站,則它涉及其他步驟……。 當前,我們維護著一個名為JackTheStripper的項目,該項目不過是一個bash腳本,該腳本按照最佳安全實踐針對Web應用程序使用GNU / Linux準備並保護服務器。 http://www.jsitech.com/jackthestripper ....

    1.    友喜 他說:

      不錯的腳本,儘管我喜歡保留kernel.randomize_va_space = 2的值

      1.    傑森·索托 他說:

        好消息是,在運行它之前,您可以根據需要對其進行一些修改.....您好...

    2.    彼得切科 他說:

      您好,當然,我的帖子處理的是基本的被保險人,每個人都必須或多或少地保護自己,具體取決於其係統中安裝的服務,例如LAMP或FTP,SFTP,BIND和長期服務:)…

      在下一篇有關安全性的文章中,我將解決這些問題。

      感謝您的積極反饋 :)。

  7.   NEX 他說:

    @petercheco,您的指南非常好,FreeeBSD系統的加密指南會很好,我不知道您什麼時候要做有關FreeBSD的第二部分,有關桌面的配置和自定義,關於防火牆,關於創建和配置無線網絡。

    1.    彼得切科 他說:

      你好,朋友,
      由於發布頻率不高,我有點忙,但是在下一個FreeBSD帖子中,我會記住這一點。

      一聲問候 :)。

  8.   索拉克彩虹戰士 他說:

    評論中的內容,我不知道您在說什麼,沒人xD
    很棒的文章!

  9.   il 他說:

    這種安全措施意味著以任何方式限制設備嗎?

    1.    彼得切科 他說:

      否...完全不限制系統的正常使用。

  10.   罪人 他說:

    有趣的是(悲慘的)事情是,正如我們在Lenovo機器上看到的那樣,如果BIOS固件被惡意軟件篡改,那麼您無所事事。

    1.    彼得切科 他說:

      只要您使用製造商預先安裝的Windows ...

      1.    罪人 他說:

        錯誤:請記住,他們已將其安裝在bios固件中,也就是說,它首先在每次重新啟動時啟動系統,然後在操作系統之前,在惡魔之前首先啟動,並且不允許您對此採取任何措施。可以做到的,所以uefi的想法原則上是好的。

  11.   巴勃羅 他說:

    有趣的文章,今天下午我會更仔細地閱讀。 謝謝。

    1.    彼得切科 他說:

      沒問題 :)。 我很高興。

  12.   卡洛斯·貝斯特 他說:

    很棒的文章,整個下午我都自娛自樂地閱讀。 非常感謝您花時間仔細解釋所有內容,

    來自智利的問候
    卡洛斯

    1.    彼得切科 他說:

      卡洛斯你好,
      非常感謝 :)。

  13.   布賴恩 他說:

    聯想機器,如果bios固件似乎被惡意軟件干擾,則鑑於上述情況,製造商始終會在Windows機器(筆記本電腦-台式計算機)中安裝Windows……該帖子…….petercheco嗎?

    1.    友喜 他說:

      即使不執行所有這些操作,它也可以工作,因為該惡意軟件是針對Windows而非Linux開發的。

  14.   同步標記 他說:

    iptables中缺少許多東西,例如頭昏眼花的nmap,因此所有打開的端口都說謊,這是使用ttl和窗口大小的Windows pc,scanlogd,apache mod security,grsec,selinux或類似的東西。 將ftp替換為sftp,限制每個IP與X端口中每個服務的連接數,以避免在DDoS之前它們使我們沒有服務,並阻止IP發送這麼多UDP這麼多秒。

    1.    彼得切科 他說:

      在您提供的示例中,新用戶會瘋狂閱讀它……您不能將所有內容都寫在一篇文章中。 我將輸入幾個條目:)。

  15.   新奇爾 他說:

    提供啟動服務時,此時我在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:1 Gundam systemd [2]:無法啟動FailXNUMXBan服務。
    20月01日10:01:1 Gundam systemd [2]:單元failXNUMXban.service進入失敗狀態。
    20月01日10:01:1 Gundam systemd [2]:failXNUMXban.service失敗。
    20月01日10:01:1 Gundam systemd [2]:對於failXNUMXban…冰,啟動請求重複太快
    20月01日10:01:1 Gundam systemd [2]:無法啟動FailXNUMXBan服務。
    20月01日10:01:1 Gundam systemd [2]:單元failXNUMXban.service進入失敗狀態。
    20月01日10:01:1 Gundam systemd [2]:failXNUMXban.service失敗。
    提示:一些行被省略,使用-l來完整顯示。
    一些幫助? D:

    1.    彼得切科 他說:

      嗨,如果您使用systemctl enable fail2ban.service和systemctl start fail2ban.service啟用了fail2ban,則問題出在您配置的jails中。 請檢查您的監獄並確認一切正常。

      問候
      彼得切科

      1.    梅克爾·佛朗哥(Maykel Franco) 他說:

        首先很好的教程。 許多事情都遺漏了,但您已將重點放在基礎知識上。

        shini-kire,檢查您的/var/log/fail2ban.log

        問候。

      2.    彼得切科 他說:

        謝謝@Maykel Franco :)。

  16.   喬尼127 他說:

    好,

    fail2ban應該將其安裝在家用PC上還是用於服務器?

    謝謝。

    1.    彼得切科 他說:

      而不是用於服務器,但是如果您使用的是比您更多的人可以訪問的wifi,那就很好了...

  17.   羅德里戈 他說:

    您好朋友,在我看來,Gnu / Linux發行版中的一小段時間是一個很好的安全帖子,我之所以寫此評論,是因為我在Ubuntu 14.04發行版中進行此操作,因為它已經在15.04中發生了什麼是以下問題,我以root身份輸入nano /etc/fail2ban/jail.local,但在sshd部分中沒有可視化,我保存了在[DEFAULT]部分中的註釋,並取消了#bantime = 3600的修改,
    在[sshd]部分中,我們介紹enabled = true,如下所示:
    #啟用 = 真
    enabled = true
    似乎沒有sshd的原因,因為我正在使用舊版本,謝謝