3377ÌåÓýÍø¹ÙÍøÈë¿Ú

֤ȯ¼ò³Æ£º3377ÌåÓýÍø¹ÙÍøÈë¿Ú ֤ȯ´úÂ룺002212
7x24Сʱ·þÎñ£º 400-777-0777

Çå¾²ÔËÓª¡ª¼ì²âÓë·À»¤ÄÜÁ¦¡ªÍ¨¹ýPort KnockingÒþ²ØSSH·þÎñÆ÷

ÔÚÍøÂçÇå¾²ÑÝÁ·¡¢¹¥»÷°¸ÀýÖУ¬£¬£¬ £¬£¬¹¥»÷·½Í¨¹ýÐÅÏ¢ÍøÂç»ñȡĿµÄ¿ÉÓõÄÐÅÏ¢£¬£¬£¬ £¬£¬½«¸÷¹¥»÷µãÅþÁ¬»ã³É¹¥»÷Ãæ£¬£¬£¬ £¬£¬¹¥»÷ÃæÔ½¹ãÒâζ×Å·¢Ã÷DZÔÚÎó²îµÄ¿ÉÄÜÐÔÔ½´ó£¬£¬£¬ £¬£¬¹¥»÷ÀֳɵĸÅÂÊÒ²¾ÍÔ½¸ß¡£¡£¡£¡£¡£¡£¡£Òò´Ë£¬£¬£¬ £¬£¬Í¨¹ýÇå¾²¼Æ»®×îС»¯Ì»Â¶Ãæ¿ÉÒÔÓÐÓÃïÔÌ­ÐÅϢϵͳÔâÊÜÈëÇֵĸÅÂÊ¡£¡£¡£¡£¡£¡£¡£

Çå¾²ÔËÓª¡ª¼ì²âÓë·À»¤ÄÜÁ¦¡ªÍ¨¹ýPort KnockingÒþ²ØSSH·þÎñÆ÷

Ðû²¼Ê±¼ä£º2022-10-28
ä¯ÀÀ´ÎÊý£º5044
·ÖÏí£º

01 ¼ò½é

ÔÚÍøÂçÇå¾²ÑÝÁ·¡¢¹¥»÷°¸ÀýÖУ¬£¬£¬ £¬£¬¹¥»÷·½Í¨¹ýÐÅÏ¢ÍøÂç»ñȡĿµÄ¿ÉÓõÄÐÅÏ¢£¬£¬£¬ £¬£¬½«¸÷¹¥»÷µãÅþÁ¬»ã³É¹¥»÷Ãæ£¬£¬£¬ £¬£¬¹¥»÷ÃæÔ½¹ãÒâζ×Å·¢Ã÷DZÔÚÎó²îµÄ¿ÉÄÜÐÔÔ½´ó£¬£¬£¬ £¬£¬¹¥»÷ÀֳɵĸÅÂÊÒ²¾ÍÔ½¸ß¡£¡£¡£¡£¡£¡£¡£Òò´Ë£¬£¬£¬ £¬£¬Í¨¹ýÇå¾²¼Æ»®×îС»¯Ì»Â¶Ãæ¿ÉÒÔÓÐÓÃïÔÌ­ÐÅϢϵͳÔâÊÜÈëÇֵĸÅÂÊ¡£¡£¡£¡£¡£¡£¡£±¾ÎÄÖ÷Ҫ̽ÌÖ¹¥»÷ÃæÊÕÁ²ÖÐͨ¹ýPort KnockingÊÖ¶ÎÒþ²ØSSH·þÎñÆ÷µÄÒªÁ죬£¬£¬ £¬£¬Ê¹¹«¹²ÍøÂçÉϵĹ¥»÷Õ߸üÄÑ·¢Ã÷¸Ã·þÎñÆ÷£¬£¬£¬ £¬£¬µÖ´ïÊÕÁ²Ì»Â¶Ã棬£¬£¬ £¬£¬½µµÍÇ徲Σº¦µÄÄ¿µÄ¡£¡£¡£¡£¡£¡£¡£

02 ¸ü¸ÄĬÈÏ SSH ¶Ë¿Ú

