魔扣论坛

魔扣源码论坛业务
查看: 641|回复: 5

Ubuntu/Linux服务器安全配置

[复制链接]
  • TA的每日心情
    慵懒
    昨天 00:32
  • 签到天数: 2957 天

    [LV.Master]开坛老将

    7万

    主题

    227

    回帖

    27万

    积分

    管理员

    Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

    魔扣币
    745759
    贡献
    157915
    威望
    32799

    最佳新人活跃会员热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2017-1-14 16:57:27 | 显示全部楼层 |阅读模式
    魔扣币兑换比例:【 50以下 : ¥1 = 10 魔扣币 】丨【 50 - 100 :¥1 = 20 魔扣币】丨【 100以上:¥1 = 30 魔扣币 】

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
                            很少见有人马上为一台新安装的服务器做安全措施,然而我们生活所在的这个社会使得这件事情是必要的。不过为什么仍旧这么多人把它拖在最后?我也做过相同的事,这通常可以归结为我们想要马上去折腾那些有趣的东西。希望这篇文章将向大家展示,确保服务器安全没有你想得那样难。在攻击开始后,俯瞰你的“堡垒”,也相当享受。
      这篇文章为 Ubuntu 12.04.2 LTS 而写,你也可以在任何其他 Linux 分发版上做相同的事情。
      如果服务器已经有了一个公有IP,你会希望立即锁定 root 访问。事实上,你得锁定整个ssh访问,并确保只有你可以访问。增加一个新用户,把它加入admin组(在/etc/sudoers预配置以拥有sudo访问权限)。
      $ 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
      你也将希望在你电脑上创建一个私有key,并且在服务器上禁用讨厌的密码验证。
      $ 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
      更新服务器
      既然你是访问服务器的唯一用户,你就不用担心黑客鬼鬼祟祟进入,再次正常呼吸。当有一些针对你服务器的更新时,正是修补的机会,所以动手吧,就现在。
      $ 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) 。。。
      。。。
      安装防火墙
      安装现在正最流行的防火墙软件?好,行动吧。那就配置一个防火墙。之后你总是可以增加另一个异常,几分钟额外的工作并不会折腾死你。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 ACCEPT
      COMMIT
      通过 iptables-apply 命令为规则集生效。如果你丢失连接,修补你的规则,在继续之前再试一下
      $ 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.
      创建文件 /etc/network/if-pre-up.d/iptables,然后写入下面内容。当你启动服务器的时候,将自动载入你的iptables规则。
      /etc/network/if-pre-up.d/iptables
      #!/bin/sh
      iptables-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.。。 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,并且可以设置禁止恶意用户的时间量(默认是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 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
      这有一些其他的你想检查的配置,尽管缺省配置已经相当不错了,所以,快速浏览这些,直到你读到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 section
      action = %(action_mwl)s
      Jails 监控
      为了让Fail2ban工作,需要了解要监控哪些东西。这些已在Jails部分的配置文件,并且这有一些预载入而未启用的例子。既然到目前为止,你仅仅在服务器上启用了SSH访问,那我们就只启用SSH和SSH-DDos 监控,然而你还是会想给安装在这台服务器上的公共访问服务增加新的监控。
      /etc/fail2ban/jail.local
      [ssh]
      enabled = true
      port = ssh
      filter = sshd
      logpath = /var/log/auth.log
      maxretry = 6
      [ssh-ddos]
      enabled = true
      port = ssh
      filter = sshd-ddos
      logpath = /var/log/auth.log
      maxretry = 6
      让变化生效
      既然我们已经配置了Fail2ban,你将希望重新载入它,并且确保向iptables增加了合适的规则。
      $ 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 来列出你的规则,随后列出所有当前禁止的 IP。此时,Fail2ban正在处理两个恶意的用户。
      Banned IPs
      DROP all -- 204.50.33.22 anywhere
      DROP all -- 195.128.126.114 anywhere
      保持最新更新
      你可能现在拥有一个已经锁定并且准备投入使用的服务器,然而这并不是你安全之旅的终点。保持最新更新(并且总是首先在非产品环境下测试),总是关闭你不需要的端口,定期检查你的日志,并且由内而外了解你的服务器。

                
    会员购买:>> 点击购买 << | 魔扣币购买:>> 点击购买 <<
    承接业务:服务器代维丨网站托管丨SEO
    联系客服:微信:morko-net | QQ:1367681973

    该用户从未签到

    3

    主题

    243

    回帖

    489

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    243
    贡献
    243
    威望
    0
    发表于 2017-3-17 13:09:32 | 显示全部楼层
    人生中难得一个挚友,难获一份真诚;让我们珍藏网络中每一个感动,珍惜我们不相见却相遇,不相识而心相通的空间情缘;魔扣源码论坛祝愿我的朋友永远快乐!永远幸福!愿友谊天长地久!

    该用户从未签到

    2

    主题

    246

    回帖

    494

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    246
    贡献
    246
    威望
    0
    发表于 2017-7-27 20:12:29 | 显示全部楼层
    缘份存在心里是浪漫的梦境,思念藏在心底是芬芳的记忆,魔扣源码论坛上的友情放在心上是甜蜜的旋律,朋友记在心头是温馨的美丽。

    该用户从未签到

    1

    主题

    232

    回帖

    465

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    232
    贡献
    232
    威望
    0
    发表于 2017-12-4 20:56:40 | 显示全部楼层
    非常好,顶一下

    该用户从未签到

    0

    主题

    284

    回帖

    568

    积分

    高级魔扣

    Rank: 4

    魔扣币
    284
    贡献
    284
    威望
    0
    发表于 2018-6-21 21:49:21 来自手机 | 显示全部楼层
    啊啊啊啊啊啊啊啊啊啊啊

    该用户从未签到

    1

    主题

    252

    回帖

    505

    积分

    高级魔扣

    Rank: 4

    魔扣币
    252
    贡献
    252
    威望
    0
    发表于 2018-11-15 22:29:03 | 显示全部楼层
    忘掉岁月,忘掉痛苦,忘掉你的坏,我们永不永不说再见。',
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 联系我们
    • 新浪微博 :
    • 在线客服 :魔扣科技 
    • 源码QQ群 :魔扣源码论坛官方总群
    • 联系邮箱 :charlin#morko.net
    • 微信扫一扫
    快速回复 返回顶部 返回列表