1、详述iptables五链
防火墙
硬件防火墙
软件防火墙
iptables服务是firewalld
iptables -Lnv查看规则
本机防火墙和网路防火墙两种
5个表,全大写
PREROUTING
INPUT
FORWARD
OUTPUT
POSTROUTING
4个其他功能
raw:关闭连接追踪
mangle:修改其他信息,打标
nat:网络地址转换
filter:过滤
优先级从高到低
4个其他功能表的位置
raw:PREROUTING OUTPUT
mangle:全
nat:PREROUTING INPUT OUTPUT POSTROUTING
filter:INPUT FORWARD OUTPUT
3个报文流向
1.PREROUTING→INPUT
2.PREROUTING→FORWARD→OUTROUTING
3.OUTPUT→OUTROUTING
2、举例实现iptables多端口匹配、连接追踪、字符串匹配、时间匹配、并发连接限制、速率匹配、报文状态匹配等应用
显式扩展规则(-m模块)
multiport
离散端口最多15个,逗号,连续端口冒号
-m multiport --dports --sports
可以设置能访问外网
[root@web1 ~]# iptables -R INPUT 7 -p tcp -m multiport --sports 80,443 -m state --state RELATED,ESTABLISHED -j ACCEPT
[root@web1 ~]# iptables -I INPUT 8 -p tcp -m multiport --sports 445,139 -m state --state RELATED,ESTABLISHED -j ACCEPT
[root@web1 ~]# iptables -I INPUT 9 -p udp -m multiport --sports 137,138 -m state --state RELATED,ESTABLISHED -j ACCEPT
[root@web1 ~]# iptables -I OUTPUT 5 -p tcp -m multiport --dports 80,443 -j ACCEPT
[root@web1 ~]# iptables -I INPUT -d 192.168.1.11 -p tcp -m multiport --dports 80,443 -j ACCEPT
[root@web1 ~]# iptables -I OUTPUT 7 -d 192.168.1.3 -p tcp -m multiport --dports 445,139 -j ACCEPT
[root@web1 ~]# iptables -I OUTPUT 8 -d 192.168.1.3 -p udp -m multiport --dports 137,138 -j ACCEPT
iprange
连续ip
-m iprange --dst-range --src-range
time
-m time --timestart --timstop --weekdays --monthdays --kerneltz
string
-m string --algo kmp --string “gay”
connlimit
防止DDOS,限制单客户端最大并发
-m connlimit --connlimit-upto(above)
[root@web1 ~]# iptables -R INPUT 1 -d 192.168.1.11 -p tcp -m multiport --dports 80,443 -m connlimit --connlimit-upto 100 -j ACCEPT
limit
限速,防止fast ping攻击 syn-flood攻击
-m limit --limit-burst(令牌桶) --limit (包速率)
[root@web1 ~]# iptables -R INPUT 2 -p icmp --icmp-type 8 -m limit --limit 120/m --limit-burst 30 -j ACCEPT
[root@web1 ~]# iptables -I INPUT 3 -syn -m limit --limit 5000/s --limit-burst 200 -j ACCEPT
state
连接追踪:conntrack
内核:
/proc/net/nf_conntrack
/proc/sys/net/nf_conntrack_max 最大追踪连接数,默认65535
/proc/sys/net/nf_conntrack_timeout 超时时间
状态
NEW 新连接
ESTABLISHED 已建立连接
UNTRACKED 未追踪连接
RELATED 与已建立连接有关系的连接
INVALID 不合法的连接
入站:先允许ESTABLISHED,再允许NEW
出站:只允许ESTABLISHED
ftp: 内核模块装载modprobe nf_conntrack_ftp ,入站允许ESTABLIESHED和RELATED
动作
ACCEPT DROP REJECT
REJECT默认–reject-with icmp-port-unreachable
LOG 默认/var/log/messags
–log-prefix “标识”
-j 自定义链
-N 新建自定义链,在INPUT等链上 -j自定义链,-X删除自定义链
保存
centos6 service iptables save
centos7 iptables-save > /etc/sysconfig/iptables 保存
重启后恢复 iptables-restore < /etc/sysconfig/iptables
dns服务器
iptables -A INPUT -s 192.168.1.3 -d 192.168.1.10 -p tcp --dport 37777 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i enp0s3 -j REJECT
iptables -P FORWARD DROP
iptables -A OUTPUT -s 192.168.1.10 -d 192.168.1.3 -p tcp --sport 37777 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o enp0s3 -j REJECT
iptables -I INPUT -s 192.168.1.0/24 -d 192.168.1.10 -p tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I OUTPUT -s 192.168.1.10 -d 192.168.1.0/24 -p tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -I INPUT -s 192.168.1.0/24 -d 192.168.1.10 -p udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I OUTPUT -s 192.168.1.10 -d 192.168.1.0/24 -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -I OUTPUT 4 -s 192.168.1.10 -p udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 4 -d 192.168.1.10 -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -I OUTPUT 5 -s 192.168.1.10 -p tcp -m multiport --dports 80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 5 -d 192.168.1.10 -p tcp -m multiport --sports 80,443 -m state --state ESTABLISHED -j ACCEPT
iptables -I INPUT 6 -p icmp --icmp-type 8 -m limit --limit 120/m --limit-burst 30 -j ACCEPT
iptables -I INPUT 7 -p icmp --icmp-type 0 -j ACCEPT
iptables -I OUTPUT 6 -p icmp --icmp-type 0 -j ACCEPT
iptables -I OUTPUT 7 -p icmp --icmp-type 8 -j ACCEPT
iptables -I OUTPUT 5 -s 192.168.1.10 -p tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 5 -d 192.168.1.10 -p tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT
web服务器
iptables -A INPUT -s 192.168.1.3 -d 192.168.1.11 -p tcp --dport 37777 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i enp0s3 -j REJECT
iptables -P FORWARD DROP
iptables -A OUTPUT -s 192.168.1.11 -d 192.168.1.3 -p tcp --sport 37777 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o enp0s3 -j REJECT
iptables -I INPUT -d 192.168.1.11 -p tcp -m multiport --dports 80,443 -m state --state NEW,ESTABLISHED -m connlimit --connlimit-upto 100 -j ACCEPT
iptables -I OUTPUT -s 192.168.1.11 -p tcp -m multiport --sports 80,443 -m state --state ESTABLISHED -j ACCEPT
iptables -I OUTPUT 3 -s 192.168.1.11 -p udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 3 -d 192.168.1.11 -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -I OUTPUT 4 -s 192.168.1.11 -p tcp -m multiport --dports 80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 4 -d 192.168.1.11 -p tcp -m multiport --sports 80,443 -m state --state ESTABLISHED -j ACCEPT
iptables -I INPUT 5 -p icmp --icmp-type 8 -m limit --limit 120/m --limit-burst 30 -j ACCEPT
iptables -I INPUT 6 -p icmp --icmp-type 0 -j ACCEPT
iptables -I OUTPUT 5 -p icmp --icmp-type 0 -j ACCEPT
iptables -I OUTPUT 6 -p icmp --icmp-type 8 -j ACCEPT
iptables -I INPUT 5 -s 192.168.1.3 -d 192.168.1.11 -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I OUTPUT 5 -s 192.168.1.11 -d 192.168.1.3 -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT
iptables -I OUTPUT 4 -s 192.168.1.11 -p tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 4 -d 192.168.1.11 -p tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT
3、举例实现iptables之SNAT源地址修改及DNAT目标地址修改和PNAT端口修改等应用
NAT
网络地址转换
隐藏主机,解决网络地址短缺问题
源地址转换SNAT POSTROUTING 隐藏客户端,内网机器共享上网
目标地址转换 DNAT PREROUTING 隐藏服务端 MASQUERADE 动态ip,端口映射
PNAT 端口地址转换
REDIRECT 端口映射
源地址转换
网关开转发 net.ipv4.ip_forward = 1
内网修改为网关
SNAT规则
[root@center ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 192.168.1.9
目标地址转换
[root@center ~]# iptables -t nat -A PREROUTING -d 192.168.1.9 -p tcp --dport 443 -j DNAT --to-destination 192.168.10.11:443
[root@center ~]# iptables -t nat -A PREROUTING -d 192.168.1.9 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.11:80
本机端口映射
REDIRECT
-j REDIRECT --to-ports 8080
4、简述sudo安全切换工具,及详细讲解visudo
sudo
使用其他用户的权限来执行命令
配置文件/etc/sudoers visudo命令检查语法
who where=(whom) commands
users hosts=(runas) commands
默认:root ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
wheel必须是基本组
sudo -k 删除已经保存的密码
sudo -l 查看命令列表
User_Alias:用户别名大写
Cmnd_Alias:命令别名大写
NOPASSWD: 不需要输入密码
PASSWD: 需要输入密码
例子
visudo加入
xlc ALL=(ALL) NOPASSWD: /usr/bin/rsync