Я просматривал файлы журналов на своем сервере и обнаружил следующие строки в: /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, необходимо принять некоторые меры предосторожности относительно людей, пытающихся взламывать систему. Для моего персонального использования мне нравится использовать fail2ban
и затем я записал свой собственный сценарий, который использует iptables
и ipset
. Последняя часть я использую для полного блокирования дюйм/с страны от вхождения до моего хоста на порте 22. Я также установил geoiplookup
как способ видеть, куда IP прибывает из решить, хочу ли я заблокировать страну или нет. Сценарий, который я имею ниже, получает наборы дюйм/с от ipdeny.com
. Это решительно уменьшило объем попыток на моем хосте, так как я оставляю порт 22 открытыми большую часть времени.
Установка fail2ban
:
sudo apt install fail2ban
Обычно с fail2ban
настройки по умолчанию в порядке. Если Вы хотите изменить их, удостоверяются, что скопировали /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 | grep "CUSTOM_IP" | awk '{print $15}')
iptables -D INPUT -p tcp -m set --match-set CUSTOM_IP src -m multiport --dport ${prts} -j DROP 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 DROP
}
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."
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=22,10000
# Check for country codes, if none, print list.
if [[ $@ == "" ]]; then
curl http://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 http://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 DROP 2>/dev/null
ipset destroy $country
ipset -N $country hash:net
rm $c.zone 2>/dev/null
echo "Downloading IP block for $country..."
wget -P . http://www.ipdeny.com/ipblocks/data/countries/$c.zone 2>/dev/null
echo "Checking for invalid IP ranges in $country zone..."
for i in $(seq 1 7); do grep "/$i$" $c.zone; if [[ $? == "0" ]]; then sed -i "s/\/${i}$/\/24/" $c.zone; echo "Fixed..."; fi; done
echo "Creating iptable block for $country..."
for i in $(cat $c.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 DROP
echo "Added Firewall Rule for $country"
rm $c.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
Можно затем создать a custom.zone
в той же папке как country_block.bsh
файл только с дюйм/с, который мог бы пытаться много раз взломать Вашу систему. Добавьте их с a /32
в конце IP-адреса как 256.99.265.106/32
. После добавления собственного дюйм/с можно перезагрузить их в просто путем выполнения:
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
Затем я добавил следующие строки к моему /etc/crontab
файл. Это покрывает каждый раз мои системные перезагрузки, и это обновляет список в 1: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 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set CHINA src multiport dports 22,10000
4 176 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set RUSSIANFEDERATION src multiport dports 22,10000
1 44 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set NETHERLANDS src multiport dports 22,10000
2 88 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set GERMANY src multiport dports 22,10000
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set DENMARK src multiport dports 22,10000
157 8156 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set FRANCE src multiport dports 22,10000
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set INDONESIA src multiport dports 22,10000
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set IRELAND src multiport dports 22,10000
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set ITALY src multiport dports 22,10000
4 180 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set KOREAREPUBLICOF src multiport dports 22,10000
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set SINGAPORE src multiport dports 22,10000
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set TAIWAN src multiport dports 22,10000
947 48804 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set VIETNAM src multiport dports 22,10000
2 92 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set BRAZIL src multiport dports 22,10000
6 264 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set UKRAINE src multiport dports 22,10000
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set PORTUGAL src multiport dports 22,10000
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set ISRAEL src multiport dports 22,10000
3 180 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set UNITEDKINGDOM src multiport dports 22,10000
1 44 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set JAPAN src multiport dports 22,10000
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set PAKISTAN src multiport dports 22,10000
2 88 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set ARGENTINA src multiport dports 22,10000
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set COLOMBIA src multiport dports 22,10000
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set FINLAND src multiport dports 22,10000
4 188 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set INDIA src multiport dports 22,10000
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 match-set CUSTOM_IP src multiport dports 22,10000
Надеюсь, это поможет!
Я поддерживаю мнение большинства других, но, по моему опыту, большинство SSH-атак в наши дни — это распределенные атаки (исходящие с сотен или тысяч разных IP-адресов с небольшим количеством повторов или вообще без них), поэтому такие пакеты, как fail2ban
менее полезны, чем раньше.
Основные меры предосторожности:
ufw
, чтобы сбрасывать подключения ко всем портам, кроме разрешенных/etc/ssh/sshd_config
убедитесь, что в строке входа root указано PermitRootLogin no
)AllowUsers myuser
)Есть много других вещей, которые вы можете сделать, просто почитайте статьи об усилении безопасности SSH. По сути, если вы используете 2048- или 4096-битный ключ, никто не сможет его взломать.
Записи CRON, как уже отмечалось, создаются автоматически каждый раз, когда система запускает запланированное задание (каждый раз, когда запускается CRON).
Вы также можете изучить такие пакеты, как logwatch
, чтобы получать ежедневный дайджест того, что делают ваши журналы, и быстрее реагировать, если произойдет что-то, требующее вашего внимания. Это не раз спасало мой бекон.
Все эти попытки входа в систему предназначены для пользователя root, поэтому это выглядит как простые попытки перебора через SSH.
Для публичного сервера вполне нормально делать много попыток перебора SSH в день. Это факт жизни. Вы можете начать сообщать о них интернет-провайдеру, который владеет IP-адресом, но это нелепо, и вы не будете иметь большого значения. Они используют скомпрометированные компьютеры по всему Интернету и / или хостинговые учетные записи, на которые они подписались под ложными данными.
Что будет иметь значение, если все решат отключить root-вход через SSH и / или потребовать основанный на ключах вход для root (или для всех). Пока вы сделали одну из этих попыток, грубая сила будет в основном неэффективной. Но поскольку достаточное количество людей все еще оставляют включенным простой вход в систему root и имеют надежный пароль, эти атаки продолжаются.
Еще одна вещь, которую некоторые люди рекомендуют, - это переключить демона SSH на нестандартный номер порта, хотя я предпочитаю этого не делать, потому что польза от безопасности небольшая, и мне нравится использовать стандартный порт 22.
Что касается вашего второго вопроса, это просто запуск Cron, то есть программы, которая запускает запланированные задачи. Все системы имеют несколько запланированных задач, настроенных по умолчанию системой. Поскольку cron может запускать разные задачи от имени разных пользователей, он использует pam_unix для обработки запуска пользовательского сеанса, даже когда пользователь root, поэтому он отображается в этом журнале.
Если у вас нет контроля / доступа на уровне государства на всех компьютерах / сетях, доступных вашему серверу, найти человека, стоящего за попытками входа, функционально невозможно. Однако вы можете работать, чтобы укрепить свой сервер. см. Как защитить сервер SSH? и Что можно сделать для защиты сервера Ubuntu?
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
Выполнение dig -x
и tracepath
для остальных IP-адресов оставлено как упражнение.
Я предполагаю, что на вас напали. Если вы не находитесь за брандмауэром (и почему нет?), Изучите пакет fail2ban
или, если вы его не используете, прекратите запуск sshd
.
CRON
- это системный планировщик заданий, в моей системе я вижу сотни таких в день.
Вы также можете изменить порт по умолчанию на другой нестандартный порт, если вам не нужен порт 22 в Интернете.
Даже если вы используете fail2ban, у вас все равно будет несколько неудачных попыток / день. Я никогда не оставляю порт по умолчанию открытым для интернета. Для SSH по крайней мере. В наши дни много ботов.
Вы можете сделать это, отредактировав файл /etc/ssh/sshd_config
. Должна быть строка, похожая на:
#Port 22
Снимите # перед и измените 22 на желаемое значение порта (от 1 до 65535)
Пример: Port 1337
Затем вы можете проверить правильность конфигурации (убедитесь, что нет никаких дополнительных символов, или она может не запуститься - это полезно при перезапуске sshd remote, он может не перезапуститься должным образом, и вам нужен доступ по другим маршрутам. Протестируйте с помощью команды: /usr/sbin/sshd -t
Помните: отсутствие вывода обычно означает отсутствие ошибки.
А затем вам нужно перезапустить службу sshd:
sudo systemctl restart sshd
или
sudo service sshd restart
или
sudo killall -HUP sshd
Затем вы можете подключиться к серверу через свой собственный порт. Из другого терминала вы можете использовать:
ssh <serverHostname> -p <port>
.
И для ленивых людей, таких как я, если вы не хотите постоянно указывать этот порт, вы можете изменить порт по умолчанию таким же образом в файле /etc/ssh/ssh_config
(это файл для команды ssh), поэтому вам не нужно постоянно добавлять опцию -p <port>
.