在Linux上開啟遠程登錄并限制外部訪問的操作:
1. 安裝和配置SSH服務
首先,確保SSH服務已安裝并運行。在大多數Linux發行版中,SSH服務默認已安裝。如果未安裝,可以使用包管理器進行安裝。
Debian/Ubuntu:
sudo apt update
sudo apt install opensshserver
CentOS/RHEL:
sudo yum install opensshserver
啟動并啟用SSH服務:
sudo systemctl start sshd
sudo systemctl enable sshd
2. 配置防火墻
使用`firewalld`或`iptables`等防火墻工具來限制對SSH端口的訪問。
使用`firewalld`(適用于CentOS/RHEL和某些Debian衍生版):
啟用并啟動firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
開放SSH端口(默認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端口(默認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配置(對于Debian/Ubuntu,使用iptablespersistent)
sudo apt install iptablespersistent
sudo netfilterpersistent save
對于CentOS/RHEL,使用service命令或systemctl命令保存配置
sudo service iptables save
或者
sudo systemctl save iptables.service
3. 配置SSH配置文件
編輯SSH配置文件`/etc/ssh/sshd_config`,進一步限制訪問并增強安全性。
sudo nano /etc/ssh/sshd_config
進行以下修改:
限制允許的IP地址:
bash
或者,使用`Match`塊來限制特定IP地址:
bash
Match Address 192.168.1.100
AllowUsers user
禁用密碼認證,啟用公鑰認證:
bash
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
更改SSH端口(可選):
bash
Port 2222
如果更改了端口,請確保防火墻規則也相應更新。
限制SSH會話數:
bash
MaxSessions 2
禁用root用戶登錄:
bash
PermitRootLogin no
保存并退出編輯器,然后重啟SSH服務:
sudo systemctl restart sshd
4. 驗證配置
確保SSH服務正在運行,并且只能從允許的IP地址訪問:
sudo systemctl status sshd
嘗試從不同的IP地址連接SSH,確保只有允許的IP地址能夠成功連接。
通過配置SSH服務、防火墻規則和SSH配置文件,可以有效地開啟遠程登錄并限制外部訪問。這些措施將大大提高Linux系統的安全性,減少潛在的安全威脅。務必定期審查和調整這些配置,以適應不斷變化的網絡環境和安全需求。