iptables 01 基本配置

1.查看规则。

iptables -L -n -v --line-numbers

-L 列出规则。

-n 以IP地址表示,而不是主机名。

-v 查看详细信息。

--line-numbers 查看规则序号。

2.清空重置。

(1)清空默认规则e

iptables -F

(2)清空自定义规则。

iptables -X

(3)重置计数器。

iptables -Z

3.设置默认DROP。

(1)默认禁止接收来自任何主机的数据。

iptables -P INPUT DROP

(2)默认禁止发送数据到任何主机。

iptables -P OUTPUT DROP

(3)默认禁止转发数据到任何主机。

iptables -P FORWARD DROP

4.保护sshd。

(1)目标。

(a)开放sshd的8801端口。

(b)只允许连接到IP:11.1.1.11上的sshd服务。

(c)只允许通过eth0连接。

(d)只有11.1.1.129能够连接,其它主机连接不上。

源IP:11.1.1.129

目的IP: 11.1.1.11

目的端口:8801

(2)允许接收数据。

sudo iptables -A INPUT -i eth0 -p tcp -s 11.1.1.129 -d 11.1.1.11 --dport 8801 -j ACCEPT

(3)允许发送数据。必须是在已经建立的连接上。

sudo iptables -A OUTPUT -o eth0 -p tcp -s 11.1.1.11 --sport 8801 -d 11.1.1.129 -m state --state ESTABLISHED,RELATED -j ACCEPT

至此,在默认拒绝全部接收和发送的数据的前提下,使用上述2条规则,保护sshd的目标达成。

(4)在修改了sshd的默认端口之后,需要修改selinux安全配置。

semanage  port -l |grep ssh 查看ssh的端口配置。

semanage port -a -t ssh_port_t  -p tcp 8801  增加ssh的新端口8801。

 类似的思路,可以配置http和dns客户端,以及ping等网络通信的控制。

5.保存和恢复iptables配置。

(1)保存iptables配置。

iptables-save > /etc/sysconfig/iptables

(2)恢复iptables配置。

iptables-restore < /etc/sysconfig/iptables

(3)修改/etc/sysconfig/iptables-config配置文件。

IPTABLES_SAVE_ON_STOP=yes

IPTABLES_SAVE_ON_RESTART=yes

6.最终脚本。

功能:

(1)默认禁止所有通信。

(2)对localhost以及本地eth0,eth1两个网卡之间的本地通信开放。

(3)对共享宽带所在的局域网通信全部关闭。

(4)对外网开放http(80)和https(443),ping(icmp)以及DNS查询(53)。

(5)对本地主机11.1.1.129开放ssh(8801)端口。

 1 [u@11 ~]$ cat /etc/iptables-rules
 2 #!/bin/bash  3  4 ETH_WAN=eth1  5 ETH_LAN=eth0  6 IP_WAN=11.2.1.11  7 IP_LAN=11.1.1.11  8 IP_CONSOLE=11.1.1.129  9 IP_INSIDE=15.1.1.1/8 10 11 THIS_SERVER=${IP_WAN} 12 SSHD_SERVER=${IP_LAN} 13 SSHD_PORT=8801 14 SSH_HOST=${IP_CONSOLE} 15 DNS_SERVER=8.8.8.8 16 DNS_PORT=53 17 HTTP_PORT=80,443 18 19 20 21 22 iptables -F 23 iptables -X 24 iptables -Z 25 iptables -P INPUT DROP 26 iptables -P OUTPUT DROP 27 iptables -P FORWARD DROP 28 29 #localhost 30 iptables -A INPUT -i lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT 31 iptables -A OUTPUT -o lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT 32 iptables -A INPUT -s ${IP_WAN} -d ${IP_WAN} -j ACCEPT 33 iptables -A OUTPUT -s ${IP_WAN} -d ${IP_WAN} -j ACCEPT 34 iptables -A INPUT -s ${IP_LAN} -d ${IP_LAN} -j ACCEPT 35 iptables -A OUTPUT -s ${IP_LAN} -d ${IP_LAN} -j ACCEPT 36 37 #inside subnet. 38 iptables -A INPUT -s ${IP_INSIDE} -j REJECT 39 iptables -A OUTPUT -d ${IP_INSIDE} -j REJECT 40 41 #sshd 42 iptables -A INPUT -i ${ETH_LAN} -p tcp -s ${SSH_HOST} -d ${SSHD_SERVER} --dport ${SSHD_PORT} -j ACCEPT 43 iptables -A OUTPUT -o ${ETH_LAN} -p tcp -s ${SSHD_SERVER} --sport ${SSHD_PORT} -d ${SSH_HOST} -m state --state RELATED,ESTABLISHED -j ACCEPT 44 45 #ping xxx 46 iptables -A OUTPUT -o ${ETH_WAN} -p icmp -s ${THIS_SERVER} -j ACCEPT 47 iptables -A INPUT -i ${ETH_WAN} -p icmp -d ${THIS_SERVER} -j ACCEPT 48 49 #dns lookup 50 iptables -A OUTPUT -o ${ETH_WAN} -p udp -s ${THIS_SERVER} -d ${DNS_SERVER} --dport ${DNS_PORT} -j ACCEPT 51 iptables -A INPUT -i ${ETH_WAN} -p udp -s ${DNS_SERVER} --sport ${DNS_PORT} -d ${THIS_SERVER} -j ACCEPT 52 53 iptables -A OUTPUT -o ${ETH_WAN} -p tcp -s ${THIS_SERVER} -d ${DNS_SERVER} --dport ${DNS_PORT} -j ACCEPT 54 iptables -A INPUT -i ${ETH_WAN} -p tcp -s ${DNS_SERVER} --sport ${DNS_PORT} -d ${THIS_SERVER} -m state --state RELATED,ESTABLISHED -j ACCEPT 55 56 #http browser 57 iptables -A OUTPUT -o ${ETH_WAN} -p tcp --match multiport --dports ${HTTP_PORT} -j ACCEPT 58 iptables -A INPUT -i ${ETH_WAN} -p tcp --match multiport --sports ${HTTP_PORT} -m state --state RELATED,ESTABLISHED -j ACCEPT 59 60 61 iptables-save > /etc/sysconfig/iptables 62 iptables -L -n -v --line-numbers 63 

重启系统。

猜你喜欢

转载自www.cnblogs.com/coe2coe/p/8987056.html