CentOS设置防火墙只允许内网用户访问服务器

来源:互联网 发布:memcmp函数源码 编辑:程序博客网 时间:2024/05/10 03:20

用户环境是一个局域网,adsl连接internet,有10多台pc,1台服务器.

这台服务器安装的是CentOS5.8,主要运行一个特殊软件,工程人员在各自pc上用XManager登录服务器使用该软件,另外开放ftp功能以便传递工程文件.

现在用户的要求是服务器需要与internet隔离,以保护数据,但不能影响其他pc正常上网,也不能影响其他pc访问该服务器


思路: 用centos自带的iptables解决,对INPUT,OUTPUT链路,只允许内网网段的包通过.

于是有下面的iptables:

*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]:RH-Firewall-1-INPUT - [0:0]:RH-Firewall-1-OUTPUT - [0:0]-A INPUT -s 192.168.1.0/24 -j RH-Firewall-1-INPUT -A INPUT -j REJECT-A RH-Firewall-1-INPUT -i lo -j ACCEPT -A OUTPUT -d 192.168.1.0/24 -j RH-Firewall-1-OUTPUT -A OUTPUT -j REJECT-A RH-Firewall-1-OUTPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -j ACCEPT -A RH-Firewall-1-OUTPUT -j ACCEPT COMMIT
重启防火墙后, 发现访问服务器时,登录过程非常缓慢,但登录上后,访问速度还是很快的, 不知问题在哪里,到Linux/CentOS群里吼了一声, 有朋友热心指出应该使用状态匹配扩展,

于是加上-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT, 问题解决.

但在系统重启时候,又遇到问题,系统卡在防火墙启动位置了,原来linux启动时候,有很多自检,这时会有很多本机网络通信,而本机地址是127.0.0.1, 不符合192.168.1.0/24范围条件,遭到拒绝,导致系统卡住.应该加上-A INPUT -s 127.0.0.1 -j ACCEPT-A OUTPUT -d 127.0.0.1 -j ACCEPT,

这样,一个符合用户要求的防火墙就设置好了,下面是完整的iptables

# Firewall configuration written by system-config-securitylevel# Manual customization of this file is not recommended.*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]:RH-Firewall-1-INPUT - [0:0]:RH-Firewall-1-OUTPUT - [0:0]-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT-A INPUT -s 192.168.1.0/24 -j RH-Firewall-1-INPUT-A INPUT -s 127.0.0.1 -j ACCEPT -A INPUT -j REJECT-A RH-Firewall-1-INPUT -i lo -j ACCEPT -A OUTPUT -d 192.168.1.0/24 -j RH-Firewall-1-OUTPUT-A OUTPUT -d 127.0.0.1 -j ACCEPT -A OUTPUT -j REJECT-A RH-Firewall-1-OUTPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -j ACCEPT -A RH-Firewall-1-OUTPUT -j ACCEPT COMMIT

感谢"风雪","KENNETH"的热心帮助



原创粉丝点击