我想简单地阻止来自美国以外任何地方的所有 ssh 访问。这是我的整个iptables,我已经关注了http://www.howtoforge.com/xtables-addons-on-centos-6-and-iptables-geoip-filtering
# Generated by iptables-save v1.4.7 on Wed Jul 3 02:30:42 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1749:280570]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j DROP
-A INPUT -m geoip --src-cc US --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3000:3050 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Wed Jul 3 02:30:42 2013
我已经这样做了-A INPUT -m geoip --src-cc US --dport 22 -j ACCEPT
,目标是只接受来自管理员工作所在的美国的 ssh。截至目前我收到一个错误。
iptables: Applying firewall rules: iptables-restore v1.4.7: Couldn't load match `geoip':/lib64/xtables/libipt_geoip.so:
cannot open shared object file: No such file or directory Error occurred at line: 10
更新
我已经搜索过该文件,但找不到任何内容。浏览了一下操作方法,发现 Xtables-addons 版本是 1.37,所以我将其更新为 2.5,但没有任何变化。我查看了一下/lib64/xtables/
,发现有大量文件,但没有 geoip 文件。所以我认为这就是我需要开始纠正 Xtables-addon 安装的地方。
答案1
今天遇到这个问题,终于解决了。是因为selinux的原因,所以关闭selinux,系统启动后再打开即可。这对我有用,你可以尝试一下:)
将 selinux 设置为宽松
sudo vim /etc/selinux/config
SELINUX=宽容
通过 rc.local 设置 selinux 强制执行
vim /etc/rc.d/rc.local
设定力1