linux中如何限制IP访问服务器

本文介绍如何通过配置Linux的hosts.allow与hosts.deny文件实现精确的远程访问控制,并展示了在AIX系统中利用IP安全过滤规则进行访问权限管理的方法。

http://purpen.iteye.com/blog/1135342

==============================Linux===========================

hosts.allow与hosts.deny两个文件均在/etc/目录下,优先级为先检查hosts.deny,再检查hosts.allow, 后者设定可越过前者限制。 

例如: 
1.限制所有的ssh, 
除非从218.64.87.0——127

vi /etc/hosts.deny
hosts.deny: 
in.sshd:ALL

-------------------------------------------------

vi /etc/hosts.allow
hosts.allow: 
in.sshd:218.64.87.0/255.255.255.128 
in.sshd:218.64.88.10
---------------------------------
hosts.allow:
ALL:192.100.248.247 

2.封掉218.64.87.0——127的telnet 
hosts.deny:
in.sshd:218.64.87.0/255.255.255.128 

3.限制所有人的TCP连接,除非从218.64.87.0——127访问 
hosts.deny:
ALL:ALL 


hosts.allow: 
ALL:218.64.87.0/255.255.255.128 


4.限制218.64.87.0——127对所有服务的访问 
hosts.deny 
ALL:218.64.87.0/255.255.255.128 

其中冒号前面是TCP daemon的服务进程名称,通常系统进程在/etc/inetd.conf中指定,比如in.ftpd,in.telnetd,in.sshd 

其中IP地址范围的写法有若干中,主要的三种是: 
1.网络地址——子网掩码方式: 
218.64.87.0/255.255.255.0 


2.网络地址方式(我自己这样叫,呵呵) 
218.64.(即以218.64打头的IP地址) 

3.缩略子网掩码方式,既数一数二进制子网掩码前面有多少个“1”比如: 
218.64.87.0/255.255.255.0《====》218.64.87.0/24 
______________________________
设置好后,要重新启动
# /etc/rc.d/init.d/xinetd restart
# /etc/rc.d/init.d/network restart

==============================AIX============================

1.增加一个过滤规则以允许接受从10.152.129.49发来的ftp请求:
# smitty ipsec4---> Advanced IP Security Configuration------> Configure IP Security Filter Rules---------> Add an IP Security Filter Rule ->Add an IP Security Filter Rule
* Rule Action -----------------------------------[permit] +
* IP Source Address -----------------------------[10.152.129.49]
* IP Source Mask --------------------------------[255.255.255.255]
IP Destination Address --------------------------[]
IP Destination Mask ---------------------------- []
* Apply to Source Routing? (PERMIT/inbound only) [yes]+
* Protocol --------------------------------------[all]+
* Source Port / ICMP Type Operation -------------[any]+
* Source Port Number / ICMP Type ----------------[0] #
* Destination Port / ICMP Code Operation --------[eq]+
* Destination Port Number / ICMP Type -----------[21] #
* Routing ---------------------------------------[both] +
* Direction -------------------------------------[both]+
* Log Control -----------------------------------[no]+
* Fragmentation Control -------------------------[0]+
* Interface -------------------------------------[all] +
其他缺省值
2. 增加另一个过滤规则以拒绝其它所有向10.110.157.151发出的ftp请求:
Add an IP Security Filter Rule
* Rule Action -----------------------------------[deny]+
* IP Source Address -----------------------------[0.0.0.0]
* IP Source Mask --------------------------------[0.0.0.0]—
IP Destination Address ------------------------[10.110.157.151]—
IP Destination Mask ---------------------------[255.255.255.255] *
Apply to Source Routing? (PERMIT/inbound only) [yes] +
* Protocol --------------------------------------[all]+
* Source Port / ICMP Type Operation -------------[any] +
* Source Port Number / ICMP Type ----------------[0] #
* Destination Port / ICMP Code Operation --------[eq]+
* Destination Port Number / ICMP Type -----------[21]#
* Routing ---------------------------------------[both]+
* Direction -------------------------------------[both]+
* Log Control -----------------------------------[no] +
* Fragmentation Control ------------------------ [all packets]+
* Interface ------------------------------------ [all] +


2. 激活设置的过滤规则:
# smitty ipsec4---> Advanced IP Security Configuration----> Activate/Update/Deactivate IP ---->Security Filter Rule ---------> Activate / Update


3. 上面的操作进行完后,用户将只能从10.152.129.49 ftp至 10.110.157.151,任何其它机器试图ftp至10.110.157.151的操作将失败。

Linux系统中,常用的防火墙管理工具有`iptables``firewalld` ,以下是使用这两种工具设置仅允许特定IP访问服务器的方法。 ### 使用`iptables`设置 `iptables`是Linux下经典的防火墙管理工具,以下是设置仅允许特定IP访问服务器的示例代码: ```bash # 清空当前所有规则 iptables -F # 允许本地回环接口 iptables -A INPUT -i lo -j ACCEPT # 允许已建立的相关的连接 iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # 允许特定IP(例如192.168.1.100)访问服务器的所有端口 iptables -A INPUT -s 192.168.1.100 -j ACCEPT # 拒绝其他所有的输入连接 iptables -A INPUT -j DROP # 允许所有输出连接 iptables -P OUTPUT ACCEPT # 保存规则(不同发行版保存方式不同,以CentOS为例) service iptables save ``` 上述代码首先清空了当前的所有规则,然后允许本地回环接口已建立的连接,接着允许特定IP访问,拒绝其他所有输入连接,并允许所有输出连接,最后保存规则。 ### 使用`firewalld`设置 `firewalld`是CentOS 7及以后版本默认的防火墙管理工具,以下是使用`firewalld`设置仅允许特定IP访问服务器的示例代码: ```bash # 开启firewalld服务 systemctl start firewalld # 查看firewalld状态 systemctl status firewalld # 允许特定IP(例如192.168.1.100)访问服务器的所有端口 firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" accept' # 拒绝其他所有IP访问 firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="0.0.0.0/0" reject' # 重新加载防火墙规则 firewall-cmd --reload ``` 上述代码首先启动并检查`firewalld`服务状态,然后添加允许特定IP访问的规则拒绝其他所有IP访问的规则,最后重新加载防火墙规则使设置生效。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值