ssh端口配置及iptables

设置反向防火墙及更改ssh端口

Ubuntu 14.04 64位

##一、反向防火墙

  1. 所有进入的流量都允许
  2. 所有流出的流量受端口限制
  3. 设置管理员IP特权
  4. iptables开机自动加载
  5. 预留ssh端口22 20000
#!/bin/bash
############################################
# LOCATION OF PROGRAMS USED BY THIS SCRIPT #
############################################
IPTABLES="/sbin/iptables"

### Variable for manage ip
MANAGE_IP="192.168.23.1"
# This variable will limit outbound Fierwall connections
# to ports identified in the ALLOWED_TCP_OUT and
# ALLOWED_UDP_OUT variables
ALLOWED_UDP_OUT="47808"
ALLOWED_TCP_OUT="22 80 102 161 502 623 1025 2404 10001 50100"
### Set default policies for the OUTPUT chains
# By default,drop all connections out
####################
# END OF PROG VARS #
####################
# Flush rules
$IPTABLES -F
$IPTABLES -F -t nat
$IPTABLES -F -t mangle
$IPTABLES -X

###########################
# MANAGEMENT OUTPUT RULES #
###########################
# If we selected to restrict the firewall,lets implement it here.
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT DROP
for port in $ALLOWED_TCP_OUT;do
	$IPTABLES -A OUTPUT -p tcp --sport $port -m state --state ESTABLISHED,RELATED -j ACCEPT
done
for port in $ALLOWED_UDP_OUT;do
	$IPTABLES -A OUTPUT -p udp --sport $port -m state --state ESTABLISHED,RELATED -j ACCEPT
done
# Managers are all allowed
for mg in $MANAGE_IP;do
        $IPTABLES -I OUTPUT -d $mg -j ACCEPT
done
############################
# LOAD IPTABLES ON STARTUP #
############################
iptables-save > /etc/init.d/iptables.up.rules
cat >> /etc/network/interfaces <<EOF
pre-up iptables-restore < /etc/init.d/iptables.up.rules
EOF

##二、修改SSH端口配置

  1. 修改ssh配置文件
vim /etc/ssh/sshd_config

找到Port 22,然后将端口22改为你想要的端口号
2. 重启SSH服务

/etc/init.d/ssh restart

我的系统是ssh,但网络其他教程这里是sshd
3. ssh连接

ssh localhost -p 你的端口号

连接成功
4. ssh启动时遇到的问题

root@bt:~# /etc/init.d/ssh start
* Starting OpenBSD Secure Shell server sshd                                   
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_dsa_key

有两个提示 Could not load host key: /etc/ssh/ssh_host_rsa_key 和 Could not load host key: /etc/ssh/ssh_host_dsa_key ,此时如果从客户端连接到服务器时是不会成功的。其原因是在 SSH 连接协议中需要有 RSA 或 DSA 密钥的鉴权。 因此,我们可以在服务器端使用 ssh-keygen 程序来生成一对公钥/私钥对

运行下面命令:

oot@bt:/etc/ssh# ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):            #直接回车即可
Enter same passphrase again: 
Your identification has been saved in /etc/ssh/ssh_host_rsa_key.
Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.
The key fingerprint is:
3b:a4:b8:df:a9:15:d1:62:df:d5:d1:41:50:59:4a:96 root@bt
The key's randomart image is:
+--[ RSA 2048]----+
|             .***|
|         .   oE+o|
|        + .   o .|
|       . + . .   |
|        S . .    |
|     . o o       |
|    . . +        |
|     . o o       |
|    ..o.o        |
+-----------------+

上面 ssh-keygen 命令中,-t 选项表示生成的密钥所使用的加密类型,这里选择的是 RSA ;-b 选项表示 bit,后接一个整数,表示加密的位数,该数值越大表示加密的强度越高;-f 选项后接要生成的密钥文件名。根据 /etc/ssh 目录下的 sshd_config 配置文件,RSA 密钥默认识别文件名为 ssh_host_rsa_key 。

命令执行成功后,在 /etc/ssh 下会看到有两个文件生成:ssh_host_rsa_key 和 ssh_host_rsa_key.pub ,前者是私钥,后者是公钥。这样,当再次用 putty 连接时,首先会提示服务器端的加密指纹已经被修改,如果信任则点 yes 继续,否则断开,这里当然是选择信任 yes 。此后,客户端将用公钥对数据进行加密后发往服务器,而服务器收到数据后则用私钥进行解密。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值