ÇáÓáÇã Úáíßã æÑÍãÉ Çááå æÈÑßÇÊå
ÇÓÊßãÇáÇð áãÇ ßÊÈÊå ÞÈá ÝÊÑÉ Íæá ÎÏãÉ SSH Ýí ÇáãæÖæÚíä:
SSH ãÇåí¿ æßíÝíÉ ÅÓÊÚãÇáåÇ¿ æØÑÞ Úãá Harden áåÇ
ÅÓÊÚãÇá sshguard ááÊÕÏí áåÌãÇÊ Brute Force Úáì ÎÏãÉ SSH
æÐßÑÊ Ýí ÂÎÑ ÇáãæÖæÚ ÈÅäí ÓÃÞæã ÈÔÑÍ ØÑÞ ÍãÇíÉ åÐå ÇáÎÏãÉ ÈÇáÊÍÏíÏ. Ýí äÝÓ ÇáãæÖæÚ ÐßÑÊ ØÑÞ ÚÏíÏÉ áÍãÇíÉ ÇáÎÏãÉ æÇáíæã ÓäÊßáã Úä ÅÖÇÝÉ ÃÎÑì äÖíÝåÇ áÒíÇÏÉ ÇáÍãÇíÉ Úáì ÎÏãÉ SSH. ÇáãæÖæÚ åÐÇ íÊÍÏË Úä ÍãÇíÉ SSH ÈæÇÓØÉ DenyHosts.
ÞÏ íÓÊÛÑÈ ÇáÈÚÖ Ííä ÃÞæá áå ÈÅä ãÌÑÏ æÕæá ÇáÜ BOX (ÓíÑÝÑ) ÇáÎÇÕ Èß Úáì ÇáäÊ Online¡ ÓÊÈÏà ÇáãÔÇßá æÊÈÏà ãÍÇæáÇÊ ÇáÅÎÊÑÇÞ ãä ÞÈá ÇáãÎÊÑÞíä¡ æáßä åÐå åí ÇáÍÞíÞÉ. áæ ÞãÊ ÈÚãá ÎÇÏã SSH ãËáÇð íÓÊØíÚ ÇáäÇÓ Ãæ ÇáÚÇáã ÇáÎÇÑÌí ÇáæÕæá áå ãä ÎáÇá ÇáÃäÊÑäÊ (Úä ÈõÚÏ)¡ ÃäÕÍß ÈãÊÇÈÚÉ æãÑÇÞÈÉ ÇáÓÌáÇÊ ÇáÎÇÕÉ ÈÇáæÕæá æÚãá Access Úáì ÎÇÏã SSH ÇáÊí Ýí CentOS¡ Fedora¡ RHEL æÃÚÌæÈÉ ãËáÇð åí:
/var/log/secure
æÚáì ÏÈíÇä æÃæÈäÊæ:
/var/log/auth.log
Þã ÈãÑÇÞÈÊåã ÈÇáÃãÑ:
sudo tail -f /var/log/secure
Ãæ
sudo tail -f /var/log/auth.log
ÓÊÌÏ åäÇß ÇáÚÏíÏ ãä ÇáÓØæÑ ÊÈííä ãÍÇæáÇÊ ãÊÚÏÏÉ ááæÕæá Çáì åÐå ÇáÎÏãÉ. ÅÐÇ áã Êßä ÃäÊ ÕÇÍÈ åÐå ÇáÜ IP's æáÇ åÐå ÇáãÍÇæáÇÊ Ýãä åæ¿ Åäåã ÇáãÎÊÑÞæä
ÇáÍíä ÑÈãÇ ÊÊÓÇÆá ãÚ äÝÓß æÊÞæá áí: ãÚÞæáÉ æÕáæÇ åÄáÇÁ Çáì ÇáÜ BOX ÇáÎÇÕ Èí ÈåÐå ÇáÓÑÚÉ¿ íÇ B!n@ry áã íãÖí Úáì æÌæÏ ÇáÜ BOX Úáì ÇáäÊ Óæì ÓÇÚÇÊ Ãæ ÃíÇã ãÚÏæÏÉ¡ ãÚÞæáÉ¿
ÇáÌæÇÈ: íÇ ÚÒíÒí ááÃÓÝ äÚã ãÚÞæáÉ æäÕ æËáÇË ÃÑÈÇÚ
åÄáÇÁ íÓÊÚãáæä ÃÏæÇÊ ÊäÝÐ ÈÔßá ÃæÊæãÇÊíßí Ãæ ÊáÞÇÆí æíÊã ÊæÌíååÇ Úáì IP Range ãÚííä ãËáÇð æåí ÊÞæã ÈãÍÇæáÇÊ ÏÎæá ÚÔæÇÆíÉ ÅÓÊäÇÏÇð Çáì ÞæÇÚÏ ÈíÇäÇÊ áÏíåÇ ÈÃÓãÇÁ ãÓÊÎÏãíä æßáãÇÊ ÓÑíÉ. ÇáØÑíÞÉ åÐå ÇáÃÛáÈ íÚÑÝåÇ æåí ãÇ íÓãì ÈÇáÜ Brute Force æáßä ÈÔßá Automated Brute Force Attack.
ÓÄÇá: ÚäÏß Íáæá ãä ÊÞáíá ÇáãÎÇØÑ¿
ÇáÌæÇÈ: äÚã¡ ÊÇÈÚ ãÚí íÇ ÚÒíÒí ÇáÞÇÑíÁ.
Ýí ÇáÈÏÇíÉ åÐÇ ÇáãæÖæÚ ÓÃÔÑÍ Ýíå ßíÝíÉ ÊÑßíÈ æÅÚÏÇÏ ÎÏãÉ DenyHosts ãä ÎáÇá ãáÝÇÊ ÇáÓæÑÓ áåÇ¡ æáíÓ ãä ÎáÇá rpm Ãæ yum Ãæ apt-get æ dpkg. æåí ÓåáÉ ÌÏÇð ÝÞØ Îáß ãÑßÒ ãÚí Çááå íÑÖì Úáíß
ÇáÎØæÉ ÇáÃæáì: ÊÍãíá ãáÝÇÊ DenyHosts æÇáÊÃßÏ ãä æÌæÏ Python.
Þã ÈÊÍãíá ÇáãáÝÇÊ ãä ÎáÇá ÒíÇÑÉ ÇáãæÞÚ ÇáÊÇáí: DenyHosts-2.6.tar.gz
ÇáÂä áäÊÃßÏ ãä Python¡ äÝÐ ÇáÊÇáí:
python -V
ÓíÚØíß ÑÞã ÇáäÓÎÉ ÇáãÓÊÚãáÉ ãä ÇáÈÇíËæä. Åä ßäÊ áã ÊÑßÈ ÇáÈÇíËæä ÝÞã ÈÐáß¡ áÃäå ÍÇÌÉ ÃÓÇÓíÉ áÚãá ÇáÎÏãÉ åÐå.
ÇáÎØæÉ ÇáËÇäíÉ: Ýß ÇáÖÛØ ãÚ ÊÛííÑ ÇáÃÓãÇÁ æÊåíÆÉ ãáÝ ÇáÅÚÏÇÏÇÊ.
ÃäÞá ÇáãáÝ ÇáÐí ÞãÊ ÈÊÍãíáå Çáì ÇáãÌáÏ ÇáãÑÇÏ ÊÔÛíá ÇáÎÏãÉ ãäå¡ æáíßä:
mv /path2/DenyHosts-2.6.tar.gz /usr/share/
ÈÚÏ Ðáß:
cd /usr/share/
ÈÚÏ Ðáß áäÞã ÈÝß ÇáÖÛØ:
tar xvfz DenyHosts-2.6.tar.gz
ÈÚÏ Ðáß:
cd DenyHosts-2.6/
æãä Ëã äÝÐ ÇáÃæÇãÑ ÇáÊÇáíÉ:
mv denyhosts.cfg-dist denyhosts.cfg
ÇáÎØæÉ ÇáËÇáËÉ: Úãá ÇáÅÚÏÇÏÇÊ ÇááÇÒãÉ.
ÇáÂä áäÞã ÈÊÍÑíÑ ÇáãáÝ ÇáÎÇÕ ÈÇáÇÚÏÇÏÇÊ æÇáÐí ÇÓãå denyhosts.cfg:
vim denyhosts.cfg
ÇáÂä ÊÃßÏ ãä æÖÚ ÇáÇÚÏÇÏÇÊ ÇáÊÇáíÉ (ÓÃÔÑÍ ßá æÇÍÏÉ áÇ ÊÞáÞ):
WORK_DIR = /usr/share/denyhosts/
HOSTS_DENY = /etc/hosts.deny
BLOCK_SERVICE = sshd
SECURE_LOG = /var/log/secure
DENY_THRESHOLD_INVALID = 2
DENY_THRESHOLD_VALID = 5
DENY_THRESHOLD_ROOT = 2
LOCK_FILE = /var/lock/subsys/denyhosts
HOSTNAME_LOOKUP=YES
AGE_RESET_VALID=5d
AGE_RESET_INVALID=
AGE_RESET_ROOT=10d
DAEMON_PURGE = 10d
DAEMON_SLEEP = 10m
DAEMON_LOG = /var/log/denyhosts
DAEMON_LOG_TIME_FORMAT = %b %d %H:%M:%S
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
ADMIN_EMAIL = root@localhost
ÇáÂä áäÞæã ÈÊæÖíÍ ßá ÓØÑ¡ ÈÇáÑÛã ãä ßæäåã ãæÖÍíä Ýí ãáÝ ÇáÇÚÏÇÏ¡ ÅáÇ Åäå ÓÃæÖÍåã ááÝÇÆÏÉ ÇáÚÇãÉ æáãä áÇ íÌíÏ ÇááÛÉ ÇáÃäÌáíÒíÉ.
- ÇáÓØÑ ÇáÃæá íÊã ÊÍÏíÏ ÇáãÓÇÑ ÇáãæÌæÏ ÈÏÇÎáå ãáÝÇÊ ÇáÎÏãÉ/ÇáÓßÑÈÊ DenyHosts æÇáÐí Ýí ãËÇáäÇ åÐÇ åæ
/usr/share/denyhosts/
- ÇáÓØÑ ÇáËÇäí íÊã ÊÍÏíÏ ÇáãÓÇÑ ÇáÎÇÕ ÈãáÝ hosts.deny ÇáÐí ÓíÊã ÊÓÌíá ÇáÜ IP's ÇáããäæÚÉ Ýíå.
- ÇáÓØÑ ÇáËÇáË ÍÏÏäÇ ÇáÎÏãÉ ÇáÊí äÑíÏ äÚãá ÍãÇíÉ ÚáíåÇ.
- ÇáÓØÑ ÇáÑÇÈÚ ÍÏÏäÇ ãßÇä ÊÓÌíá ÇáÏÎæá áÎÏãÉ SSH ßãÇ ÐßÑÊ ÈÇáÃÚáì åÐÇ ÇáãÓÇÑ åæ áÊæÒíÚÇÊ RHEL,Fedora,CentOS æÃÚÌæÈÉ ÝÞØ. ÅÐÇ ßäÊ ÊÑíÏ ÊÍÏíÏ ÇáãÓÇÑ áÊæÒíÚÉ ÃæÈäÊæ Ãæ ÏÈíÇä ÃÞÑà ÇáãÓÇÑ ßÊÈÊå ÈÇáÇÚáì
((ÇáÂä ÑßÒ ãÚí ÃßËÑ Çááå íÑÖì Úáíß))
- ÇáÓØÑ ÇáÎÇãÓ äÞæã ÈÊÍÏíÏ ÈÚÏ ßã ãÍÇæáÉ ÝÇÔáÉ ááÏÎæá ÈæÇÓØÉ ãÓÊÎÏã ÛíÑ ãæÌæÏ ÊÑíÏ ÊÓÌíá ãäÚ Ðáß ÇáÜ IP¿ åäÇ ÍÏÏäÇ 2 æÐáß áÃäå ÅÐÇ ÇáãÓÊÎÏã áíÓ ãæÌæÏ áíÔ ÃÎáå íÚíÏ ãÍÇæáÇÊ ÚÏíÏÉ.
- ÇáÓØÑ ÇáÓÇÏÓ äÞæã ÈÊÍÏíÏ ÈÚÏ ßã ãÍÇæáÉ ÝÇÔáÉ ááÏÎæá ÈæÇÓØÉ ãÓÊÎÏã ãæÌæÏ Úáì ÇáÜ BOX áÏíß¡ ÊÞæã ÈãäÚå¿ ÃÚÊÞÏ 5 ÞíãÉ ÚÇÏáÉ¡ íÚäí ãæ ãÚÞæáÉ ÇáÅäÓÇä äÇÓí ßáãÉ ÇáãÑæÑ áå æÎãÓ ãÍÇæáÇÊ áÇ íÊÐßÑåÇ¡ áæ ÕÍíÍ Úáíå ØáÈ ÇáßáãÉ ãä ãÏíÑ ÇáÜ BOX ÃÍÓä áå.
- ÇáÓØÑ ÇáÓÇÈÚ äÞæã ÈÊÍÏíÏ ÈÚÏ ßã ãÍÇæáÉ ÝÇÔáÉ ááÏÎæá ÈæÇÓØÉ ÇáãÓÊÎÏã root Úáì ÇáÜ BOX áÏíß ÊÑíÏ ãäÚå¿ ÈÇáäÓÈÉ áí æÖÚÊ åÐÇ ÇáÎíÇÑ áãä íÓãÍ ÈÏÎæá root ÈÔßá ãÈÇÔÑ. áãä áÇ íÓãÍ ÈÏÎæá root ÈÔßá ãÈÇÔÑ áÇ ÊÖÚ ÔíÁ.
- ÇáÓØÑ ÇáËÇãä ÍÏÏäÇ Ýíå ãÓÇÑ ÇáÜ Lock File ááÎÏãÉ¡ Ýí ÇáÛÇáÈ Óíßæä Ýí ÇáãÓÇÑ ÇáÐí æÖÚÊå¡ Åä áã íßä ÑÇÌÚ ãáÝ ÇáÅÚÏÇÏÇÊ Ãæ Úáíß Ãä Êßæä Úáì ÏÑÇíÉ ÈãßÇäå Ýí ÊæÒíÚÊß¡ áßä ÈÇáÛÇáÈ åÐÇ åæ.
- ÇáÓØÑ ÇáÊÇÓÚ äÍÏÏ Ýíå åá äÑíÏ Ãä íÊÚãá Úãá Hostname Lookups Ãã áÇ¡ áÇ ÃäÕÍ Èå áÇäå ÑÈãÇ íÓÈÈ ÈØÃ Ýí ÇáÔÈßÉ ÚäÏß.
- ÇáÓØÑ ÇáÚÇÔÑ Ýí ÍÇáÉ Êã ãäÚ ãÓÊÎÏã ãæÌæÏ ãä ÇáÏÎæá ÈÓÈÈ ãÍÇæáÇÊå ÇáãÊßÑÑÉ ÇáÝÇÔáÉ¡ ÝÞã ÈÑÝÚ ÇáÍÌÈ Úäå ÈÚÏ ãÏÉ ãÚíäÉ. Ýí ÇáÇÚÏÇÏÇÊ ÇáÊí ÚãáÊåÇ ÃäÇ æÖÚÊ íæã æÇÍÏ. ÖÚ ãÇ ÊÔÇÁ.
- ÇáÓØÑ ÇáÍÇÏí ÚÔÑ ÃÊÑßå ßãÇ ÚãáÊ ÃäÇ¡ æÐáß íÚäí ÈÅäå áä íÊã ÑÝÚ ÇáÍÌÈ Úä ÇáÜ IP's Êáß ÇÈÏÇð.
- ÇáÓØÑ ÇáËÇäí ÚÔÑ íÎÕ ÇáãÓÊÎÏã root æãÊì ÊÑíÏ ÑÝÚ ÇáÍÌÈ Úä ãÍÇæáÇÊ ÏÎæáå ÇáÝÇÔáÉ. ÃäÇ æÖÚÊåÇ åäÇ 10 ÃíÇã¡ ßãÇ ÞáÊ áß áæ ßäÊ áÇ ÊÓãÍ ÈæÕæá root áÎÏãÉ SSH ÇÕáÇ ÝáÇ ÍÇÌÉ áæÖÚ åÐÇ ÇáÎíÇÑ.
- ÇáÓØÑ ÇáËÇáË ÚÔÑ ÊÍÏÏ Ýíå ÈÚÏ ßã ãä ÇáÒãä ÊÑíÏ Ãä íÊã ãÓÍ ÌãíÚ ÇáÓØæÑ ÇáÎÇÕÉ ÈãäÚ IP's ãä ãáÝ hosts.deny¡ æÐáß áÃäå ããßä íÕÈÍ ÇáãáÝ ßÈíÑ ÌÏÇð ãÚ ÇáãÏÉ.
- ÇáÓØÑ ÇáÑÇÈÚ ÚÔÑ ÊÍÏÏ Ýíå ãÊì ÊÑíÏ ÇáÎÏãÉ/ÇáÓßÑÈÊ Ãä íÊã ÊäÝíÐåÇ. ÃäÇ ÞãÊ ÈÊÍÏíÏ ÚãáåÇ ÈÚÏ ßá 10 ÏÞÇÆÞ. áÇ ÊÞáÞ ÇáÓßÑÈÊ ÎÝíÝ ßãÇ áÇÍÙÊ æáåÐÇ ßá 10 ÏÞÇÆÞ ÚãáåÇ áä íÄËÑ Úáì ÃÏÇÁ ÈÇÞí ÇáÎÏãÇÊ ÇáÊí ÚäÏß Úáì ÇáÜ BOX.
- ÇáÓØÑ ÇáÎÇãÓ ÚÔÑ ÍÏÏäÇ Ãíä íÊã ÊÓÌíá ÇáÃãæÑ ÇáÊí ÊÊÚáÞ ÈÇáÎÏãÉ äÝÓåÇ.
- ÇáÓØÑ ÇáÓÇÏÓ ÚÔÑ ÍÏÏäÇ Ýí ØÑíÞÉ ÊÓÌíá ÇáÊæÇÑíÎ ÇáÎÇÕÉ ÈÇáÎÏãÉ.
- ÇáÓØÑ ÇáÓÇÈÚ ÚÔÑ ÃÎÈÑäÇ ÇáÎÏãÉ ÈÅääÇ äÑíÏ ÊÞÑíÑ Íæá ÇáÚãáíÇÊ ÇáãÔÈæåÉ ÇáÊí ÍÕáÊ.
- ÇáÓØÑ ÇáËÇãä ÚÔÑ ÍÏÏäÇ ÇÓã ÇáÈÑíÏ ÇáÐí äÑÓá áå ÇáÊÞÇÑíÑ.
ÇáÎØæÉ ÇáÑÇÈÚÉ: ÊäÕíÈ æÊÔÛíá ÇáÓßÑÈÊ.
ÇáÂä áÊÔÛíá ÇáÓßÑÈÊ åÐå ÚáíäÇ ÈÚãá ÊäÕíÈ áåÇ. áåÐÇ Þã ÈÊäÝíÐ ÇáÃãÑ (ÈÕáÇÍíÇÊ root):
python setup.py install
åÐå ÇáÎØæÉ ÓÊÞæã ÈÚãá äÓÎ æÊäÕíÈ ááãæÏæíáÇÊ ÇáÎÇÕÉ ÈÇáÎÏãÉ Ýí ãÌáÏ site-packages ÇáÎÇÕ ÈÇáÈÇíËæä.
ÎØæÉ ãåãÉ ÞÈá ÇáÊÔÛíá¡ Þã ÈÅÖÇÝÉ ÑÞã ÇáÜ IP Ãæ ÇáÏæãíä ÇáÐí ÊÑíÏ ÇáÓãÇÍ áå ÈÇáæÕæá Çáì ÎÏãÉ ssh Ýí ãáÝ hosts.allow ÞÈá ÇáÊÝíÐ. ãËáÇð:
echo "sshd: 5.5.5.5" >> /etc/hosts.allow
ÍíË 5.5.5.5 åæ ÑÞã ÇáÌåÇÒ ÇáÐí ÃÑíÏ ÇáÓãÇÍ áå ÈÇáæÕæá ááÎÏãÉ ÝÞØ. ÇáÂä áäÞæã ÈÊÌÑÈÉ Úãá ÇáÓßÑÈÊ:
python denyhosts.py
ÅÐÇ æÌÏ Ýí ãáÝÇÊ ÇáÃßÓÓ áÏíß ãÍÇæáÇÊ ÏÎæá ãØÇÈÞÉ ááÎíÇÑÇÊ æÇáÃÚÏÇÏÇÊ ÇáÊí æÖÚäÇåÇ¿ ÓíÞæã ÈÊÓÌíáåÇ Ýí ãáÝ hosts.deny æÐáß áãäÚåÇ ÈÇáãÑÇÊ ÇáÞÇÏãÉ ãä ÇáÏÎæá.
ÇáÎØæÉ ÇáÎÇãÓÉ: ÊÍæíá ÇáÓßÑÈÊ DenyHosts Çáì ÎÏãÉ áÊÚãá ÈÔßá ÊáÞÇÆí ÍÊì ÈÚÏ ÅÚÇÏÉ ÇáÊÔÛíá ááÌåÇÒ.
ÇáÂä áÚãá ÇáÓßÑÈÊ Úáì Ôßá ÎÏãÉ¡ Þã ÈãÊÇÈÚÉ ÇáÎØæÇÊ ÇáÊÇáíÉ ãÚí. Ãæá ÔíÁ:
mv daemon-control-dist denyhosts
ÈÚÏ Ðáß äÝÐ:
ln -s /usr/share/denyhosts/denyhosts /etc/init.d/denyhosts
ÇáÂä Þã ÈÊÍÑíÑ ÇáãáÝ denyhosts:
vim /usr/share/denyhosts/denyhosts
æÊÃßÏ ãä æÖÚ ÇáÎíÇÑÇÊ ÇáÊÇáíÉ:
DENYHOSTS_BIN = "/usr/share/denyhosts/denyhosts.py"
DENYHOSTS_LOCK = "/var/lock/subsys/denyhosts"
DENYHOSTS_CFG = "/usr/share/denyhosts/denyhosts.cfg"
- ÇáÓØÑ ÇáÃæá ÍÏÏäÇ ãßÇä æÌæÏ ÇáÎÏãÉ DenyHosts.
- ÇáÓØÑ ÇáËÇäí ÍÏÏäÇ ãßÇä ÇáÜ Lock File ááÎÏãÉ.
- ÇáÓØÑ ÇáËÇáË ÍÏÏäÇ ãßÇä æÌæÏ ãáÝ ÇáÅÚÏÇÏÇÊ ááÎÏãÉ.
ÇáÂä Þã ÚáíäÇ Ãä äÖíÝ ÇáÎÏãÉ ááÚãá ÈÚÏ ÃÚÇÏÉ ÇáÊÔÛíá¡ ÈÇáÈÏÇíÉ äÝÐ ÇáÊÇáí (RHEL,Fedora,CentOS æÃÚÌæÈÉ):
chkconfig denyhosts --add
ÈÚÏåÇ äÝÐ:
chkconfig denyhosts on
Úáì ÊæÒíÚÇÊ ÏÈíÇä æÃæÈäÊæ¡ ÑÇÌÚ ÇáÃãÑ update-rc.d Ãæ ÑÇÌÚ ãæÖæÚ ÇáÃÎ ÃÈæ ÚÈÏ ÇáÑÍãä (EXp1r3d):
HowTo : Control Startup Services
ÇáÂä ÇáÎÏãÉ ÌÇåÒÉ¡ áäÞæã ÈÊÔÛíáåÇ:
/etc/init.d/denyhosts start
æåßÐÇ ÓÊÞæã ÇáÎÏãÉ ÈÇáÚãá æÝÞÇð ááÃÚÏÇÏÇÊ ÇáÊí ÚãáäÇåÇ¡ æÇáÊí ÞáäÇ áåÇ äÑíÏß Ãä ÊÚãáí æÊäÝÐí ÎÏãÇÊß ßá 10 ÏÞÇÆÞ.
Çáì åäÇ ÃäÊåí ãä ÔÑÍ ÅÖÇÝÉ ÇáÎÏãÉ DenyHosts Úáì ÇáÜ BOX ÚäÏß áÍãÇíÉ ÎÏãÉ ÇáÜ SSH ÇáÊí áÏíß¡ æãÚ åÐå ÇáÅÖÇÝÉ ÇÞæá áß áÇÒÇá åäÇß áÏí ÇáãÒíÏ
ÏãÊã ÈæÏ ...







ÑÏ ãÚ ÇÞÊÈÇÓ








ãæÇÞÚ ÇáäÔÑ (ÇáãÝÖáÉ)