新聞中心
在Linux系統(tǒng)中,SSH(Secure Shell)是一種常見的遠(yuǎn)程登錄和管理工具,有時候我們可能需要限制SSH連接數(shù),以防止惡意攻擊或者資源過度消耗,本文將介紹幾種在Linux中限制SSH連接數(shù)的方法。

1、使用iptables限制SSH連接數(shù)
iptables是Linux系統(tǒng)中的一個防火墻工具,可以用來限制網(wǎng)絡(luò)流量,我們可以使用iptables來限制SSH連接數(shù),以下是具體的操作步驟:
1、1 安裝iptables
在Debian/Ubuntu系統(tǒng)中,可以使用以下命令安裝iptables:
sudo apt-get install iptables
在CentOS/RHEL系統(tǒng)中,可以使用以下命令安裝iptables:
sudo yum install iptables
1、2 限制SSH連接數(shù)
使用以下命令限制SSH連接數(shù)為5:
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH --rsource --hitcount 5 -j REJECT
這條命令的意思是:當(dāng)有新的TCP連接嘗試訪問22端口(SSH默認(rèn)端口)時,如果這個連接的源IP地址在過去的5分鐘內(nèi)已經(jīng)發(fā)起過5次SSH連接,那么拒絕這個連接。
2、使用ufw限制SSH連接數(shù)
ufw(Uncomplicated Firewall)是Ubuntu系統(tǒng)中的一個簡單防火墻工具,我們可以使用ufw來限制SSH連接數(shù),以下是具體的操作步驟:
2、1 安裝ufw
在Ubuntu系統(tǒng)中,可以使用以下命令安裝ufw:
sudo apt-get install ufw
2、2 啟用ufw并設(shè)置規(guī)則
使用以下命令啟用ufw并設(shè)置規(guī)則,限制SSH連接數(shù)為5:
sudo ufw enable && sudo ufw limit 22/tcp --limit 5/second --timeout 300
這條命令的意思是:啟用ufw防火墻,并設(shè)置規(guī)則,限制每個IP地址每秒鐘最多只能發(fā)起5個SSH連接,每個連接的超時時間為300秒。
3、使用fail2ban限制SSH連接數(shù)
fail2ban是一個用于防止暴力破解密碼的工具,它可以根據(jù)日志文件自動識別和阻止惡意連接,我們可以使用fail2ban來限制SSH連接數(shù),以下是具體的操作步驟:
3、1 安裝fail2ban
在Debian/Ubuntu系統(tǒng)中,可以使用以下命令安裝fail2ban:
sudo apt-get install fail2ban
在CentOS/RHEL系統(tǒng)中,可以使用以下命令安裝fail2ban:
sudo yum install fail2ban
3、2 配置fail2ban監(jiān)控SSH日志文件并限制連接數(shù)
編輯fail2ban的配置文件/etc/fail2ban/jail.local,添加以下內(nèi)容:
[sshd] enabled = true port = sshd,22,smtp,465,submission,pop3,imap,imaps,https,http-proxy,socks5,radius,auth,privoxy,dovecot,ldap,discard,mysql,allports,xmpp-bosh,xmpp-client,xmpp-server,zabbix-agent,redis-cli,redis-server,skype,teamspeak,vnc-server,postgresql-ssl,postfix-smtp,openvpn,cowboy,roundcube,netstat,squid3,stunnel4,svnserve,git-daemon,gopher,nfs,pcp-event-logfile,pcp-syslog-authpriv,pcp-syslog-local7,pcp-syslog-user,pcp-authpriv,pcp-local7,pcp-user,saslauthd,proftpd,powerdns-recursor,powerdns-queryportal,couchdb,collectd,socat,redis-ping,redis-stat,mongodb310,mongodb340,mongodb360,mongodb400,mongodb420,mongodb440,mongodb460,mongodb480,mongodb500,mongodb520,mongodb540,mongodb560,mongodb580,mongodb600,mongodb620,mongodb640,mongodb660,mongodb680,mongodb700,mongodb720,mongodb740,mongodb760,mongodb780,mongodb800,mongodb900] chain = INPUT_direct:INPUT_fail2ban_sshd [sshd] ignoreip = 127.0.0.1/8 bantime = 3600 findtime = 600 maxretry = 3 ignorecommand = rootlogin shell="/bin/false" port="*" protocol="tcp" chain = INPUT_direct [sshd] action_ = %(banaction)s[name=%(__name__)s][destemail=admin@example.com] banaction = firewallcmd[name=%(__name__)s] action_mwl = %(banaction)s[name=%(__name__)s][destemail=admin@example.com] mwl = yes bannedip = 192.168.1.1/32 bantime = 3600 findtime = 600 maxretry = 3 ignorecommand = rootlogin shell="/bin/false" port="*" protocol="tcp" chain = INPUT_direct [sshd] action_ = %(banaction)s[name=%(__name__)s][destemail=admin@example.com] banaction = firewallcmd[name=%(__name__)s] action_mwl = %(banaction)s[name=%(__name__)s][destemail=admin@example.com] mwl = yes bannedip = 192.168.1.2/32 bantime = 3600 findtime = 600 maxretry = 3 ignorecommand = rootlogin shell="/bin/false" port="*" protocol="tcp" chain = INPUT_direct [sshd] action_ = %(banaction)s[name=%(__name__)s][destemail=admin@example.com] banaction = firewallcmd[name=%(__name__)s] action_mwl = %(banaction)s[name=%(__name__)s][destemail=admin@example.com] mwl = yes bannedip = 192.168.1.3/32 bantime = 3600 findtime = 600 maxretry = 3 ignorecommand = rootlogin shell="/bin/false" port="*" protocol="tcp" chain = INPUT_direct [sshd] action_ = %(banaction)s[name=%(__name__)s][destemail=admin@example.com] banaction = firewallcmd[name=%(__name__)s] action_mwl = %(banaction)s[name=%(__name__)s][destemail=admin@example.com] mwl = yes bannedip = 192.168.1.4/32 bantime = 3600 findtime = 600 maxretry = 3 ignorecommand = rootlogin shell="/bin/false" port="*" protocol="tcp" chain = INPUT_direct [sshd] action_ = %(banaction)s[name=%(__name__)s][destemail=admin@example.com] banaction = firewallcmd[name=%(__name__)s] action_mwl = %(banaction)s[name=%(__name__)s][destemail=admin@example.com] mwl = yes bannedip = 192.168.1.5/32 bantime = 3600 findtime = 600 maxretry = 3 ignorecommand = rootlogin shell="/bin/false" port="*" protocol="tcp" chain = INPUT_direct [sshd] action_ = %(banaction)s[name=%(__name__)s][destemail=admin@example.com] banaction = firewallcmd[name=%(__name__)s] action_mwl = %(banaction)s[name=%(__name__)s][destemail=admin@example.com] mwl
名稱欄目:linux限制ssh連接數(shù)的方法有哪些
文章來源:http://www.dlmjj.cn/article/dhgjgjd.html


咨詢
建站咨詢
