diff --git a/docs/examples/use-cases/tls-transmission-usecase/using-Nginx-as-SSL-tunnel-4TCP-UDP-service/Readme.mkd b/docs/examples/use-cases/tls-transmission-usecase/using-Nginx-as-SSL-tunnel-4TCP-UDP-service/Readme.mkd new file mode 100644 index 0000000..eaa3aa0 --- /dev/null +++ b/docs/examples/use-cases/tls-transmission-usecase/using-Nginx-as-SSL-tunnel-4TCP-UDP-service/Readme.mkd @@ -0,0 +1,5 @@ +# Use case document +[nginx-mutual-ssl-proxy-tcp-udp](https://github.com/hardenedlinux/Debian-GNU-Linux-Profiles/blob/master/docs/tls/nginx-mutual-ssl-proxy-tcp-udp.md) + + + diff --git a/docs/examples/use-cases/tls-transmission-usecase/using-Nginx-as-SSL-tunnel-4TCP-UDP-service/iptables_ufw.cfg b/docs/examples/use-cases/tls-transmission-usecase/using-Nginx-as-SSL-tunnel-4TCP-UDP-service/iptables_ufw.cfg new file mode 100644 index 0000000..6da2856 --- /dev/null +++ b/docs/examples/use-cases/tls-transmission-usecase/using-Nginx-as-SSL-tunnel-4TCP-UDP-service/iptables_ufw.cfg @@ -0,0 +1,165 @@ +# Generated by iptables-save v1.6.0 on Sat Mar 30 14:58:29 2019 +*mangle +:PREROUTING ACCEPT [0:0] +:INPUT ACCEPT [0:0] +:FORWARD ACCEPT [0:0] +:OUTPUT ACCEPT [0:0] +:POSTROUTING ACCEPT [0:0] +COMMIT +# Completed on Sat Mar 30 14:58:29 2019 +# Generated by iptables-save v1.6.0 on Sat Mar 30 14:58:29 2019 +*nat +:PREROUTING ACCEPT [0:0] +:INPUT ACCEPT [0:0] +:OUTPUT ACCEPT [0:0] +:POSTROUTING ACCEPT [0:0] +COMMIT +# Completed on Sat Mar 30 14:58:29 2019 +# Generated by iptables-save v1.6.0 on Sat Mar 30 14:58:29 2019 +*filter +:INPUT DROP [0:0] +:FORWARD DROP [0:0] +:OUTPUT ACCEPT [0:0] +:LOGDROP - [0:0] +:ufw-after-forward - [0:0] +:ufw-after-input - [0:0] +:ufw-after-logging-forward - [0:0] +:ufw-after-logging-input - [0:0] +:ufw-after-logging-output - [0:0] +:ufw-after-output - [0:0] +:ufw-before-forward - [0:0] +:ufw-before-input - [0:0] +:ufw-before-logging-forward - [0:0] +:ufw-before-logging-input - [0:0] +:ufw-before-logging-output - [0:0] +:ufw-before-output - [0:0] +:ufw-logging-allow - [0:0] +:ufw-logging-deny - [0:0] +:ufw-not-local - [0:0] +:ufw-reject-forward - [0:0] +:ufw-reject-input - [0:0] +:ufw-reject-output - [0:0] +:ufw-skip-to-policy-forward - [0:0] +:ufw-skip-to-policy-input - [0:0] +:ufw-skip-to-policy-output - [0:0] +:ufw-track-forward - [0:0] +:ufw-track-input - [0:0] +:ufw-track-output - [0:0] +:ufw-user-forward - [0:0] +:ufw-user-input - [0:0] +:ufw-user-limit - [0:0] +:ufw-user-limit-accept - [0:0] +:ufw-user-logging-forward - [0:0] +:ufw-user-logging-input - [0:0] +:ufw-user-logging-output - [0:0] +:ufw-user-output - [0:0] +-A INPUT -i ens33 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --name DEFAULT --mask 255.255.255.255 --rsource -j LOGDROP +-A INPUT -i ens33 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --mask 255.255.255.255 --rsource +-A INPUT -i lo -j ACCEPT +-A INPUT -m state --state ESTABLISHED -j ACCEPT +-A INPUT -p icmp -m state --state RELATED -j ACCEPT +-A INPUT -m limit --limit 3/min -j LOG --log-prefix "SFW2-IN-ILL-TARGET " --log-tcp-options --log-ip-options +-A INPUT -i ens33 -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -m limit --limit 5/min --limit-burst 7 -j LOG --log-prefix "Drop Syn" +-A INPUT -i ens33 -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP +-A INPUT -i ens33 -f -m limit --limit 5/min --limit-burst 7 -j LOG --log-prefix "Fragments Packets" +-A INPUT -i ens33 -f -j DROP +-A INPUT -i ens33 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP +-A INPUT -i ens33 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP +-A INPUT -i ens33 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -m limit --limit 5/min --limit-burst 7 -j LOG --log-prefix "NULL Packets" +-A INPUT -i ens33 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP +-A INPUT -i ens33 -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP +-A INPUT -i ens33 -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -m limit --limit 5/min --limit-burst 7 -j LOG --log-prefix "XMAS Packets" +-A INPUT -i ens33 -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP +-A INPUT -i ens33 -p tcp -m tcp --tcp-flags FIN,ACK FIN -m limit --limit 5/min --limit-burst 7 -j LOG --log-prefix "Fin Packets Scan" +-A INPUT -i ens33 -p tcp -m tcp --tcp-flags FIN,ACK FIN -j DROP +-A INPUT -i ens33 -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,ACK,URG -j DROP +-A INPUT -i ens33 -p tcp -m tcp --dport 137:139 -j REJECT --reject-with icmp-port-unreachable +-A INPUT -i ens33 -p udp -m udp --dport 137:139 -j REJECT --reject-with icmp-port-unreachable +-A INPUT -p icmp -m icmp --icmp-type 4 -j ACCEPT +-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT +-A INPUT -p tcp -m tcp --dport 9243 -j ACCEPT +-A INPUT -p icmp -m icmp --icmp-type 8 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT +-A INPUT -j LOG +-A INPUT -j DROP +-A INPUT -j ufw-before-logging-input +-A INPUT -j ufw-before-input +-A INPUT -j ufw-after-input +-A INPUT -j ufw-after-logging-input +-A INPUT -j ufw-reject-input +-A INPUT -j ufw-track-input +-A FORWARD -m physdev --physdev-is-bridged -j ACCEPT +-A FORWARD -m limit --limit 3/min -j LOG --log-prefix "SFW2-FWD-ILL-ROUTING " --log-tcp-options --log-ip-options +-A FORWARD -j LOG +-A FORWARD -j ufw-before-logging-forward +-A FORWARD -j ufw-before-forward +-A FORWARD -j ufw-after-forward +-A FORWARD -j ufw-after-logging-forward +-A FORWARD -j ufw-reject-forward +-A FORWARD -j ufw-track-forward +-A OUTPUT -o lo -j ACCEPT +-A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT +-A OUTPUT -p icmp -m icmp --icmp-type 0 -m state --state RELATED,ESTABLISHED -j ACCEPT +-A OUTPUT -j ufw-before-logging-output +-A OUTPUT -j ufw-before-output +-A OUTPUT -j ufw-after-output +-A OUTPUT -j ufw-after-logging-output +-A OUTPUT -j ufw-reject-output +-A OUTPUT -j ufw-track-output +-A LOGDROP -j LOG +-A LOGDROP -j DROP +-A ufw-after-input -p udp -m udp --dport 137 -j ufw-skip-to-policy-input +-A ufw-after-input -p udp -m udp --dport 138 -j ufw-skip-to-policy-input +-A ufw-after-input -p tcp -m tcp --dport 139 -j ufw-skip-to-policy-input +-A ufw-after-input -p tcp -m tcp --dport 445 -j ufw-skip-to-policy-input +-A ufw-after-input -p udp -m udp --dport 67 -j ufw-skip-to-policy-input +-A ufw-after-input -p udp -m udp --dport 68 -j ufw-skip-to-policy-input +-A ufw-after-input -m addrtype --dst-type BROADCAST -j ufw-skip-to-policy-input +-A ufw-after-logging-forward -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] " +-A ufw-after-logging-input -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] " +-A ufw-after-logging-output -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW ALLOW] " +-A ufw-before-forward -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT +-A ufw-before-forward -p icmp -m icmp --icmp-type 3 -j ACCEPT +-A ufw-before-forward -p icmp -m icmp --icmp-type 4 -j ACCEPT +-A ufw-before-forward -p icmp -m icmp --icmp-type 11 -j ACCEPT +-A ufw-before-forward -p icmp -m icmp --icmp-type 12 -j ACCEPT +-A ufw-before-forward -p icmp -m icmp --icmp-type 8 -j ACCEPT +-A ufw-before-forward -j ufw-user-forward +-A ufw-before-input -i lo -j ACCEPT +-A ufw-before-input -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT +-A ufw-before-input -m conntrack --ctstate INVALID -j ufw-logging-deny +-A ufw-before-input -m conntrack --ctstate INVALID -j DROP +-A ufw-before-input -p icmp -m icmp --icmp-type 3 -j ACCEPT +-A ufw-before-input -p icmp -m icmp --icmp-type 4 -j ACCEPT +-A ufw-before-input -p icmp -m icmp --icmp-type 11 -j ACCEPT +-A ufw-before-input -p icmp -m icmp --icmp-type 12 -j ACCEPT +-A ufw-before-input -p icmp -m icmp --icmp-type 8 -j ACCEPT +-A ufw-before-input -p udp -m udp --sport 67 --dport 68 -j ACCEPT +-A ufw-before-input -j ufw-not-local +-A ufw-before-input -d 224.0.0.251/32 -p udp -m udp --dport 5353 -j ACCEPT +-A ufw-before-input -d 239.255.255.250/32 -p udp -m udp --dport 1900 -j ACCEPT +-A ufw-before-input -j ufw-user-input +-A ufw-before-logging-forward -m conntrack --ctstate NEW -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW AUDIT] " +-A ufw-before-logging-input -m conntrack --ctstate NEW -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW AUDIT] " +-A ufw-before-logging-output -m conntrack --ctstate NEW -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW AUDIT] " +-A ufw-before-output -o lo -j ACCEPT +-A ufw-before-output -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT +-A ufw-before-output -j ufw-user-output +-A ufw-logging-allow -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW ALLOW] " +-A ufw-logging-deny -m conntrack --ctstate INVALID -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW AUDIT INVALID] " +-A ufw-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] " +-A ufw-not-local -m addrtype --dst-type LOCAL -j RETURN +-A ufw-not-local -m addrtype --dst-type MULTICAST -j RETURN +-A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN +-A ufw-not-local -m limit --limit 3/min --limit-burst 10 -j ufw-logging-deny +-A ufw-not-local -j DROP +-A ufw-reject-input -j REJECT --reject-with icmp-port-unreachable +-A ufw-skip-to-policy-forward -j DROP +-A ufw-skip-to-policy-input -j REJECT --reject-with icmp-port-unreachable +-A ufw-skip-to-policy-output -j ACCEPT +-A ufw-track-output -p tcp -m conntrack --ctstate NEW -j ACCEPT +-A ufw-track-output -p udp -m conntrack --ctstate NEW -j ACCEPT +-A ufw-user-limit -m limit --limit 3/min -j LOG --log-prefix "[UFW LIMIT BLOCK] " +-A ufw-user-limit -j REJECT --reject-with icmp-port-unreachable +-A ufw-user-limit-accept -j ACCEPT +COMMIT +# Completed on Sat Mar 30 14:58:29 2019 diff --git a/docs/examples/use-cases/tls-transmission-usecase/using-Nginx-as-SSL-tunnel-4TCP-UDP-service/set-for-SSL-tunnel-for-TCP-or-UDP.mkd b/docs/examples/use-cases/tls-transmission-usecase/using-Nginx-as-SSL-tunnel-4TCP-UDP-service/set-for-SSL-tunnel-for-TCP-or-UDP.mkd new file mode 100644 index 0000000..eab55e0 --- /dev/null +++ b/docs/examples/use-cases/tls-transmission-usecase/using-Nginx-as-SSL-tunnel-4TCP-UDP-service/set-for-SSL-tunnel-for-TCP-or-UDP.mkd @@ -0,0 +1,10 @@ +## How to audit and apply +``` +sudo iptables-restore iptables_ufw.cfg +sudo bash bin/hardening.sh --audit-all +# This is set special service to exception(6.2 6.3 6.10) +sudo bash bin/hardening.sh --set-hardening-level 5 --allow-service dns,http,cups +sudo bash bin/hardening.sh --audit-all +sudo bash bin/hardening.sh --apply +``` +