iptables和sudo
阿新 • • 發佈:2018-08-13
nat端口 簡述 ddos 服務器 刪除 nds who 動態ip tina
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
iptables和sudo