上文:Linux服务器配置-SSH远程登录管理(三)
上两篇文章介绍了SSH服务配置密码认证和密钥对认证的方法,这里使用的都是SSH服务默认的22端口。Linux系统安装完毕后,为了便于远程控制,默认开启SSH服务并对防火墙和SELinux进行了缺省配置,这样就会很方便的通过SSH连接到远程主机。如果需要更改SSH服务的默认端口,并且系统开启了防火墙和SELinux,那么就要对它们进行相应设置后,方能正确连接到主机。
下面将通过实例说明系统在开启防火墙和SELinux后怎样改变SSH的服务端口。(SSH认证的配置请参阅以前的文章,这里就不再讲述。)现将上篇文章中的实例的SSH服务端口更改为2019。
一、查询主机防火墙和SELinux的运行状态
1、在系统中查询防火墙的运行状态
- 在CentOS6系统中
CentOS6系统中运行的防火墙是iptables,可用以下命令查询iptables的运行状态。
service iptables status #查询iptables的运行状态
- 在RHEL7系统中
RHEL7系统中运行的防火墙是firewalld或者是iptables,可用以下命令查询运行状态。
systemctl status firewalld iptables #查询firewalld和iptables的运行状态
iptables与firewalld都不是真正的防火墙,它们都只是用来定义防火墙策略的防火墙管理工具,或者说只是一种服务。iptables会把配置好的防火墙策略交由内核层面的netfilter网络过滤器来处理,而firewalld服务则是把配置好的防火墙策略交由内核层面的nftables包过滤框架来处理。
2、在系统中查询SELinux的运行状态
sestatus | grep SELinux #查询SELinux的运行状态
getenforce#查询SELinux的运行模式(enforcing 强制、permissive 警告和disabled 禁用)
二、更改端口前其他准备工作
1、安装semanage工具,用来设置SELinux安全策略。
rpm -qa | grep policycoreutils-python #检查semanage工具是否安装
如果未安装请用下列命令安装
yum install -y policycoreutils-python#安装semanage工具
2、查询预更改的端口在SELinux中的定义情况
semanage port -l | grep 2019
执行此命令,如果没有任何输出信息,表示此预设端口没有被SELinux定义,即可用。
三、修改SSH服务的默认端口
SSH服务默认是22端口,如果要修改端口,可先增加一个端口,测试新端口设置成功后,再把默认22端口关闭掉。
1、修改SSH服务的配置文件
vim /etc/ssh/sshd_config
Port 22#去掉此项前的井号
Port 2019 #增加一个预更改的端口
2、修改SELinux端口定义
semanage port -a -t ssh_port_t -p tcp 2019 #将预更改端口添加到SELinux规则中
semanage port -l | grep ssh#检查预更改端口是否添加成功
3、在防火墙中开放该端口
- iptables防火墙
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 2019 -j ACCEPT#添加防火墙规则,开放预更改端口。
iptables -L -n #查看预更改端口防火墙规则是否设置成功
service iptables save #保存iptables设置
service iptables restart#重新启动防火请
- firewalld防火墙
firewall-cmd --permanent --zone=public --add-port=2019/tcp#添加防火墙规则,开放预更改端口。
firewall-cmd --reload #重新加载放火墙
firewall-cmd --list-all #查看预更改端口设置情况
4、重启SSH服务
service sshd restart #CentOS6主机
systemctl restart sshd #RHEL7主机
5、用修改后的端口登录测试
ssh -p 2019 root@192.168.1.90 #登录CentOS6主机
ssh -p 2019 snowfox@192.168.1.93#登录RHEL7主机
这里用Linux系统SSH客户端进行登录测试,如果使用Windows系统SSH工具登录,一定要注意更改端口号。
四、关闭默认22端口
1、在防火墙中关闭SSH默认22端口
- iptables防火墙
iptables -D INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT#删除默认22端口规则
service iptables save #保存iptables设置
service iptables restart#重新启动防火请
- firewalld防火墙
firewall-cmd --permanent --zone=public --remove-service=ssh#删除默认22端口规则
firewall-cmd --reload #重新加载放火墙
firewall-cmd --list-all #查看端口设置情况
2、修改SSH服务的配置文件
vim /etc/ssh/sshd_config
Port 22#删除此项
Port 2019 #保留此项设置
重启SSH服务
service sshd restart #CentOS6系统
systemctl restart sshd #RHEL7系统
3、用netstat命令查看端口的开放情况
netstat -tunl | grep -E ':2019|:22'
以上是我在学习Linux系统中整理的一些学习要点,肯定会有不对的地方,希望各位大侠给与指正,我们共同学习!谢谢!
至此【Linux服务器配置-SSH远程登录管理】已经全部介绍完毕,如果喜欢请加关注!谢谢!
下篇将介绍【Linux服务器配置-VSFTP服务配置】