AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 983576
Accepted
yukashima huksay
yukashima huksay
Asked: 2017-12-06 14:32:25 +0800 CST2017-12-06 14:32:25 +0800 CST 2017-12-06 14:32:25 +0800 CST

谁在试图暴力破解我的密码?

  • 772

我正在查看我的服务器上的日志文件,我发现以下行/var/log/.auth.log.1::

pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruse      r= rhost=218.87.109.156  user=root
Failed password for root from 218.87.109.156 port 7612 ssh2
message repeated 5 times: [ Failed password for root from 218.87.109.156 port 7      612 ssh2]
error: maximum authentication attempts exceeded for root from 218.87.109.156 po      rt 7612 ssh2 [preauth]
Disconnecting: Too many authentication failures [preauth]
PAM 5 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=      218.87.109.156  user=root
PAM service(sshd) ignoring max retries; 6 > 3
pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruse      r= rhost=218.87.109.156  user=root
Failed password for root from 218.87.109.156 port 50092 ssh2
message repeated 5 times: [ Failed password for root from 218.87.109.156 port 5      0092 ssh2]
Failed password for invalid user service from 188.187.119.158 port 52722 ssh2
pam_unix(sshd:auth): check pass; user unknown
Failed password for root from 113.195.145.79 port 6500 ssh2
Received disconnect from 121.18.238.39 port 58070:11:  [preauth]
Failed password for root from 121.18.238.119 port 57538 ssh2
Failed password for root from 121.18.238.39 port 57268 ssh2
Failed password for root from 121.18.238.106 port 34360 ssh2
Disconnected from 92.222.216.31 port 58960 [preauth]
Invalid user truman from 92.222.216.31
Received disconnect from 92.222.216.31 port 33922:11: Normal Shutdown, Thank you       for playing [preauth]
input_userauth_request: invalid user truman [preauth]

并且它一直这样持续上千行!

还有我有的地方:

Nov 30 13:17:01 Aran CRON[6038]: pam_unix(cron:session): session opened for user root by (uid=0)

CRON 在这里是什么意思?那么有人可以向我解释一下这些日志是什么吗?我有危险吗?我应该怎么做才能让自己更安全?

ssh
  • 6 6 个回答
  • 4680 Views

