在Linux上開啟遠(yuǎn)程登錄并限制外部訪問的操作:
1. 安裝和配置SSH服務(wù)
首先,確保SSH服務(wù)已安裝并運(yùn)行。在大多數(shù)Linux發(fā)行版中,SSH服務(wù)默認(rèn)已安裝。如果未安裝,可以使用包管理器進(jìn)行安裝。
Debian/Ubuntu:
sudo apt update
sudo apt install opensshserver
CentOS/RHEL:
sudo yum install opensshserver
啟動(dòng)并啟用SSH服務(wù):
sudo systemctl start sshd
sudo systemctl enable sshd
2. 配置防火墻
使用`firewalld`或`iptables`等防火墻工具來限制對(duì)SSH端口的訪問。
使用`firewalld`(適用于CentOS/RHEL和某些Debian衍生版):
啟用并啟動(dòng)firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
開放SSH端口(默認(rèn)22)
sudo firewallcmd permanent addservice=ssh
拒絕所有其他IP地址的SSH訪問(只允許特定IP)
sudo firewallcmd permanent addrichrule=rule family=ipv4 source address=192.168.1.100/32 port port=22 protocol=tcp accept
sudo firewallcmd permanent addrichrule=rule family=ipv4 port port=22 protocol=tcp drop
重新加載防火墻配置
sudo firewallcmd reload
使用`iptables`:
開放SSH端口(默認(rèn)22)并允許特定IP訪問
sudo iptables A INPUT p tcp dport 22 s 192.168.1.100 j ACCEPT
拒絕所有其他IP地址的SSH訪問
sudo iptables A INPUT p tcp dport 22 j DROP
保存iptables配置(對(duì)于Debian/Ubuntu,使用iptablespersistent)
sudo apt install iptablespersistent
sudo netfilterpersistent save
對(duì)于CentOS/RHEL,使用service命令或systemctl命令保存配置
sudo service iptables save
或者
sudo systemctl save iptables.service
3. 配置SSH配置文件
編輯SSH配置文件`/etc/ssh/sshd_config`,進(jìn)一步限制訪問并增強(qiáng)安全性。
sudo nano /etc/ssh/sshd_config
進(jìn)行以下修改:
限制允許的IP地址:
bash
AllowUsers user@192.168.1.100
或者,使用`Match`塊來限制特定IP地址:
bash
Match Address 192.168.1.100
AllowUsers user
禁用密碼認(rèn)證,啟用公鑰認(rèn)證:
bash
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
更改SSH端口(可選):
bash
Port 2222
如果更改了端口,請(qǐng)確保防火墻規(guī)則也相應(yīng)更新。
限制SSH會(huì)話數(shù):
bash
MaxSessions 2
禁用root用戶登錄:
bash
PermitRootLogin no
保存并退出編輯器,然后重啟SSH服務(wù):
sudo systemctl restart sshd
4. 驗(yàn)證配置
確保SSH服務(wù)正在運(yùn)行,并且只能從允許的IP地址訪問:
sudo systemctl status sshd
嘗試從不同的IP地址連接SSH,確保只有允許的IP地址能夠成功連接。
通過配置SSH服務(wù)、防火墻規(guī)則和SSH配置文件,可以有效地開啟遠(yuǎn)程登錄并限制外部訪問。這些措施將大大提高Linux系統(tǒng)的安全性,減少潛在的安全威脅。務(wù)必定期審查和調(diào)整這些配置,以適應(yīng)不斷變化的網(wǎng)絡(luò)環(huán)境和安全需求。