該教程是目前最安全的教程,如果你是新手請嚴格按照教程的步驟進行,如果是有一定基礎的人可以選擇性跳過某些段落 修改連接埠配置
先運行
vim /etc/ssh/sshd_config
找到#Port 22 這行然後去掉前面的注釋,然後再下面加一行 Port 1234
Port 22Port 1234
很多教程是直接修改22為其他連接埠,最好不要這樣做,萬一修改的連接埠不能用,你就完全登陸不上了,所以先留一條後路
修改防火牆配置
修改iptables(linux 的防火牆)檔案:
vim /etc/sysconfig/iptables
增加一行
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 1234 -j ACCEPT
關閉防火牆
然後關閉防火牆
service iptables stop
關閉SELinux
重要:先關閉SELinux,很多教程沒有提到這點,因為SElinux 預設的防護等級是很高的,如果不關閉SElinux就會出現很多問題
vim /etc/sysconfig/selinux
將SELINUX=enforcing 這行修改為 SELINUX=disabled 然後重啟
測試連接
重啟好後運行命令 :
netstat -tpnl | grep ssh
會看到同時有兩個連接埠開啟
[root@localhost ~]# netstat -tpnl | grep sshtcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1497/sshd tcp 0 0 0.0.0.0:1234 0.0.0.0:* LISTEN 1497/sshd tcp 0 0 :::22 :::* LISTEN 1497/sshd tcp 0 0 :::1234 :::* LISTEN 1497/sshd
重要:這時測試一下新連接埠能否串連通過
修改SELinux配置
如果正常再進行下面的步驟:修改selinux
剛剛裝好的centos是沒有semanage命令的,所以請先確認semanage命令是否存在,如果沒有,就按照下面的教程安裝
# rpm -qa | grep semanaglibsemanage-2.0.43-4.2.el6.x86_64# which semanage/usr/bin/which: no semanage in (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)# yum provides /usr/sbin/semanagepolicycoreutils-python-2.0.83-19.30.el6.x86_64 : SELinux policy core python utilitiesRepo : baseMatched from:Filename : /usr/sbin/semanage# yum whatprovides /usr/sbin/semanageLoaded plugins: fastestmirror, refresh-packagekit, securityLoading mirror speeds from cached hostfile * base: mirrors.prometeus.net * epel: mirror.switch.ch * extras: mirrors.prometeus.net * rpmfusion-free-updates: rpmfusion.famillecollet.com * rpmfusion-nonfree-updates: rpmfusion.famillecollet.com * updates: mirrors.prometeus.netpolicycoreutils-python-2.0.83-19.30.el6.x86_64 : SELinux policy core python utilitiesRepo : baseMatched from:Filename : /usr/sbin/semanage# yum -y install policycoreutils-python
完成之後,使用以下命令查看當前SElinux 允許的ssh連接埠:
semanage port -l | grep ssh
會輸出
ssh_port_t tcp 22
添加1234連接埠到 SELinux
semanage port -a -t ssh_port_t -p tcp 1234
重要:然後確認一下是否添加進去
semanage port -l | grep ssh
如果成功會輸出
ssh_port_t tcp 1234, 22
開啟SELinux較低安全等級
然後去修改SELinux策略,重新開啟它,但是我們先修改為permissive這種安全等級不會攔截你的修改,只是提示警告
vim /etc/sysconfig/selinux
修改安全等級
SELINUX=permissive
然後reboot重啟
重要:重啟好之後再一次用新連接埠測試遠端連線 開啟SELinux正常安全等級
重啟好之後用新的連接埠測試連接
如果測試通過修改 SELINUX=enforcing, 然後重啟,因為前面說過很多次修改的方式,這邊就不貼代碼了
重啟之後再一次用新連接埠測試遠端連線 後續清理步驟
如果都可以的話,恭喜你,成功的配置好新連接埠,然後你可以自己進行把22連接埠從sshd_config中刪除,把22連接埠從防火牆中刪除等步驟