Òþ²Ø SSH ·þÎñÆ÷µÄµÚÒ»²½ÊǸü¸ÄĬÈÏ SSH ¶Ë¿Ú¡£¡£¡£¡£¡£¡£¡£ÔÚ±¾ÎÄÑÝʾ°¸ÀýÖÐSHH¶Ë¿ÚºÅÉèÖÃΪ60636£¬£¬£¬ £¬£¬ÏÖʵ²Ù×÷ÖпÉÒÔʹÓÃí§Òâ×Ô½ç˵¶Ë¿ÚºÅ¡£¡£¡£¡£¡£¡£¡£·­¿ªÖն˲¢Ê¹ÓÃÒÔÏÂÏÂÁîͨ¹ý SSH ÅþÁ¬µ½·þÎñÆ÷£º

$ ssh -i path-to-identity-file username@SERVER_IP

ÔÚ·þÎñÆ÷ÉÏʹÓÃviÖÕ¶ËÖеÄÏÂÁî»òÈκÎÎı¾±à¼­Æ÷·­¿ª SSH ÉèÖÃÎļþ£º

$ vi /etc/ssh/sshd_config

ÏÖÔÚ½«Ä¬È϶˿Ú22¸üÐÂΪ60636¡£¡£¡£¡£¡£¡£¡£

²Ù×÷Íê³ÉºóÖØÐÂÆô¶¯ SSH ·þÎñÆ÷ÊØ»¤³ÌÐò£¬£¬£¬ £¬£¬ÒԱ㽫¸üÐÂÓ¦ÓÃÓÚеĴ«ÈëµÄËùÓÐSSHÅþÁ¬¡£¡£¡£¡£¡£¡£¡£

$ systemctl restart sshd.service

SSH·þÎñÆ÷ÏÖÔÚ½«½ÓÊܲ¢ÅþÁ¬¶Ë¿Ú60636£¬£¬£¬ £¬£¬²Ù×÷ÏÂÁîÈçÏ£º

$ ssh -i path-to-identity-file username@SERVER_IP -p 60636

ÐèÒª×¢ÖØµÄÊÇ£¬£¬£¬ £¬£¬ÈôÊǸ÷þÎñÆ÷ÉÏÉèÖÃÁË·À»ðǽ£¬£¬£¬ £¬£¬»¹Ó¦¸Ãͬ²½¸üзÀ»ðǽ¹æÔò£¬£¬£¬ £¬£¬ÔÊÐí¶Ë¿ÚÉ쵀 SSH 60636ÅþÁ¬£¬£¬£¬ £¬£¬×èÖ¹SSH 22ÅþÁ¬¡£¡£¡£¡£¡£¡£¡£

03 ʹÓÃknockdʵÏÖ¶Ë¿ÚÅöײ

¶Ë¿ÚÅöײÊÇÒ»ÖÖÔÚÒ»×éÔ¤ÏÈÖ¸¶¨µÄ¹Ø±Õ¶Ë¿ÚÉϱ¬·¢ÅþÁ¬ÇëÇ󣬣¬£¬ £¬£¬´ÓÍⲿ·­¿ª·À»ðǽÉϵĶ˿ڵÄÒªÁì¡£¡£¡£¡£¡£¡£¡£Ò»µ©ÊÕµ½×¼È·µÄÅþÁ¬ÇëÇóÐòÁУ¬£¬£¬ £¬£¬·À»ðǽ¹æÔò¾Í»á±»¶¯Ì¬Ð޸쬣¬£¬ £¬£¬ÔÊÐí·¢ËÍÅþÁ¬ÇëÇóµÄÖ÷»úͨ¹ýÌØ¶¨¶Ë¿Ú¾ÙÐÐÅþÁ¬¡£¡£¡£¡£¡£¡£¡£¶Ë¿ÚÅöײµÄÖ÷ҪĿµÄÊDZÜÃâ¹¥»÷Õßͨ¹ý¶Ë¿ÚɨÃèÀ´É¨ÃèϵͳÖÐDZÔڵĿÉʹÓ÷þÎñ£¬£¬£¬ £¬£¬³ý·Ç¹¥»÷Õß·¢ËÍ׼ȷµÄÅöײÐòÁУ¬£¬£¬ £¬£¬²»È»Êܱ£»£»£» £»£»£»£»¤µÄ¶Ë¿Ú½«ÏÔʾΪ¹Ø±Õ¡£¡£¡£¡£¡£¡£¡£

