iptables简单理解

我的是2.4httpd的访问日志路径是/usr/local/httpd/logs/access_log。里面有很多别人访问过来的IP。由于我不是专业的运维。只能做点简单的。当你的cat access_log看见很多。同一个时间点来访问ip。10:59:17 。这种类似与DDOS攻击。可以考虑直接吧他的IP封了。如下:
58.61.66.99 - - [15/Sep/2016:10:59:17 +0800] "GET / HTTP/1.1" 200 45
58.61.66.99 - - [15/Sep/2016:10:59:17 +0800] "GET / HTTP/1.1" 200 45
58.61.66.99 - - [15/Sep/2016:10:59:17 +0800] "GET / HTTP/1.1" 200 45
58.61.66.99 - - [15/Sep/2016:10:59:17 +0800] "GET / HTTP/1.1" 200 45
58.61.66.99 - - [15/Sep/2016:10:59:17 +0800] "GET / HTTP/1.1" 200 45
58.61.66.99 - - [15/Sep/2016:10:59:17 +0800] "GET / HTTP/1.1" 200 45
58.61.66.99 - - [15/Sep/2016:10:59:17 +0800] "GET / HTTP/1.1" 200 45
58.61.66.99 - - [15/Sep/2016:10:59:17 +0800] "GET / HTTP/1.1" 200 45
58.61.66.99 - - [15/Sep/2016:10:59:17 +0800] "GET / HTTP/1.1" 200 45
58.61.66.99 - - [15/Sep/2016:10:59:17 +0800] "GET / HTTP/1.1" 200 45

这里要说到iptables。

service iptables status 首先查看iptables有没有开启,
filter表、nat表、mangle表和raw表 分别用于实现包过滤,网络地址转换、包重构(修改)和数据跟踪处理。

service iptables status //自己试试看如果是iptables: Firewall is not running. 去开启吧。

service iptables start //开启

iptables的配置文件/etc/sysconfig/iptables不存在怎么办
首先要看一下iptables是否安装了,使用service iptables status或yum info iptables看一下当前状态
如果已安装,运行以下命令:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
service iptables save //保存
这样就会提示
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
这样就会有iptables的初始配置文件了

chkconfig --level 35 iptables on 设置35开机启动

service iptables start

cat /etc/sysconfig/iptables //看一下。里面的规则

iptables -F //清空所有吧,本来也没有什么东西的
service iptables save //保存规则

解释一下一些东西。
input: 外面的数据到我们服务器
output: 服务器给我们的响应,就是服务器发数据发外面

写一条禁止80端口的,httpd默认是80端口,意思80端口就不给访问了。
iptables -t filter -A INPUT -p tcp --dport 80 -j DROP

-t filter //就是filter表,实现包过滤
-A //就是追加新规则 -I 插入,插到前面 -D 删除
-p //使用什么传输协议TCP/UDP/ICMP

--dport //目标端口

-j //ACCEPT:接受 , DROP:直接丢弃 ,REJECT:明示拒绝

这样,80端口就访问不了。但是可以访问其他的。

再写一条允许80端口的
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT

iptables-save > /etc/sysconfig/iptables //可以这样来保存规则

cat /etc/sysconfig/iptables //查看规则

-A INPUT -p tcp -m tcp --dport 80 -j DROP
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

会出现两条规则,有点矛盾一个是DROP 一个是ACCEPT。其实是前面的允许了,后面的就没用了。

或者这样干,把这条插到前面,这样前面的允许了,后面的就没用了。
iptables -t filter -I INPUT -p tcp --dport 80 -j ACCEPT
或者是这样干。把DROP 删除。
iptables -t filter -D INPUT -p tcp --dport 80 -j DROP
//跟着写到这里,差不多可以知道怎么用了。
//就是当不给ip是58.61.66.99的访问80端口,这样干
iptables -I INPUT -p tcp -s 58.61.66.99 --dport 80 -j DROP

//就是要主要iptables的前后关系,前面的规则覆盖后面的,写再多也没用。

//做个好玩的事情就是当讨厌的IP(58.61.66.99)进来的时候,让他跳到另外的端口,写上 YOU ARE SB
//结合多站点。就是给他显示8888端口的页面,写着 you are sb

PREROUTING是目的地址转换—进站(-j DNAT) POSTROUTING是源地址转换—出站 (-j SNAT)

iptables -t nat -A PREROUTING -p tcp -s 58.61.66.99 --dport 80 -j DNAT --to-destination :8888

你可能感兴趣的:(iptables简单理解)