看了下secure日志和access的日志,一大半都是暴力破解和扫描,虽密码极其复杂,不过总被这么消耗服务器资源也不是事,索性还是把ssh端口和ftp改了然后写个iptables稍微保护一下好了。还有个东西叫Fail2Ban,可以自动检测暴力破解,密码错误超过一定次数就把对端ban掉,不过我实在是不想再开一个服务了,改端口应该问题不大...
只是最基本的配置,防御flood的懒得写了,真有人跟我有仇要DDOS我的话那就挂了算了...
复制代码代码如下:
#配置,禁止进,允许出,允许回环网卡
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
#允许ping,不允许删了就行
iptables -A INPUT -p icmp -j ACCEPT
#允许ssh
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
#允许ftp
iptables -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
#允许ftp被动接口范围,在ftp配置文件里可以设置
iptables -A INPUT -p tcp --dport 20000:30000 -j ACCEPT
#学习felix,把smtp设成本地
iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT -s 127.0.0.1
iptables -A INPUT -p tcp -m tcp --dport 25 -j REJECT
#允许DNS
iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
#允许http和https
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
#允许状态检测,懒得解释
iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p all -m state --state INVALID,NEW -j DROP
#保存配置
iptables-save > /etc/iptables
我是把上面那段和下面这段都写到sh里了,start{}和stop{}。需要修改规则的时候直接清空了重建比较好,因为规则有顺序问题。
复制代码代码如下:
#清空配置
iptables -F
iptables -X
iptables -Z
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables防火墙开机自动加载实现
iptables命令输完之后会立刻生效,但重启之后配置就会消失,Debian提供了一个iptables-save程序快速保存配置,但还需要我们做一些工作才能让iptables配置实现开机自启动,自加载。
1、将iptables配置保存到/etc/iptables,这个文件名可以自己定义,与下面的配置一致即可
复制代码代码如下:
iptables-save > /etc/iptables
2、创建自启动配置文件,并授于可执行权限
复制代码代码如下:
touch /etc/network/if-pre-up.d/iptables
chmod +x /etc/network/if-pre-up.d/iptables
3、编辑该自启动配置文件,内容为启动网络时恢复iptables配置
复制代码代码如下:
vim /etc/network/if-pre-up.d/iptables
文件内容如下:
复制代码代码如下:
#!/bin/sh
/sbin/iptables-restore < /etc/iptables
4、:wq保存配置文件并退出即可,以后在修改完iptables配置之后只要再次执行下面的命令保存即可
复制代码代码如下:
iptables-save > /etc/iptables