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可以配合使用。