Skip to content

Instantly share code, notes, and snippets.

@amartinj
Created October 16, 2012 14:35
Show Gist options
  • Save amartinj/3899643 to your computer and use it in GitHub Desktop.
Save amartinj/3899643 to your computer and use it in GitHub Desktop.
Iptables Base config
PUBLIC_IP=x.y.x.w
PRIVATE_NETWORK=10.0.0.0
PRIVATE_NETWORK_CIDR=24
HTTP_SERVER=10.0.0.x
#NAT
*nat
:PREROUTING ACCEPT [110152:6987593]
:POSTROUTING ACCEPT [20402:1235860]
:OUTPUT ACCEPT [19818:1194828]
-A PREROUTING -d $PUBLIC_IP/32 -p tcp -m tcp --dport 443 -j DNAT --to-destination $HTTP_SERVER:443
-A PREROUTING -d $PUBLIC_IP/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination $HTTP_SERVER:80
-A POSTROUTING -s $PRIVATE_NETWORK/$PRIVATE_NETWORK_CIDR -o vmbr0 -j MASQUERADE
COMMIT
#MANGLE
*mangle
:PREROUTING ACCEPT [2464296:1020585805]
:INPUT ACCEPT [2264587:404972608]
:FORWARD ACCEPT [199687:615611817]
:OUTPUT ACCEPT [1768373:381841695]
:POSTROUTING ACCEPT [1968060:997453512]
COMMIT
#FILTER
*filter
:INPUT ACCEPT [123631:7638643]
:FORWARD ACCEPT [199675:615610881]
:OUTPUT ACCEPT [19821:1195088]
#VPN SERVER
-A INPUT -d $PUBLIC_IP/32 -p udp -m udp --dport 1194 -j ACCEPT
#HTTP SERVER
-A INPUT -d $PUBLIC_IP/32 -p tcp -m tcp --dport 80 -j ACCEPT
#HTTPS SERVER
-A INPUT -d $PUBLIC_IP/32 -p tcp -m tcp --dport 443 -j ACCEPT
#SSH SERVER
-A INPUT -d $PUBLIC_IP/32 -p tcp -m tcp --dport 22 -j ACCEPT
#ALLOW OUTOGING CONNECTIONS
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#DEFAULT RULE: DROP
-A INPUT -d $PUBLIC_IP/32 -j DROP
COMMIT
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment