linux系统,linux 远程设置SSH服务和防火墙

首页 2024-12-19 17:49:58



在Linux系统中,设置SSH(Secure Shell)服务和防火墙是确保远程访问安全性的关键步骤。以下是对这一过程的详细阐述:
 
SSH服务的设置
 
1.安装SSH服务:
    对于Ubuntu/Debian系统,使用命令`sudo aptget install opensshserver`。
    对于CentOS/RHEL系统,使用命令`sudo yum install opensshserver`。
 
2.启动并启用SSH服务:
    使用命令`sudo systemctl startssh`来启动SSH服务。
    使用命令`sudo systemctl enablessh`来设置SSH服务开机自启。
 
3.配置SSH服务:
   编辑`/etc/ssh/sshd_config`文件,设置SSH服务监听的端口、允许的用户、禁止root登录等。
    例如,更改SSH服务端口为2222,可以在配置文件中添加或修改`Port 2222`。
    禁止root用户直接登录,将`PermitRootLogin`设置为`no`。
 
4.重启SSH服务:
    修改配置后,使用命令`sudo systemctl restartssh`来重启SSH服务,使配置生效。
 
5.生成SSH密钥对:
    使用命令`sshkeygen t rsa b 4096 f ~/.ssh/my_key`来生成SSH密钥对。
 
6.使用SSH密钥登录:
    将公钥复制到目标服务器,可以使用`sshcopyid user@remote_server`命令,或者手动复制公钥到目标服务器的`~/.ssh/authorized_keys`文件中。
 
防火墙的设置
 
1.使用iptables设置防火墙:
    查看当前的防火墙规则:`sudo iptables L v n`。
    允许特定端口的流量,例如允许SSH(端口2222)和HTTP(端口80)流量:`sudo iptables A INPUT p tcp dport 2222 jACCEPT`,`sudo iptables A INPUT p tcp dport 80 j ACCEPT`。
    允许特定IP地址的流量:`sudo iptables A INPUT s 192.168.1.100 jACCEPT`。
    拒绝所有未允许的流量:`sudo iptables A INPUT j DROP`。
    保存防火墙规则:`sudo service iptablessave`。
 
2.使用ufw设置防火墙(适用于Ubuntu/Debian系统):
    安装ufw:`sudo apt update && sudo apt install ufw`。
    启用ufw:`sudo ufw enable`。
    查看当前的防火墙规则:`sudo ufw status`。
    允许特定端口的流量:`sudo ufw allow 2222/tcp`,`sudo ufw allow 80/tcp`。
    允许特定IP地址的流量:`sudo ufw allow from 192.168.1.100 to any port 2222`。
    拒绝所有未允许的流量:`sudo ufw denyall`。
    保存防火墙规则:`sudo ufwsave`。
 
3.使用firewalld设置防火墙(适用于CentOS/RHEL系统):
    安装firewalld:`sudo yum install firewalld`。
    启动firewalld服务:`sudo systemctl start firewalld`。
    设置开机启动:`sudo systemctl enable firewalld`。
    查看当前的防火墙区域和规则:`sudo firewallcmd listall`。
    允许特定端口的流量:`sudo firewallcmd permanent addservice=ssh`(注意,如果更改了SSH端口,需要使用`addport`选项并指定新端口)。
    允许特定IP地址的流量:需要使用`addrichrule`选项并指定规则。
    拒绝所有未允许的流量:需要配置一条拒绝所有包的规则。
    保存防火墙规则:`sudo firewallcmd runtimetopermanent`。
 
注意事项
 
    在更改SSH端口后,确保新的端口在防火墙上已放通,并且SELinux(如果启用)也允许新的端口。
    定期更新SSH软件包和密钥文件,以确保系统的安全性。
    监控SSH登录尝试,可以使用fail2ban等工具来防止暴力破解攻击。