debian iptables配置步驟
一、iptables應具有的功能
1、滿足上述第二條保證資料庫安全的需求
2、對拒絕掉的資料包記錄到log
3、機器重新開機後iptables 自動激活
二、配置步驟
1、增加規則
在mysql主從裝置上執行以下紅色指令
iptables -A INPUT -p tcp -s 192.168.0.196/32 -d 192.168.0.199 --dport 3300 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.0.120/32 -d 192.168.0.199 --dport 3300 -j ACCEPT
iptables -A INPUT -p tcp -d 192.168.0.199 --dport 3300 -j LOG --log-prefix "iptables denied: " --log-level 4
iptables -A INPUT -p tcp -d 192.168.0.199 --dport 3300 -j REJECT
以下為相關指令的解釋:
#允許特定主機連接配接mysql
#iptables -A INPUT -p tcp -s 192.168.0.196/32 -d 192.168.0.199--dport 3300 -j ACCEPT
#iptables -A INPUT -p tcp -s 192.168.0.120/32 -d 192.168.0.199--dport 3300 -j ACCEPT
#記錄拒絕的連接配接到log中,log-level 4 is warning
#iptables -A INPUT -p tcp -d 192.168.0.199 --dport 3300 -j LOG --log-prefix "iptables denied: " --log-level 4
#拒絕資料包,發起方提示連接配接失敗
#iptables -A INPUT -p tcp -d 192.168.0.199 --dport 3300 -j REJECT
###以下幾條規則便于今後參考,在配置中暫不使用。
#drop掉資料包,發起方無反應
#iptables -A INPUT -p tcp -d 192.168.206.121 --dport 3300 -j DROP
#檢視iptables的規則比對情況
#iptables -L -v
#檢視日志
#tail -f /var/log/messages
#删除第幾條規則
#iptables -D INPUT 1
2、儲存規則到配置檔案
# iptables-save >/etc/iptables.mysql.rules
3、儲存規則到開機自啟動iptables的配置檔案
# iptables-save >/etc/iptables.mysql.up.rules
4、建立iptables的開機自啟動檔案
# vi /etc/network/if-pre-up.d/iptables
#!/bin/bash
/sbin/iptables-restore < /etc/iptables.mysql.up.rules
5、給iptables的開機自啟動檔案增加執行權限
# chmod +x /etc/network/if-pre-up.d/iptables
6、将deny的資料包寫入到/var/log/iptables.log
# vi /etc/rsyslog.conf
##for log denied ip packets to /var/log/iptables.log,not to default /var/log/messages.
kern.warning /var/log/iptables.log
重新開機日志程序
# /etc/init.d/rsyslog restart
檢視log是否生效
#tail -f /var/log/iptables.log
7、配置完成,進行相應測試。
分别在不同的機器上測試
#mysql -uusername -p123456 -h192.168.0.199 -P3300
檢查比對資料包的個數
# iptables -L -v -n
Chain INPUT (policy ACCEPT 853K packets, 70M bytes)
pkts bytes target prot opt in out source destination
6 422 ACCEPT tcp -- * * 192.168.0.196 192.168.0.199 tcp dpt:3300
453 28893 ACCEPT tcp -- * * 192.168.0.120 192.168.0.199 tcp dpt:3300
1 60 LOG tcp -- * * 0.0.0.0/0 192.168.0.199 tcp dpt:3300 LOG flags 0 level 4 prefix `iptables denied: '
1 60 REJECT tcp -- * * 0.0.0.0/0 192.168.0.199 tcp dpt:3300 reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 748K packets, 481M bytes)
pkts bytes target prot opt in out source destination
檢查iptables拒絕資料包的log
# tail -f /var/log/iptables.log
Nov 18 14:08:51 db199 kernel: [199125.557827] iptables denied: IN=eth0 OUT= MAC=00:18:8b:e5:87:af:84:2b:2b:60:ab:d8:08:00 SRC=192.168.0.234 DST=192.168.0.199 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=15617 DF PROTO=TCP SPT=43469 DPT=3300 WINDOW=5840 RES=0x00 SYN URGP=0
Nov 18 14:25:21 db199 kernel: [200332.168071] iptables denied: IN=eth0 OUT= MAC=00:18:8b:e5:87:af:00:1a:30:3c:24:00:08:00 SRC=124.128.18.161 DST=192.168.0.199 LEN=60 TOS=0x00 PREC=0x00 TTL=56 ID=43242 DF PROTO=TCP SPT=15472 DPT=3300 WINDOW=5840 RES=0x00 SYN URGP=0