电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

如何保證Linux服務器的安全

瀏覽:131日期:2024-07-27 08:17:49

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

如何保證Linux服務器的安全

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

我從哪兒開始?

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

$ sudo addgroup adminAdding group ’admin’ (GID 1001)Done.$ sudo adduser spenserjAdding 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 successfullyChanging the user information for spenserjEnter 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

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

$ mkdir ~/.ssh$ echo 'ssh-rsa [your public key]' > ~/.ssh/authorized_keys

/etc/ssh/sshd_config

PermitRootLogin noPermitEmptyPasswords noPasswordAuthentication noAllowUsers spenserj

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

$ sudo service ssh restartssh stop/waitingssh start/running, process 1599更新服務器

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

$ sudo apt-get update...Hit http://ca.archive.ubuntu.com precise-updates/universe Translation-en_CAHit http://ca.archive.ubuntu.com precise-updates/universe Translation-enHit http://ca.archive.ubuntu.com precise-backports/main Translation-enHit http://ca.archive.ubuntu.com precise-backports/multiverse Translation-enHit http://ca.archive.ubuntu.com precise-backports/restricted Translation-enHit http://ca.archive.ubuntu.com precise-backports/universe Translation-enFetched 3,285 kB in 5s (573 kB/s)Reading package lists... Done$ sudo apt-get upgradeReading package lists... DoneBuilding dependency treeReading state information... DoneThe following packages have been kept back: linux-headers-generic-lts-quantal linux-image-generic-lts-quantalThe 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) ......安裝防火墻

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

$ sudo mkdir /etc/iptables

/etc/iptables/rules

*filter:INPUT DROP [0:0]:FORWARD DROP [0:0]:OUTPUT 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 ACCEPTCOMMIT

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

$ sudo iptables-apply /etc/iptables/rulesApplying new ruleset... done.Can you establish NEW connections to the machine? (y/N) y... then my job is done. See you next time.

創建文件 /etc/network/if-pre-up.d/iptables,然后寫入下面內容。當你啟動服務器的時候,將自動載入你的iptables規則。

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

#!/bin/shiptables-restore < /etc/iptables/rules

現在給它執行權限,執行文件,以確保它正常載入

$ sudo chmod +x /etc/network/if-pre-up.d/iptables$ sudo /etc/network/if-pre-up.d/iptables用 Fail2ban 處理潛在黑客

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

Install Fail2ban

$ sudo apt-get install fail2ban[sudo] password for sjones:Reading package lists... DoneBuilding dependency treeReading state information... DoneThe following extra packages will be installed: gamin libgamin0 python-central python-gamin python-support whoisSuggested packages: mailxThe following NEW packages will be installed: fail2ban gamin libgamin0 python-central python-gamin python-support whois0 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,并且可以設置禁止惡意用戶的時間量(默認是10分鐘)。你也將希望設置一個destemail,這里我通常輸入我自已的email地址,再在后面加上 ,fail2ban@blocklist.de 。BlockList.de 是一個跟蹤并且自動報告黑客IP的系統。

/etc/fail2ban/jail.local

[DEFAULT]# 'ignoreip' can be an IP address, a CIDR mask or a DNS hostignoreip = 127.0.0.1/8bantime = 600maxretry = 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 nowbackend = auto## Destination email address used solely for the interpolations in# jail.{conf,local} configuration files.destemail = root@localhost,fail2ban@blocklist.de

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

Actions

Actions 允許你對惡意行為作出反應,然而當我們想要它禁止和發郵件的時候,默認是禁用了 iptables。值得感謝的是,有一個預配置文件 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 sectionaction = %(action_mwl)sJails 監控

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

/etc/fail2ban/jail.local

[ssh]enabled = trueport = sshfilter = sshdlogpath = /var/log/auth.logmaxretry = 6[ssh-ddos]enabled = trueport = sshfilter = sshd-ddoslogpath = /var/log/auth.logmaxretry = 6應用改變

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

$ sudo service fail2ban restart * Restarting authentication failure monitor fail2ban ...done.$ sudo iptables -LChain INPUT (policy DROP)target prot opt source destinationfail2ban-ssh-ddos tcp -- anywhere anywhere multiport dports sshfail2ban-ssh tcp -- anywhere anywhere multiport dports ssh...Chain fail2ban-ssh (1 references)target prot opt source destinationRETURN all -- anywhere anywhereChain fail2ban-ssh-ddos (1 references)target prot opt source destinationRETURN all -- anywhere anywhere

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

Banned IPs

DROP all -- 204.50.33.22 anywhereDROP all -- 195.128.126.114 anywhere保持最新更新

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

HackerNews 上的討論

我的這篇文章,在 HackerNews 上有一些很好的評論,如果你對不同觀點和更好的安全性感興趣的話,我建議你去看看。這篇文章目的是作為服務器安全的新手指南,在這篇文章結束的時候,并不意味著你的服務器是無懈可擊的。用本文來快速鎖定一個新服務器,在它之上為你特有的情況建立其他措施。你可能希望查詢 IPV6 安全,改變你的SSH端口(通過隱藏達到安全目的),安全內核(SELinux和GRSecurity),跟蹤系統改變,并且如果你的服務器曾經不安全或已經在線相當長時間了的話,全面檢查一番。一臺服務器有好幾百個入口點,并且每一個你安裝的應用都帶來了額外的潛在漏洞,但是通過合適的工具,你可以免去困擾,直接去睡大覺了。

