国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Ubuntu > 正文

Ubuntu/Linux服務(wù)器安全配置

2020-05-27 13:26:41
字體:
供稿:網(wǎng)友

        很少見有人馬上為一臺新安裝的服務(wù)器做安全措施,然而我們生活所在的這個社會使得這件事情是必要的。不過為什么仍舊這么多人把它拖在最后?我也做過相同的事,這通??梢詺w結(jié)為我們想要馬上去折騰那些有趣的東西。希望這篇文章將向大家展示,確保服務(wù)器安全沒有你想得那樣難。在攻擊開始后,俯瞰你的“堡壘”,也相當享受。

  這篇文章為 Ubuntu 12.04.2 LTS 而寫,你也可以在任何其他 Linux 分發(fā)版上做相同的事情。

  如果服務(wù)器已經(jīng)有了一個公有IP,你會希望立即鎖定 root 訪問。事實上,你得鎖定整個ssh訪問,并確保只有你可以訪問。增加一個新用戶,把它加入admin組(在/etc/sudoers預(yù)配置以擁有sudo訪問權(quán)限)。

  $ sudo addgroup admin

  Adding group ‘admin’ (GID 1001)

  Done.

  $ sudo adduser spenserj

  Adding user `spenserj‘ 。。。

  Adding new group `spenserj’ (1002) 。。。

  Adding new user `spenserj‘ (1001) with group `spenserj’ 。。。

  Creating home directory `/home/spenserj‘ 。。。

  Copying files from `/etc/skel’ 。。。

  Enter new UNIX password:

  Retype new UNIX password:

  passwd: password updated successfully

  Changing the user information for spenserj

  Enter the new value, or press ENTER for the default

  Full Name []: Spenser Jones

  Room Number []:

  Work Phone []:

  Home Phone []:

  Other []:

  Is the information correct? [Y/n] y

  $ sudo usermod -a -G admin spenserj

  你也將希望在你電腦上創(chuàng)建一個私有key,并且在服務(wù)器上禁用討厭的密碼驗證。

  $ mkdir ~/.ssh

  $ echo “ssh-rsa [your public key]” 》 ~/.ssh/authorized_keys

  /etc/ssh/sshd_config

  PermitRootLogin no

  PermitEmptyPasswords no

  PasswordAuthentication no

  AllowUsers spenserj

  重新加載SSH,使用修改生效,之后嘗試在一個新會話中登陸來確保所有事情正常工作。如果你不能登陸,你將仍然擁有你的原始會話來做修改。

  $ sudo service ssh restart

  ssh stop/waiting

  ssh start/running, process 1599

  更新服務(wù)器

  既然你是訪問服務(wù)器的唯一用戶,你就不用擔心黑客鬼鬼祟祟進入,再次正常呼吸。當有一些針對你服務(wù)器的更新時,正是修補的機會,所以動手吧,就現(xiàn)在。

  $ sudo apt-get update

  。。。

  Hit http://ca.archive.ubuntu.com precise-updates/universe Translation-en_CA

  Hit http://ca.archive.ubuntu.com precise-updates/universe Translation-en

  Hit http://ca.archive.ubuntu.com precise-backports/main Translation-en

  Hit http://ca.archive.ubuntu.com precise-backports/multiverse Translation-en

  Hit http://ca.archive.ubuntu.com precise-backports/restricted Translation-en

  Hit http://ca.archive.ubuntu.com precise-backports/universe Translation-en

  Fetched 3,285 kB in 5s (573 kB/s)

  Reading package lists.。。 Done

  $ sudo apt-get upgrade

  Reading package lists.。。 Done

  Building dependency tree

  Reading state information.。。 Done

  The following packages have been kept back:

  linux-headers-generic-lts-quantal linux-image-generic-lts-quantal

  The following packages will be upgraded:

  accountsservice apport apt apt-transport-https apt-utils aptitude bash 。。。

  73 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.

  Need to get 61.0 MB of archives.

  After this operation, 151 kB of additional disk space will be used.

  Do you want to continue [Y/n]? Y

  。。。

  Setting up libisc83 (1:9.8.1.dfsg.P1-4ubuntu0.6) 。。。

  Setting up libdns81 (1:9.8.1.dfsg.P1-4ubuntu0.6) 。。。

  Setting up libisccc80 (1:9.8.1.dfsg.P1-4ubuntu0.6) 。。。

  Setting up libisccfg82 (1:9.8.1.dfsg.P1-4ubuntu0.6) 。。。

  Setting up libbind9-80 (1:9.8.1.dfsg.P1-4ubuntu0.6) 。。。

  Setting up liblwres80 (1:9.8.1.dfsg.P1-4ubuntu0.6) 。。。

  Setting up bind9-host (1:9.8.1.dfsg.P1-4ubuntu0.6) 。。。

  Setting up dnsutils (1:9.8.1.dfsg.P1-4ubuntu0.6) 。。。

  Setting up iptables (1.4.12-1ubuntu5) 。。。

  。。。

  安裝防火墻

  安裝現(xiàn)在正最流行的防火墻軟件?好,行動吧。那就配置一個防火墻。之后你總是可以增加另一個異常,幾分鐘額外的工作并不會折騰死你。Iptables在Ubuntu里預(yù)裝了,所以去設(shè)置一些規(guī)則吧。

  $ sudo mkdir /etc/iptables

  /etc/iptables/rules

  *filter

 ?。篒NPUT DROP [0:0]

 ?。篎ORWARD DROP [0:0]

 ?。篛UTPUT DROP [0:0]

  # Accept any related or established connections

  -I INPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT

  -I OUTPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT

  # Allow all traffic on the loopback interface

  -A INPUT -i lo -j ACCEPT

  -A OUTPUT -o lo -j ACCEPT

  # Allow outbound DHCP request - Some hosts (Linode) automatically assign the primary IP

  #-A OUTPUT -p udp --dport 67:68 --sport 67:68 -j ACCEPT

  # Outbound DNS lookups

  -A OUTPUT -o eth0 -p udp -m udp --dport 53 -j ACCEPT

  # Outbound PING requests

  -A OUTPUT -p icmp -j ACCEPT

  # Outbound Network Time Protocol (NTP) request

  -A OUTPUT -p udp --dport 123 --sport 123 -j ACCEPT

  # SSH

  -A INPUT -i eth0 -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT

  # Outbound HTTP

  -A OUTPUT -o eth0 -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT

  -A OUTPUT -o eth0 -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT

  COMMIT

  通過 iptables-apply 命令為規(guī)則集生效。如果你丟失連接,修補你的規(guī)則,在繼續(xù)之前再試一下

  $ sudo iptables-apply /etc/iptables/rules

  Applying new ruleset.。。 done.

  Can you establish NEW connections to the machine? (y/N) y

  。。。 then my job is done. See you next time.

  創(chuàng)建文件 /etc/network/if-pre-up.d/iptables,然后寫入下面內(nèi)容。當你啟動服務(wù)器的時候,將自動載入你的iptables規(guī)則。

  /etc/network/if-pre-up.d/iptables

  #!/bin/sh

  iptables-restore 《 /etc/iptables/rules

  現(xiàn)在給它執(zhí)行權(quán)限,執(zhí)行文件,以確保它正常載入

  $ sudo chmod +x /etc/network/if-pre-up.d/iptables

  $ sudo /etc/network/if-pre-up.d/iptables

  用 Fail2ban 處理潛在黑客

  當談到安全的時,F(xiàn)ail2ban 是我最喜歡的工具之一,它將監(jiān)控你的日志文件,并且可以臨時禁止那些正在濫用你資源,或者正在強制肆虐你的SSH連接,或者正在dos攻擊你web服務(wù)器的用戶。

  Install Fail2ban

  $ sudo apt-get install fail2ban

 ?。踫udo] password for sjones:

  Reading package lists.。。 Done

  Building dependency tree

  Reading state information.。。 Done

  The following extra packages will be installed:

  gamin libgamin0 python-central python-gamin python-support whois

  Suggested packages:

  mailx

  The following NEW packages will be installed:

  fail2ban gamin libgamin0 python-central python-gamin python-support whois

  0 upgraded, 7 newly installed, 0 to remove and 2 not upgraded.

  Need to get 254 kB of archives.

  After this operation, 1,381 kB of additional disk space will be used.

  Do you want to continue [Y/n]? y

  。。。

  雖然 Fail2ban 安裝一個默認配置(/etc/fail2ban/jail.conf),但我們希望在 /etc/fail2ban/jail.local 寫配置,所以把它拷貝到那兒。

  sudo cp /etc/fail2ban/jail.{conf,local}

  配置

  把 ignoreip 行修改為你的ip,并且可以設(shè)置禁止惡意用戶的時間量(默認是10分鐘)。你也將希望設(shè)置一個destemail,這里我通常輸入我自已的email地址,再在后面加上 ,fail2ban@blocklist.de。BlockList.de 是一個跟蹤并且自動報告黑客IP的系統(tǒng)。

  /etc/fail2ban/jail.local

 ?。跠EFAULT]

  # “ignoreip” can be an IP address, a CIDR mask or a DNS host

  ignoreip = 127.0.0.1/8

  bantime = 600

  maxretry = 3

  # “backend” specifies the backend used to get files modification. Available

  # options are “gamin”, “polling” and “auto”。

  # yoh: For some reason Debian shipped python-gamin didn‘t work as expected

  # This issue left ToDo, so polling is default backend for now

  backend = auto

  #

  # Destination email address used solely for the interpolations in

  # jail.{conf,local} configuration files.

  destemail = root@localhost,fail2ban@blocklist.de

  這有一些其他的你想檢查的配置,盡管缺省配置已經(jīng)相當不錯了,所以,快速瀏覽這些,直到你讀到Actions章節(jié)。

  Actions

  Actions 允許你對惡意行為作出反應(yīng),然而當我們想要它禁止和發(fā)郵件的時候,默認是禁用了 iptables。值得感謝的是,有一個預(yù)配置文件 action_wml,它恰恰是做這個的。

  /etc/fail2ban/jail.local

  # Choose default action. To change, just override value of ’action‘ with the

  # interpolation to the chosen action shortcut (e.g. action_mw, action_mwl, etc) in jail.local

  # globally (section [DEFAULT]) or per specific section

  action = %(action_mwl)s

  Jails 監(jiān)控

  為了讓Fail2ban工作,需要了解要監(jiān)控哪些東西。這些已在Jails部分的配置文件,并且這有一些預(yù)載入而未啟用的例子。既然到目前為止,你僅僅在服務(wù)器上啟用了SSH訪問,那我們就只啟用SSH和SSH-DDos 監(jiān)控,然而你還是會想給安裝在這臺服務(wù)器上的公共訪問服務(wù)增加新的監(jiān)控。

  /etc/fail2ban/jail.local

 ?。踫sh]

  enabled = true

  port = ssh

  filter = sshd

  logpath = /var/log/auth.log

  maxretry = 6

 ?。踫sh-ddos]

  enabled = true

  port = ssh

  filter = sshd-ddos

  logpath = /var/log/auth.log

  maxretry = 6

  讓變化生效

  既然我們已經(jīng)配置了Fail2ban,你將希望重新載入它,并且確保向iptables增加了合適的規(guī)則。

  $ sudo service fail2ban restart

  * Restarting authentication failure monitor fail2ban

  。。.done.

  $ sudo iptables -L

  Chain INPUT (policy DROP)

  target prot opt source destination

  fail2ban-ssh-ddos tcp -- anywhere anywhere multiport dports ssh

  fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh

  。。。

  Chain fail2ban-ssh (1 references)

  target prot opt source destination

  RETURN all -- anywhere anywhere

  Chain fail2ban-ssh-ddos (1 references)

  target prot opt source destination

  RETURN all -- anywhere anywhere

  在任何時間,你都可以使用sudo iptables -L 來列出你的規(guī)則,隨后列出所有當前禁止的 IP。此時,F(xiàn)ail2ban正在處理兩個惡意的用戶。

  Banned IPs

  DROP all -- 204.50.33.22 anywhere

  DROP all -- 195.128.126.114 anywhere

  保持最新更新

  你可能現(xiàn)在擁有一個已經(jīng)鎖定并且準備投入使用的服務(wù)器,然而這并不是你安全之旅的終點。保持最新更新(并且總是首先在非產(chǎn)品環(huán)境下測試),總是關(guān)閉你不需要的端口,定期檢查你的日志,并且由內(nèi)而外了解你的服務(wù)器。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 营口市| 双城市| 巫山县| 循化| 昭平县| 德格县| 新津县| 嘉定区| 大足县| 屏南县| 同心县| 基隆市| 肇东市| 仙游县| 田林县| 通城县| 湘阴县| 依安县| 百色市| 潼南县| 安徽省| 博湖县| 苍梧县| 伊通| 贵定县| 浮梁县| 韶山市| 景东| 沁源县| 肇庆市| 邛崃市| 临汾市| 若尔盖县| 永安市| 保靖县| 调兵山市| 龙山县| 喀什市| 米脂县| 宁安市| 平阴县|