示例:iptables限制ssh链接服务器

linux服务器默认通过22端口用ssh协议登录,这种不安全。今天想做限制,即允许部分来源ip连接服务器。

案例目标:通过iptables规则限制对linux服务器的登录。

处理方法:编写为sh脚本,以便多次执行。iptables.sh

iptables -I INPUT -p tcp --dport 22 -j DROP -m comment --comment "ssh"
# 按ip范围区间开放
iptables -I INPUT -p tcp -m iprange --src-range 172.18.163.227-172.18.163.232 --dport 22 -j ACCEPT -m comment --comment "ssh"

# 按网段开放
iptables -I INPUT -p tcp -s 10.99.193.0/24 --dport 22 -j ACCEPT -m comment --comment "ssh"

简要说明:这里默认使用filter表的INPUT链,使用-I插入方式,第一条DROP操作顺序不能错,必须是首条。

对于已经插入的规则,可以使用下面的命令进行查看:

iptables -t filter -nvL --line-number |grep ssh

如果后面需要删除规则,可以按照下面的方式处理:

iptables -t filter -D INPUT 3

说明一下:这里删除iptables规则,指定了filter表的INPUT链,避免出错。
根据上一步查看的规则的行号来删除,查看到相应的规则编号之后,最好从最大的编号开始逐条删除。

示例:禁止所有类型链接,允许特别定来源ip链接 iptables-myrules.sh

#! /bin/bash
# author: xiongzaiqiren
# date: 2023-03-20
# usage: sh iptables-myrules.sh
# 设置服务器安全,允许特定来源ip访问请执行我。
# 每次改完需要执行iptables-save > /etc/iptables-myrules.conf 备份规则哦

#允许ping
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# 拒绝所有链接
iptables -P INPUT DROP;

# 指定ip及范围允许链接
iptables -A INPUT -s 10.99.193.243 -p tcp -j ACCEPT
iptables -A INPUT -s 10.90.5.0/24 -p tcp -j ACCEPT
iptables -A INPUT -s 10.99.193.0/24 -p tcp -j ACCEPT

iptables -nvL --line-numbers 
#iptables -t filter -D INPUT 3 #表示删除filter表中的FORWARD链的第一条规则 

参考:iptables使用详解(示例如何屏蔽docker 暴露的端口)
参考:Linux系统安全限制:禁用或限制用户ssh登录(sshd_config、hosts.allow、hosts.deny、nologin、passwd)

posted @ 2023-03-20 14:24  熊仔其人  阅读(1025)  评论(0编辑  收藏  举报