6 个回答

  • Voted
  1. thomasrutter
    2017-12-06T14:41:34+08:002017-12-06T14:41:34+08:00

    所有这些尝试登录都是针对 root 用户的,因此看起来只是通过 SSH 进行的基本暴力尝试。

    面向公众的服务器每天进行大量 SSH 蛮力尝试是完全正常的。这是生活中的事实。您可以开始向拥有该 IP 地址的 ISP 报告它们,但这很麻烦,您不会有太大的不同。他们在整个互联网上使用受感染的计算机和/或托管他们在虚假详细信息下注册的帐户。

    如果每个人都决定通过 SSH 禁用 root 登录,和/或要求 root(或每个人)使用基于密钥的登录,那么会有什么不同。只要您完成了其中一项,蛮力尝试基本上是无效的。但是因为有足够多的人仍然启用普通 root 登录,并且上面有一个可猜测的密码,所以这些攻击仍在继续。

    有人推荐的另一件事是将 SSH 守护进程切换到非标准端口号。这并没有真正带来显着的安全优势,但会减少尝试到达日志文件的次数。

    至于你的第二个问题,这只是 Cron 运行,也就是运行计划任务的程序。所有系统都有一堆系统默认配置的计划任务。由于 cron 可以以不同的用户身份运行不同的任务,因此它使用 pam_unix 来处理启动用户会话,即使是 root 用户也是如此,所以这就是它出现在该日志中的原因。

    • 9
  2. Terrance
    2017-12-06T15:11:54+08:002017-12-06T15:11:54+08:00

    此答案并不能真正回答谁在尝试登录您的主机,但它可以让您了解此人来自何处。还有助于防止黑客甚至进入您的主机。

    如果您打算使用密码通过 ssh 登录,您应该采取一些预防措施,以防有人试图侵入您的系统。对于我个人的使用,我喜欢使用fail2ban,然后我编写了自己的脚本,使用iptables和ipset. 后一部分用于完全阻止国家/地区 IP 在端口 22 上进入我的主机。我还安装geoiplookup了一种查看 IP 来自哪里来决定是否要阻止该国家/地区的方法。我在下面的脚本从ipdeny.com. 自从我大部分时间都打开端口 22 以来,它大大减少了我主机上的尝试次数。


    安装fail2ban:

    sudo apt install fail2ban
    

    一般用fail2ban默认设置就OK了。如果要更改它们,请确保复制/etc/fail2ban/jail.conf为并对您创建/etc/fail2ban/jail.local的文件进行修改。jail.local您还可以在/var/log/fail2ban.log文件中看到失败的尝试。


    安装geoiplookup:

    sudo apt install geoip-bin
    

    然后你可以看到IP地址来自哪里。

    ~$ geoiplookup 218.87.109.156
    GeoIP Country Edition: CN, China
    

    我创建的国家/地区屏蔽脚本。

    国家/地区块的必需申请是ipset。此应用程序允许iptables使用 IP 块,而不是在您检查iptables.

    sudo apt install ipset
    

    我确信有很多东西可以清理。我将我的放在我的主文件夹中的脚本子文件夹中并调用它country_block.bsh。由于脚本对其进行了更改,iptables因此必须从sudo. 我确实将检查添加到脚本中。我最近对脚本进行了一些更改,以拒绝数据包而不是丢弃数据包,因此连接会立即断开。

    #!/bin/bash
    
    function custom(){
        echo "Removing CUSTOM_IP set..."
        prts=$(iptables -nvL INPUT | awk '/CUSTOM_IP/ {print $15}')
        iptables -D INPUT -p tcp -m set --match-set CUSTOM_IP src -m multiport --dport ${prts} -j REJECT 2>/dev/null
        ipset destroy CUSTOM_IP
        ipset -N CUSTOM_IP hash:net
        echo "Creating CUSTOM_IP set..."
        for i in $(cat custom.zone); do ipset -A CUSTOM_IP $i; done
        echo "Creating rules for CUSTOM_IP set..."
        iptables -A INPUT -p tcp -m set --match-set CUSTOM_IP src -m multiport --dports ${ports} -j REJECT
    }
    
    function tablecheck(){
        iptables -S INPUT | grep -v ACCEPT 
    }
    
    # Check for ipset
    which ipset >/dev/null
    case $? in
    1) echo "ipset not found on system.  Please install ipset application."
    echo "This is normally installed by sudo apt install ipset"
    exit 1;;
    0);;
    esac
    
    
    # Check for root
    if [ "$EUID" -ne 0 ]; then
      echo "Please run this script as root"
      exit 1
    fi
    
    # Set ports
    #ports=21,22,10000
    ports=22,10000
    
    # Check for country codes, if none, print list.
    if [[ $@ == "" ]]; then
        curl -k https://www.ipdeny.com/ipblocks/ 2>/dev/null | grep "<td>" | awk -F'<p>' '{print $2}' | awk -F'[' '{print $1}' | grep -v -e '^$'
        echo "Choose any of the countries by typing in the two letter code between the ( )."
        exit
    fi
    
    if [[ $1 == "custom" ]]; then
        if [ ! -f custom.zone ]; then
            echo "Missing custom.zone file.  Please create custom.zone file with IP addresses for blocking."
            exit
        fi
        custom
        tablecheck
        exit
    fi
    
    
    #Set ISO to country code(s).
    ISO=$@
    
    #Start Loop for country IP blocks and creating IPTABLES chain(s).
    for c in $ISO; do
    
        #Convert to lowercase.  If already lowercase, ignored.
        c=$(echo $c | awk '{print tolower($0)}')
        #Match code to country name
        country=$(curl -k https://www.ipdeny.com/ipblocks/ 2>/dev/null | grep \($(echo $c | awk '{print toupper($0)}')\) | awk -F'<p>' '{print $2}' | awk -F'(' '{print $1}' | sed 's/ //g' | sed 's/,//g')
    
        # Truncate to 31 characters if too long.
        country=${country:0:31}
        echo "Got country $country..."
    
        echo "Removing Existing Rule for $country (if any)..."
        prts=$(iptables -nvL INPUT | grep "$country" | awk '{print $15}')
        iptables -D INPUT -p tcp -m set --match-set "$country" src -m multiport --dport ${prts} -j REJECT 2>/dev/null
        ipset destroy $country
        ipset -N $country hash:net
        rm $c.zone 2>/dev/null
    
        echo "Downloading IP block for $country..."
        wget --no-check-certificate -P . https://www.ipdeny.com/ipblocks/data/aggregated/$c-aggregated.zone 2>/dev/null
        echo "Checking for invalid IP ranges in $country zone..."
        for i in $(seq 1 7); do grep "/$i$" $c-aggregated.zone; if [[ $? == "0" ]]; then sed -i "s/\/${i}$/\/24/" $c-aggregated.zone; echo "Fixed..."; fi; done
        echo "Creating iptable block for $country..."
        for i in $(cat $c-aggregated.zone); do ipset -A "$country" $i; done
    
        echo "Adding rule to firewall..."
        iptables -A INPUT -p tcp -m set --match-set "$country" src -m multiport --dports ${ports} -j REJECT
    
        echo "Added Firewall Rule for $country"
        rm $c-aggregated.zone 2>/dev/null
    done
    
    if [[ $# == "1" || $1 -ne "custom" ]]; then
        tablecheck
    else
        if [ ! -f custom.zone ]; then
            echo "Missing custom.zone file.  Please create custom.zone file with IP addresses for blocking."
            tablecheck
            exit
        fi
        custom
    fi
    
    if [[ $# -ne "1" ]]; then
        tablecheck
    fi
    
    #iptables -S INPUT | grep -v ACCEPT 
    

    确保使脚本可执行 ( chmod +x country_block.bsh)。然后,您可以custom.zone在与文件相同的文件夹中创建一个country_block.bsh仅包含 IP 的文件,这些 IP 可能会一遍又一遍地尝试破解您的系统。/32在 IP 地址的末尾添加它们,例如256.99.265.106/32. 添加自己的自定义 IP 后,只需运行以下命令即可重新加载它们:

    sudo ./country_block.bsh custom
    

    注意不要屏蔽您自己的国家或您自己的公共 IP。

    还要注意不要阻塞任何其他未打开的端口。如果您阻止了 80 端口,那么如果您从该国家/地区访问一个网站,它就有可能无法加载,因为它无法通过 80 端口返回您的系统。

    然后我在我的主文件夹中创建了另一个脚本cb_update.bsh,其中包含我要阻止的所有国家:

    #!/bin/bash
    
    cd /home/terrance/scripts/
    ./country_block.bsh cn ru nl de dk fr id ie it kr sg tw vn br ua pt il gb jp pk ar co fi in
    

    如果您想阻止除您自己以外的所有国家/地区,请将上面的行更改为以下内容,并确保将您的国家/地区添加到" "行尾以从列表中删除您的国家/地区:

    ./country_block.bsh $(./country_block.bsh | awk -F '[()]' '{print $(NF-1)}' | grep -v "US")
    

    然后我将以下行添加到我的/etc/crontab文件中。它涵盖了每次我的系统重新启动并在早上 01:05 更新列表。

    $ cat /etc/crontab
    
    @reboot     root    /bin/bash -c 'sleep 20 && /home/terrance/cb_update.bsh'
    01 05   * * *   root    /home/terrance/cb_update.bsh
    

    如果你自己运行脚本,它会给你国家代码:

    terrance@terrance-ubuntu:~/scripts$ sudo ./country_block.bsh 
    AFGHANISTAN (AF) 
    LAND ISLANDS (AX) 
    ALBANIA (AL) 
    ALGERIA (DZ) 
    AMERICAN SAMOA (AS) 
    ANDORRA (AD) 
    ANGOLA (AO) 
    ANGUILLA (AI) 
    ANTIGUA AND BARBUDA (AG) 
    ARGENTINA (AR) 
    ARMENIA (AM) 
    ARUBA (AW) 
    AUSTRALIA (AU) 
    AUSTRIA (AT) 
    AZERBAIJAN (AZ) 
    BAHAMAS (BS) 
    BAHRAIN (BH) 
    BANGLADESH (BD) 
    BARBADOS (BB) 
    BELARUS (BY) 
    BELGIUM (BE) 
    BELIZE (BZ) 
    BENIN (BJ) 
    BERMUDA (BM) 
    BHUTAN (BT) 
    BOLIVIA (BO) 
    BOSNIA AND HERZEGOVINA (BA) 
    BOTSWANA (BW) 
    BRAZIL (BR) 
    BRITISH INDIAN OCEAN TERRITORY (IO) 
    BRUNEI DARUSSALAM (BN) 
    BULGARIA (BG) 
    BURKINA FASO (BF) 
    BURUNDI (BI) 
    CAMBODIA (KH) 
    CAMEROON (CM) 
    CANADA (CA) 
    CAPE VERDE (CV) 
    CAYMAN ISLANDS (KY) 
    CENTRAL AFRICAN REPUBLIC (CF) 
    CHAD (TD) 
    CHILE (CL) 
    CHINA (CN) 
    COLOMBIA (CO) 
    COMOROS (KM) 
    CONGO (CG) 
    CONGO, THE DEMOCRATIC REPUBLIC OF THE (CD) 
    COOK ISLANDS (CK) 
    COSTA RICA (CR) 
    COTE D'IVOIRE (CI) 
    CROATIA (HR) 
    CUBA (CU) 
    CYPRUS (CY) 
    CZECH REPUBLIC (CZ) 
    DENMARK (DK) 
    DJIBOUTI (DJ) 
    DOMINICA (DM) 
    DOMINICAN REPUBLIC (DO) 
    ECUADOR (EC) 
    EGYPT (EG) 
    EL SALVADOR (SV) 
    EQUATORIAL GUINEA (GQ) 
    ERITREA (ER) 
    ESTONIA (EE) 
    ETHIOPIA (ET) 
    FAROE ISLANDS (FO) 
    FIJI (FJ) 
    FINLAND (FI) 
    FRANCE (FR) 
    FRENCH GUIANA (GF) 
    FRENCH POLYNESIA (PF) 
    GABON (GA) 
    GAMBIA (GM) 
    GEORGIA (GE) 
    GERMANY (DE) 
    GHANA (GH) 
    GIBRALTAR (GI) 
    GREECE (GR) 
    GREENLAND (GL) 
    GRENADA (GD) 
    GUADELOUPE (GP) 
    GUAM (GU) 
    GUATEMALA (GT) 
    GUINEA (GN) 
    GUINEA-BISSAU (GW) 
    GUYANA (GY) 
    HAITI (HT) 
    HOLY SEE (VATICAN CITY STATE) (VA) 
    HONDURAS (HN) 
    HONG KONG (HK) 
    HUNGARY (HU) 
    ICELAND (IS) 
    INDIA (IN) 
    INDONESIA (ID) 
    IRAN, ISLAMIC REPUBLIC OF (IR) 
    IRAQ (IQ) 
    IRELAND (IE) 
    ISLE OF MAN (IM) 
    ISRAEL (IL) 
    ITALY (IT) 
    JAMAICA (JM) 
    JAPAN (JP) 
    JERSEY (JE) 
    JORDAN (JO) 
    KAZAKHSTAN (KZ) 
    KENYA (KE) 
    KIRIBATI (KI) 
    KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF (KP) 
    KOREA, REPUBLIC OF (KR) 
    KUWAIT (KW) 
    KYRGYZSTAN (KG) 
    LAO PEOPLE'S DEMOCRATIC REPUBLIC (LA) 
    LATVIA (LV) 
    LEBANON (LB) 
    LESOTHO (LS) 
    LIBERIA (LR) 
    LIBYAN ARAB JAMAHIRIYA (LY) 
    LIECHTENSTEIN (LI) 
    LITHUANIA (LT) 
    LUXEMBOURG (LU) 
    MACAO (MO) 
    MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF (MK) 
    MADAGASCAR (MG) 
    MALAWI (MW) 
    MALAYSIA (MY) 
    MALDIVES (MV) 
    MALI (ML) 
    MALTA (MT) 
    MARSHALL ISLANDS (MH) 
    MARTINIQUE (MQ) 
    MAURITANIA (MR) 
    MAURITIUS (MU) 
    MAYOTTE (YT) 
    MEXICO (MX) 
    MICRONESIA, FEDERATED STATES OF (FM) 
    MOLDOVA, REPUBLIC OF (MD) 
    MONACO (MC) 
    MONGOLIA (MN) 
    MONTENEGRO (ME) 
    MONTSERRAT (MS) 
    MOROCCO (MA) 
    MOZAMBIQUE (MZ) 
    MYANMAR (MM) 
    NAMIBIA (NA) 
    NAURU (NR) 
    NEPAL (NP) 
    NETHERLANDS (NL) 
    NEW CALEDONIA (NC) 
    NEW ZEALAND (NZ) 
    NICARAGUA (NI) 
    NIGER (NE) 
    NIGERIA (NG) 
    NIUE (NU) 
    NORFOLK ISLAND (NF) 
    NORTHERN MARIANA ISLANDS (MP) 
    NORWAY (NO) 
    OMAN (OM) 
    PAKISTAN (PK) 
    PALAU (PW) 
    PALESTINIAN TERRITORY, OCCUPIED (PS) 
    PANAMA (PA) 
    PAPUA NEW GUINEA (PG) 
    PARAGUAY (PY) 
    PERU (PE) 
    PHILIPPINES (PH) 
    POLAND (PL) 
    PORTUGAL (PT) 
    PUERTO RICO (PR) 
    QATAR (QA) 
    REUNION (RE) 
    ROMANIA (RO) 
    RUSSIAN FEDERATION (RU) 
    RWANDA (RW) 
    SAINT KITTS AND NEVIS (KN) 
    SAINT LUCIA (LC) 
    SAINT PIERRE AND MIQUELON (PM) 
    SAINT VINCENT AND THE GRENADINES (VC) 
    SAMOA (WS) 
    SAN MARINO (SM) 
    SAO TOME AND PRINCIPE (ST) 
    SAUDI ARABIA (SA) 
    SENEGAL (SN) 
    SERBIA (RS) 
    SEYCHELLES (SC) 
    SIERRA LEONE (SL) 
    SINGAPORE (SG) 
    SLOVAKIA (SK) 
    SLOVENIA (SI) 
    SOLOMON ISLANDS (SB) 
    SOMALIA (SO) 
    SOUTH AFRICA (ZA) 
    SPAIN (ES) 
    SRI LANKA (LK) 
    SUDAN (SD) 
    SURINAME (SR) 
    SWAZILAND (SZ) 
    SWEDEN (SE) 
    SWITZERLAND (CH) 
    SYRIAN ARAB REPUBLIC (SY) 
    TAIWAN (TW) 
    TAJIKISTAN (TJ) 
    TANZANIA, UNITED REPUBLIC OF (TZ) 
    THAILAND (TH) 
    TIMOR-LESTE (TL) 
    TOGO (TG) 
    TOKELAU (TK) 
    TONGA (TO) 
    TRINIDAD AND TOBAGO (TT) 
    TUNISIA (TN) 
    TURKEY (TR) 
    TURKMENISTAN (TM) 
    TURKS AND CAICOS ISLANDS (TC) 
    TUVALU (TV) 
    UGANDA (UG) 
    UKRAINE (UA) 
    UNITED ARAB EMIRATES (AE) 
    UNITED KINGDOM (GB) 
    UNITED STATES (US) 
    UNITED STATES MINOR OUTLYING ISLANDS (UM) 
    URUGUAY (UY) 
    UZBEKISTAN (UZ) 
    VANUATU (VU) 
    VENEZUELA (VE) 
    VIET NAM (VN) 
    VIRGIN ISLANDS, BRITISH (VG) 
    VIRGIN ISLANDS, U.S. (VI) 
    WALLIS AND FUTUNA (WF) 
    YEMEN (YE) 
    ZAMBIA (ZM) 
    ZIMBABWE (ZW) 
    Choose any of the countries by typing in the two letter code between the ( ).
    

    然后,您可以随时检查您的系统可能发生的点击。

    $ sudo iptables -nvL INPUT
    Chain INPUT (policy ACCEPT 9523 packets, 3125K bytes)
     pkts bytes target     prot opt in     out     source               destination         
        0     0 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:53
        0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:53
        0     0 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:67
        0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:67
        0     0 f2b-proftpd  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 21,20,990,989
     2847  170K f2b-sshd   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 22
       12   548 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set CHINA src multiport dports 22,10000
        4   176 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set RUSSIANFEDERATION src multiport dports 22,10000
        1    44 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set NETHERLANDS src multiport dports 22,10000
        2    88 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set GERMANY src multiport dports 22,10000
        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set DENMARK src multiport dports 22,10000
      157  8156 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set FRANCE src multiport dports 22,10000
        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set INDONESIA src multiport dports 22,10000
        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set IRELAND src multiport dports 22,10000
        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set ITALY src multiport dports 22,10000
        4   180 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set KOREAREPUBLICOF src multiport dports 22,10000
        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set SINGAPORE src multiport dports 22,10000
        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set TAIWAN src multiport dports 22,10000
      947 48804 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set VIETNAM src multiport dports 22,10000
        2    92 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set BRAZIL src multiport dports 22,10000
        6   264 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set UKRAINE src multiport dports 22,10000
        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set PORTUGAL src multiport dports 22,10000
        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set ISRAEL src multiport dports 22,10000
        3   180 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set UNITEDKINGDOM src multiport dports 22,10000
        1    44 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set JAPAN src multiport dports 22,10000
        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set PAKISTAN src multiport dports 22,10000
        2    88 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set ARGENTINA src multiport dports 22,10000
        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set COLOMBIA src multiport dports 22,10000
        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set FINLAND src multiport dports 22,10000
        4   188 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set INDIA src multiport dports 22,10000
        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set CUSTOM_IP src multiport dports 22,10000
    

    希望这可以帮助!

    • 5
  3. J. Starnes
    2017-12-06T14:49:08+08:002017-12-06T14:49:08+08:00

    除非您对服务器可用的所有计算机/网络具有国家级控制/访问权限,否则在功能上不可能找到登录尝试背后的人。但是,您可以努力强化您的服务器。看,如何加固 SSH 服务器?,以及可以做些什么来保护 Ubuntu 服务器?

    • 4
  4. waltinator
    2017-12-06T14:44:59+08:002017-12-06T14:44:59+08:00

    IP 地址218.87.109.156不在 DNS 中,并且 tracepath(来自加拿大渥太华)显示:

      w3@aardvark:~(0)$ tracepath  218.87.109.156
     1?: [LOCALHOST]                                         pmtu 1492
     1:  spark2y                                               0.739ms 
     1:  spark2y                                               0.744ms 
     2:  dsl-173-206-128-1.tor.primus.ca                      31.017ms 
     3:  10.201.117.46                                        31.425ms asymm  5 
     4:  38.88.240.86                                         30.987ms 
     5:  be4181.ccr31.yyz02.atlas.cogentco.com                30.872ms 
     6:  be2993.ccr21.cle04.atlas.cogentco.com                38.281ms 
     7:  be2717.ccr41.ord01.atlas.cogentco.com                45.373ms 
     8:  sjo-b21-link.telia.net                               92.369ms 
     9:  be3035.ccr21.den01.atlas.cogentco.com                68.380ms 
    10:  202.97.50.77                                         96.352ms asymm 15 
    11:  be3109.ccr21.sfo01.atlas.cogentco.com                96.099ms 
    12:  be3179.ccr22.sjc01.atlas.cogentco.com                95.375ms 
    13:  202.97.57.26                                        233.831ms asymm 14 
    14:  202.97.82.126                                       278.546ms asymm 20 
    15:  117.44.130.118                                      250.081ms asymm 21 
    16:  111.74.206.105                                      249.725ms asymm 21 
    17:  117.44.130.146                                      245.893ms asymm 18 
    18:  202.97.57.26                                        232.033ms asymm 14 
    19:  202.97.39.58                                        241.135ms asymm 16 
    20:  111.74.207.46                                       268.148ms asymm 17 
    21:  218.87.109.156                                      246.090ms reached
    

    在其余的 IP 上做dig -x和tracepath处理留作练习。

    我猜你正在受到攻击。如果您不在防火墙后面(为什么不呢?),请调查该fail2ban软件包,或者,如果您不使用它,请停止运行sshd.

    CRON是系统的作业调度程序,在我的系统上,我每天看到数百个。

    • 3
  5. dubsauce
    2017-12-07T07:59:16+08:002017-12-07T07:59:16+08:00

    如果您不需要 Internet 上的端口 22,您还可以将默认端口更改为另一个非标准端口。

    即使您使用fail2ban,您仍然会每天尝试多次失败。我从不让默认端口对互联网开放。至少对于 SSH。现在很多机器人都在暴力破解。

    您可以通过编辑文件来做到这一点。/etc/ssh/sshd_config 必须有类似于以下内容的行:

    #Port 22 删除前面的 # 并将 22 更改为您想要的端口值( 1 到 65535 )

    例子: Port 1337

    然后您可以测试配置的有效性(确保没有多余的字符,否则它可能无法启动 - 这在您重新启动 sshd 远程时很有用,它可能无法正确重新启动并且您需要通过其他路由访问)使用命令 :/usr/sbin/sshd -t

    请记住:没有输出通常意味着没有错误。

    然后你需要重启 sshd 服务:

    sudo systemctl restart sshd

    或者

    sudo service sshd restart

    或者

    sudo killall -HUP sshd

    然后,您可以使用自定义端口 ssh 进入您的服务器。从其他终端您可以使用:

    ssh <serverHostname> -p <port>.

    对于像我这样的懒人,如果你不想一直指定那个端口,你可以在文件中以相同的方式更改默认端口/etc/ssh/ssh_config(这是 ssh 命令的文件),这样你就不必一直添加-p <port>选项。

    • 2
  6. Best Answer
    Kurankat
    2020-03-05T21:50:24+08:002020-03-05T21:50:24+08:00

    我赞同大多数人所说的,但根据我的经验,如今大多数 SSH 蛮力攻击都是分布式攻击(来自数百或数千个不同的 IP 地址,很少或没有重复),所以像以前那样的包fail2ban用处不大是。

    基本的预防措施是:

    • 使用防火墙,例如ufw断开与除允许端口之外的所有端口的连接
    • 使用端口 22 以外的非标准端口。它极大地降低了日志噪声。
    • 不允许通过 SSH 进行 root 登录(/etc/ssh/sshd_config确保 root 登录行显示PermitRootLogin no)
    • 专门将应允许登录的用户列入白名单 ( AllowUsers myuser)
    • 不允许密码登录,请改用 SSH 密钥(参见本文中的第 5 点)。最好为密钥设置密码,除非您需要自动访问。

    您还可以做很多其他事情,只需查找有关 SSH 强化的文章即可。从本质上讲,如果您使用的是 2048 位或 4096 位密钥,则没有人能够暴力破解它。

    正如已经指出的,每次系统启动计划作业时(每当 CRON 运行时),都会自动创建 CRON 条目。

    您还可以查看软件包,例如logwatch获取日志正在执行的每日摘要,并在发生需要您注意的事情时更快地做出响应。它不止一次救了我的培根。

    • 2

相关问题

  • Gnome-terminal 快捷方式在选项卡中打开多个 ssh 连接

  • 通过 SSH 禁用密码访问?

  • ssh 如何使用多个私钥?

  • 如何通过一个 SSH 连接拥有多个终端会话?

  • 如何与无头服务器进行图形交互?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve