RHEL下 ssh,telnet,ftp限制源IP访问
一、客户需求:
限制ssh、telnet、ftp服务的访问源IP。仅允许特定网段访问。
二、解决方案及示例:
A.iptables防火墙方案:
1.解决方案概述:
使用RHEL操作系统自带的iptables防火墙服务来对特定的网络源IP地址进行限制。
2.示例:
编写防火墙脚本iptables.sh
vi iptables.sh
#!/bin/bash
sevice iptables start
清除iptables默认及自定义的所有规则:
iptables -F
iptables -X
iptables –Z
将防火墙的入站默认策略设置为接受:
iptables -t filter -P INPUT ACCEPT
只允许网段192.168.1.0/24内的主机对ssh telnet ftp 服务的访问。
iptables -I INPUT -s ! 192.168.1.0/24 -p tcp --dport ssh -j DROP
iptables -I INPUT -s ! 192.168.1.0/24 -p udp --dport ssh -j DROP
iptables -I INPUT -s! 192.168.1.0/24 -p tcp --dport telnet -j DROP
iptables -I INPUT -s !192.168.1.0/24 -p udp --dport telnet -j DROP
iptables -I INPUT –s ! 192.168.1.0/24 -p tcp --dport ftp -j DROP
iptables -I INPUT -s ! 192.168.1.0/24 -p udp --dport ftp -j DROP
保存策略:
service iptables save
查看策略是否生效:
iptables-save
设置权限并运行脚本:
chmod u+x iptables.sh
./iptables.sh
查看效果:
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP udp -- !192.168.1.0/24 0.0.0.0/0 udp dpt:21
2 DROP tcp -- !192.168.1.0/24 0.0.0.0/0 tcp dpt:21
3 DROP udp -- !192.168.1.0/24 0.0.0.0/0 udp dpt:23
4 DROP tcp -- !192.168.1.0/24 0.0.0.0/0 tcp dpt:23
5 DROP udp -- !192.168.1.0/24 0.0.0.0/0 udp dpt:22
6 DROP tcp -- !192.168.1.0/24 0.0.0.0/0 tcp dpt:22
B.Tcp_Wrapper 方案:
1.解决方案概述:
通过tcp_wrapper 软件在进程上进行访问控制。
2.示例:
tcp_wrapper通过读取/etc/hosts.allow和/etc/hosts.deny这两个文件来控制对相关服务进程的访问,并且优先读取/etc/hosts.allow文件。
修改/etc/hosts.allow 文件。
只允许192.168.0.0/24网段内所有主机访问 ssh, telnet和ftp
vi /etc/hosts.allow
sshd:192.168.0.
in.telnetd:192.168.0.
vsftpd:192.168.0.
除以上以外拒绝所有。vi /etc/hosts.deny
ALL:ALL
补充:
iptables 与tcp_wrapper可以配合使用。