原文鏈接: Spenser Jones 翻譯: 伯樂在線 - 伯樂在線讀者

標簽: Linux系統
相關文章:
主站蜘蛛池模板: 空气能采暖,热泵烘干机,空气源热水机组|设备|厂家,东莞高温热泵_正旭新能源 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 网站制作优化_网站SEO推广解决方案-无锡首宸信息科技公司 | 冷却塔风机厂家_静音冷却塔风机_冷却塔电机维修更换维修-广东特菱节能空调设备有限公司 | 作文导航网_作文之家_满分作文_优秀作文_作文大全_作文素材_最新作文分享发布平台 | 橡胶膜片,夹布膜片,橡胶隔膜密封,泵阀设备密封膜片-衡水汉丰橡塑科技公司网站 | 银川美容培训-美睫美甲培训-彩妆纹绣培训-新娘化妆-学化妆-宁夏倍莱妮职业技能培训学校有限公司 临时厕所租赁_玻璃钢厕所租赁_蹲式|坐式厕所出租-北京慧海通 | 铸铝门厂家,别墅大门庭院大门,别墅铸铝门铜门[十大品牌厂家]军强门业 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | RS系列电阻器,RK_RJ启动调整电阻器,RQ_RZ电阻器-上海永上电器有限公司 | 冷却塔减速机器_冷却塔皮带箱维修厂家_凉水塔风机电机更换-广东康明冷却塔厂家 | 洗瓶机厂家-酒瓶玻璃瓶冲瓶机-瓶子烘干机-封口旋盖压盖打塞机_青州惠联灌装机械 | 世界箱包品牌十大排名,女包小众轻奢品牌推荐200元左右,男包十大奢侈品牌排行榜双肩,学生拉杆箱什么品牌好质量好 - Gouwu3.com | 防锈油-助焊剂-光学玻璃清洗剂-贝塔防锈油生产厂家 | 广州食堂承包_广州团餐配送_广州堂食餐饮服务公司 - 旺记餐饮 | 岩棉板|岩棉复合板|聚氨酯夹芯板|岩棉夹芯板|彩钢夹芯板-江苏恒海钢结构 | 施工围挡-施工PVC围挡-工程围挡-深圳市旭东钢构技术开发有限公司 | 重庆网站建设,重庆网站设计,重庆网站制作,重庆seo,重庆做网站,重庆seo,重庆公众号运营,重庆小程序开发 | 全自动在线分板机_铣刀式在线分板机_曲线分板机_PCB分板机-东莞市亿协自动化设备有限公司 | 软瓷_柔性面砖_软瓷砖_柔性石材_MCM软瓷厂家_湖北博悦佳软瓷 | 排烟防火阀-消防排烟风机-正压送风口-厂家-价格-哪家好-德州鑫港旺通风设备有限公司 | 注塑机-压铸机-塑料注塑机-卧式注塑机-高速注塑机-单缸注塑机厂家-广东联升精密智能装备科技有限公司 | 云南外加剂,云南速凝剂,云南外加剂代加工-普洱澜湄新材料科技有限公司 | 万家财经_财经新闻_在线财经资讯网| 欧必特空气能-商用空气能热水工程,空气能热水器,超低温空气源热泵生产厂家-湖南欧必特空气能公司 | IP检测-检测您的IP质量| 金环宇|金环宇电线|金环宇电缆|金环宇电线电缆|深圳市金环宇电线电缆有限公司|金环宇电缆集团 | 3d可视化建模_三维展示_产品3d互动数字营销_三维动画制作_3D虚拟商城 【商迪3D】三维展示服务商 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 拉卡拉POS机官网 - 官方直营POS机办理|在线免费领取 | 杭州网络公司_百度SEO优化-外贸网络推广_抖音小程序开发-杭州乐软科技有限公司 | 钢制暖气片散热器_天津钢制暖气片_卡麦罗散热器厂家 | 手术室净化装修-手术室净化工程公司-华锐手术室净化厂家 | 江西自考网| 阴离子聚丙烯酰胺价格_PAM_高分子聚丙烯酰胺厂家-河南泰航净水材料有限公司 | 新型锤式破碎机_新型圆锥式_新型颚式破碎机_反击式打沙机_锤式制砂机_青州建源机械 | 电动百叶窗,开窗器,电动遮阳百叶,电动开窗机生产厂家-徐州鑫友工控科技发展有限公司 | 欧必特空气能-商用空气能热水工程,空气能热水器,超低温空气源热泵生产厂家-湖南欧必特空气能公司 | 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 膏方加工_丸剂贴牌_膏滋代加工_湖北康瑞生物科技有限公司 | 涂层测厚仪_漆膜仪_光学透过率仪_十大创新厂家-果欧电子科技公司 |