3.1 ×°ÖúÍÉèÖà knockd

ΪÁËʵÏÖ¶Ë¿ÚÅöײ£¬£¬£¬ £¬£¬Ê×ÏÈÒªÔÚLinux·þÎñÆ÷ÉÏ×°ÖÃknockd¡£¡£¡£¡£¡£¡£¡£ÔËÐÐÒÔÏÂÏÂÁî¾ÙÐÐ×°Öãº

$ sudo apt-get install knockd

½ÓÏÂÀ´·­¿ªknockdλÓÚ/etc/knockd.confµÄÉèÖÃÎļþ£º

ÔÚÉèÖÃÎļþÖÐÏàʶһÏÂĬÈÏÉèÖÃÖµ°üÀ¨µÄÐÅÏ¢£º

¡ñsequenceÊÇÒ»×é¶Ë¿ÚºÅ£¬£¬£¬ £¬£¬±»ÊÓΪÅöײÐòÁС£¡£¡£¡£¡£¡£¡£

¡ñseq_timeout½ç˵ÐòÁеÄÓÐÓÃÆÚ¡£¡£¡£¡£¡£¡£¡£

¡ñcommand°üÀ¨iptablesÌí¼Ó¹æÔòÒÔÔÊÐíÀ´×ÔÖ¸¶¨ IP µØÖ·µÄ´«Èë SSH ÅþÁ¬µÄÏÂÁî¡£¡£¡£¡£¡£¡£¡£½öµ±Óû§Æô¶¯ÓÐÓõÄÅöײÐòÁÐʱ²Å»áÖ´ÐдËÏÂÁî¡£¡£¡£¡£¡£¡£¡£

¡ñtcpflags½ç˵ÅöײÅþÁ¬ÖÐÒª½ÓÊÜµÄ TCP Êý¾Ý°üÀàÐÍ¡£¡£¡£¡£¡£¡£¡£SYNÔÚÕâÖÖÇéÐÎÏ·ÖÅÉÁËÒ»¸öTCPÀàÐ͵ÄÊý¾Ý°ü¡£¡£¡£¡£¡£¡£¡£

[openSSH]¿éºÍ[closeSSH]¿éÖ®¼äµÄÖ÷񻂿±ðÔÚÓÚ[closeSSH]¿é¾ßÓж˿ںŵĹرÕÐòÁкÍiptablesɾ³ý²åÈë[openSSH]¿éÖеĹæÔòµÄÏÂÁî¡£¡£¡£¡£¡£¡£¡£

ÏÂÃæÊDzο¼µÄ×îÖÕÉèÖÃÎļþ¡£¡£¡£¡£¡£¡£¡£×¢ÖØ£¬£¬£¬ £¬£¬ÓÉÓÚĬÈÏÖµ ( 7000, 8000, 9000) ÖÚËùÖÜÖª£¬£¬£¬ £¬£¬ÒÔÊÇÏÖÒѽ«¿ª·ÅÐòÁÐÖµ¸ü¸ÄΪ20001, 20002£¬£¬£¬ £¬£¬20003¡£¡£¡£¡£¡£¡£¡£Í¬ÑùÒ²¸üÐÂÁËĬÈϵĹرÕ˳Ðò¡£¡£¡£¡£¡£¡£¡£³ý´ËÖ®Í⻹½«¶Ë¿Ú¸ü¸ÄΪ22£¬£¬£¬ £¬£¬60636£¬£¬£¬ £¬£¬ÓÉÓÚÒѾ­ÔÚÉÏÒ»²½Öн« SSH ¶Ë¿Ú¸üÐÂΪ´ËÖµ¡£¡£¡£¡£¡£¡£¡£ÁíÍâ×¢ÖØ£¬£¬£¬ £¬£¬ÔÚ¸Ã[openSSH]¿éÖУ¬£¬£¬ £¬£¬iptablesÏÂÁîÖµ´Ó¸ü¸Ä-AΪ-I£¬£¬£¬ £¬£¬ÌåÏÖ´Ëiptables¹æÔò½«´òÆðÔ´¿Ú²¢½«³ÉΪµÚÒ»¸öÖ´ÐеĹæÔò¡£¡£¡£¡£¡£¡£¡£×îºó½«³¬Ê±Öµ´Ó5ÔöÌíµ½10£¬£¬£¬ £¬£¬ÓÉÓÚ 5 ÃëÊÇÔÚÅöײÐòÁкóÁ¬Ã¦Æô¶¯ SSH ÅþÁ¬µÄÒ»¸öС´°¿Ú¡£¡£¡£¡£¡£¡£¡£

ÍêÓñ³É²¿²Ù×÷ºóÉúÑĸü¸Ä²¢Í˳öÎļþ¡£¡£¡£¡£¡£¡£¡£

3.2 ÉèÖà knockd ÕìÌýÌØ¶¨ÍøÂç½Ó¿Ú

knockd¼àÌýµÄÍøÂç½Ó¿ÚµÄÃû³ÆÐèÒªÖ¸¶¨¡£¡£¡£¡£¡£¡£¡£ÔÚÕâÀïʹÓÃip addrÏÂÁîÀ´¼ì²éÓë·þÎñÆ÷¹ØÁªµÄÍøÂç½Ó¿ÚÁбí£¬£¬£¬ £¬£¬²¢Ñ¡ÔñÏëÒªknockd¼àÌýµÄ½Ó¿ÚÃû³Æ¡£¡£¡£¡£¡£¡£¡£

ÕâÖÖÇéÐÎÏ£¬£¬£¬ £¬£¬eth0Êǰ󶨵½¹«¹² IP µØÖ·µÄ½Ó¿Ú¡£¡£¡£¡£¡£¡£¡£ÒÔÊÇÓÃÕâ¸ö½Ó¿ÚÀ´ÉèÖÃknockd¡£¡£¡£¡£¡£¡£¡£½ÓÏÂÀ´£¬£¬£¬ £¬£¬±à¼­knockdÉèÖÃÎļþ¡£¡£¡£¡£¡£¡£¡£

ÉúÑĸü¸Ä²¢Í˳öÎļþ£¬£¬£¬ £¬£¬Á¬Ã¦Æô¶¯knockd·þÎñ£º

$ systemctl start knockd

ÆôÓÃknockd·þÎñ£¬£¬£¬ £¬£¬ÒÔ±ãÔÚÏÂ´ÎÆô¶¯·þÎñÆ÷ʱͬ²½Æô¶¯¸Ã·þÎñ¡£¡£¡£¡£¡£¡£¡£

$ systemctl enable knockd

3.3 ÔÚ·À»ðǽÉÏ×èÖ¹¶Ë¿Ú 60636

ΪÁËʵÏÖ60636¶¯Ì¬·­¿ªknockd¶Ë¿ÚµÄÄ¿µÄ£¬£¬£¬ £¬£¬Ä¬ÈÏÇéÐÎϽ«×èÖ¹¶Ô¸Ã¶Ë¿ÚµÄ»á¼û£¬£¬£¬ £¬£¬Ê¹ÓÃiptablesÏÂÁîÀ´Ö´Ðд˲Ù×÷¡£¡£¡£¡£¡£¡£¡£Ö´ÐÐÒÔÏÂÏÂÁî¾Í²»»áÆÆËðÄ¿½ñµÄÔ˶¯ÅþÁ¬£º

$ sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

½ÓÏÂÀ´Ö´ÐÐÏÂÁ£¬£¬ £¬£¬ÒÔĬÈÏiptables×èÖ¹¶Ë¿ÚÉϵÄËùÓд«Èë SSH ÅþÁ¬60636£º

$ sudo iptables -A INPUT -p tcp --dport 60636 -j REJECT

ÏÖÔÚʵÑéÔÙ´ÎÅþÁ¬µ½ SSH ·þÎñÆ÷£¬£¬£¬ £¬£¬Ó¦¸Ã»áÊÕµ½¡°Connection refused¡±ÏìÓ¦£º

$ ssh -i path-to-identity-file username@SERVER_IP -p 60636ssh: connect to host SERVER_IP port 60636: Connection refused

Linux ·þÎñÆ÷ÏÖÔÚÉèÖÃÁËknockd£¬£¬£¬ £¬£¬²¢ÇÒ SSH ¶Ë¿Ú½«Ö»¿ª·Å¸ø¿ÉÒÔÀֳɷºÆðÇû÷ÐòÁеÄÌØ¶¨ IP¡£¡£¡£¡£¡£¡£¡£

04 ÅþÁ¬ SSH ·þÎñÆ÷

ÏÖÔÚÒѾ­¸ü¸ÄÁËĬÈ쵀 SSH ¶Ë¿Ú£¬£¬£¬ £¬£¬ÊµÏÖÁËÖ»ÓÐÌṩ׼ȷµÄÅöײÐòÁÐʱ²Å´òÆðÔ´¿Ú60636µÄ¹¦Ð§£¬£¬£¬ £¬£¬½ÓÏÂÀ´²âÊÔһϡ£¡£¡£¡£¡£¡£¡£

ÓÉÓÚÒѾ­ÉèÖÃknockd¼àÌýTCP SYN¶Ë¿ÚÉϵÄÊý¾Ý°ü20001£¬£¬£¬ £¬£¬20002ÇÒ20003×÷ΪÅöײÐòÁУ¬£¬£¬ £¬£¬ÏÖÔÚ¿ÉÒÔʹÓÃí§ÒâÔÊÐíÆô¶¯µ½ÕâÐ©ÌØ¶¨¶Ë¿ÚµÄ TCP ÅþÁ¬¹¤¾ß£¬£¬£¬ £¬£¬ÏÂÃæÑÝʾÏêϸ²Ù×÷°ì·¨¡£¡£¡£¡£¡£¡£¡£

4.1 ʹÓÃÅöײ

Ê×ÏÈ£¬£¬£¬ £¬£¬ÔÚ¿Í»§¶ËÅÌËã»úÖÐ×°ÖÃknockd¡£¡£¡£¡£¡£¡£¡£

$ sudo apt-get install knockd

ʹÓÃÈçÏÂknockÏÂÁîÖ´ÐÐÅöײÐòÁУº

ÏÖÔÚ¿ÉÒÔͨ¹ýSSH»á¼ûÅþÁ¬ Linux ·þÎñÆ÷£º

$ ssh -i path-to-identity-file username@SERVER_IP -p 60636

...

Íê³É SSH »á¼ûºó¿ÉÒÔÆô¶¯¹Ø±ÕÐòÁУ¬£¬£¬ £¬£¬ÈçÏÂËùʾ£º

$ knock -v SERVER_IP 20003 20002 20001 -d 500

¿ÉÒÔÉó²éknockdµÇ¼syslogä¯ÀÀÏêϸÐÅÏ¢£º

4.2 ʹÓÃÔ¶³ÌµÇ¼

ʹÓÃÒÔÏÂÏÂÁîÆô¶¯Çû÷ÐòÁÐtelnet£º

ÊÕµ½¡°Connection refused¡±ÐÂÎŲ¢ÅþÁ¬Ê§°Ü£¬£¬£¬ £¬£¬µ«Ã»¹ØÏµ£¬£¬£¬ £¬£¬ÓÉÓڸö˿ÚÉϽûÓÃÁË telnet£¬£¬£¬ £¬£¬ÎÒÃÇÖ»Ïë·¢ËÍÔÚ telnet ÅþÁ¬Ê±´ú·¢Ë굀 TCP SYN Êý¾Ý°ü¡£¡£¡£¡£¡£¡£¡£Íê³ÉËùÓÐÈý¸öÐòÁÐµÄ telnet ÏÂÁîºó¼´¿Éͨ¹ý SSH ÅþÁ¬µ½·þÎñÆ÷¡£¡£¡£¡£¡£¡£¡£

05 ²Î¿¼Á´½Ó

https://goteleport.com/blog/ssh-port-knocking/

https://www.howtoing.com/how-to-use-port-knocking-to-hide-the-ssh-port-from-attackers-on-ubuntu

Òªº¦´Ê±êÇ©£º
Çå¾²ÔËÓª ¼ì²âÓë·À»¤ÄÜÁ¦ ÍøÂçÇå¾²ÑÝÁ· Port KnockingÒþ²ØSSH·þÎñÆ÷
¿Í»§·þÎñÈÈÏß

400-777-0777
7*24Сʱ·þÎñ

ÁªÏµÓÊÏä

servicing@topsec.com.cn

ɨÂë¹Ø×¢
¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