<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://aznot.com/index.php?action=history&amp;feed=atom&amp;title=Linux%2Fiptables</id>
	<title>Linux/iptables - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://aznot.com/index.php?action=history&amp;feed=atom&amp;title=Linux%2Fiptables"/>
	<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Linux/iptables&amp;action=history"/>
	<updated>2026-05-06T11:06:36Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://aznot.com/index.php?title=Linux/iptables&amp;diff=5359&amp;oldid=prev</id>
		<title>Kenneth: /* notes */</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Linux/iptables&amp;diff=5359&amp;oldid=prev"/>
		<updated>2020-03-13T20:40:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;notes&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Clear IP Tables ==&lt;br /&gt;
&lt;br /&gt;
reset_iptables.sh:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
IPTABLES=/sbin/iptables&lt;br /&gt;
&lt;br /&gt;
if [ ! -x $IPTABLES ]; then&lt;br /&gt;
    die &amp;quot;iptables: can&amp;#039;t execute $IPTABLES&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
$IPTABLES -P INPUT   ACCEPT&lt;br /&gt;
$IPTABLES -P OUTPUT  ACCEPT&lt;br /&gt;
$IPTABLES -P FORWARD ACCEPT&lt;br /&gt;
$IPTABLES -F&lt;br /&gt;
$IPTABLES -X&lt;br /&gt;
&lt;br /&gt;
for table in filter nat mangle; do&lt;br /&gt;
    $IPTABLES -t $table -F&lt;br /&gt;
    $IPTABLES -t $table -X&lt;br /&gt;
    $IPTABLES -t $table -Z&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Source: http://pikt.org/pikt/samples/reset_iptables.html&lt;br /&gt;
* (with the modification of DROP to ACCEPT and iptables path)&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
[http://linux-ip.net/html/nat-dnat.html Destination NAT with netfilter (DNAT)]&lt;br /&gt;
&lt;br /&gt;
Using DNAT for all protocols (and ports) on one IP&lt;br /&gt;
 iptables -t nat -A PREROUTING -d 10.10.20.99 -j DNAT --to-destination 10.10.14.2&lt;br /&gt;
&lt;br /&gt;
Using DNAT for a single port&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp -d 10.10.20.99 --dport 80 -j DNAT --to-destination 10.10.14.2&lt;br /&gt;
&lt;br /&gt;
Log event:&lt;br /&gt;
 iptables -A INPUT ... -j LOG --log-level 4&lt;br /&gt;
 iptables -A INPUT ... -j LOG --log-level 4 --log-prefix &amp;quot;** BLOCKED **&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Simulating full NAT with SNAT and DNAT: [http://lists.debian.org/debian-user/2002/09/msg00313.html] [http://www.webmasterworld.com/forum40/940.htm]&lt;br /&gt;
 iptables -t nat -A PREROUTING -d 205.254.211.17 -j DNAT --to-destination 192.168.100.17&lt;br /&gt;
 iptables -t nat -A POSTROUTING -s 192.168.100.17 -j SNAT --to-destination 205.254.211.17&lt;br /&gt;
&lt;br /&gt;
Block DHCP: [http://openvpn.net/archive/openvpn-users/2005-03/msg00487.html]&lt;br /&gt;
 # block UDP ports 67 and 68&lt;br /&gt;
 -A RH-Firewall-1-INPUT -p udp --dport 67:68 -j DROP&lt;br /&gt;
&lt;br /&gt;
Ports:&lt;br /&gt;
  22 TCP - SSH&lt;br /&gt;
  80 TCP - HTTP&lt;br /&gt;
 443 TCP - HTTPS&lt;br /&gt;
&lt;br /&gt;
Port forwarding: [http://www.hackorama.com/network/portfwd.shtml] [http://www.debian-administration.org/article/Port_forwarding_for_iptables_DMZ]&lt;br /&gt;
 /sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 -d xxx.xxx.xxx.xxx&lt;br /&gt;
 		 --dport 8888 -j DNAT --to 192.168.0.2:80&lt;br /&gt;
 /sbin/iptables -A FORWARD -p tcp -i eth0 -d 192.168.0.2 --dport 80 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
 iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.1.50:80&lt;br /&gt;
 iptables -A INPUT -p tcp -m state --state NEW --dport 80 -i eth1 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
== ip_conntrack ==&lt;br /&gt;
&lt;br /&gt;
[http://rackerhacker.com/2008/01/24/ip_conntrack-table-full-dropping-packet/ ip_conntrack: table full, dropping packet | Racker Hacker]&lt;br /&gt;
&lt;br /&gt;
dmesg:&lt;br /&gt;
 ip_conntrack: table full, dropping packet&lt;br /&gt;
&lt;br /&gt;
Generally, the ip_conntrack_max is set to the total MB of RAM installed multiplied by 16. However, this server had 4GB of RAM, but ip_conntrack_max was set to 65536.  I’m not sure if this is a known Red Hat issue, or if it’s just set to a standard value out of the box.&lt;br /&gt;
 # cat /proc/sys/net/ipv4/ip_conntrack_max&lt;br /&gt;
 65536&lt;br /&gt;
&lt;br /&gt;
If you want to check your server’s current tracked connections, just run the following:&lt;br /&gt;
 cat /proc/sys/net/ipv4/netfilter/ip_conntrack_count&lt;br /&gt;
&lt;br /&gt;
If you want to adjust it (as I did), just run the following as root:&lt;br /&gt;
 echo 131072 &amp;gt; /proc/sys/net/ipv4/ip_conntrack_max&lt;br /&gt;
&lt;br /&gt;
To make this persistent you have to add a line like&lt;br /&gt;
 net.ipv4.ip_conntrack_max=131072′ to /etc/sysctl.conf&lt;br /&gt;
&lt;br /&gt;
== NAT ==&lt;br /&gt;
&lt;br /&gt;
[http://linuxadministration.wordpress.com/2007/09/02/secure-your-linux-box-iptables-nat-masquerading/#more-16 Linux Firewall – iptables and NAT « Sachin’s Weblog]&lt;br /&gt;
&lt;br /&gt;
NAT, Network Address translation basically is of two types SNAT and DNAT.&lt;br /&gt;
&lt;br /&gt;
SNAT, Source NAT is when you alter the source address of the first packet: i.e. you are changing where the connection is coming from. Source NAT is always done post-routing, just before the packet goes out onto the wire. Masquerading is a specialized form of SNAT.&lt;br /&gt;
&lt;br /&gt;
DNAT, Destination NAT is when you alter the destination address of the first packet: i.e. you are changing where the connection is going to. Destination NAT is always done before routing, when the packet first comes off the wire. Port forwarding, load sharing, and transparent proxying are all forms of DNAT.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
 /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE&lt;br /&gt;
 # /sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
 # /sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
 iptables-save &amp;gt; /etc/sysconfig/iptables&lt;br /&gt;
 service iptables restart&lt;br /&gt;
&lt;br /&gt;
 /etc/sysctl.conf&lt;br /&gt;
   net.ipv4.ip_forward = 1&lt;br /&gt;
&lt;br /&gt;
Source: HOWTO: Linux NAT in Four Steps using iptables - http://www.revsys.com/writings/quicktips/nat.html&lt;br /&gt;
&lt;br /&gt;
== transparent firewall ==&lt;br /&gt;
&lt;br /&gt;
Securing Debian Manual - Setting up a bridge firewall - http://www.debian.org/doc/manuals/securing-debian-howto/ap-bridge-fw.en.html&lt;br /&gt;
&lt;br /&gt;
== RedHat sysconfig iptables ==&lt;br /&gt;
&lt;br /&gt;
 iptables-save &amp;gt; /etc/sysconfig/iptables&lt;br /&gt;
&lt;br /&gt;
 iptables-restore&lt;br /&gt;
&lt;br /&gt;
 service iptables restart&lt;br /&gt;
&lt;br /&gt;
Example /etc/sysconfig/iptables:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
*filter&lt;br /&gt;
:INPUT ACCEPT [0:0]&lt;br /&gt;
:FORWARD ACCEPT [0:0]&lt;br /&gt;
:OUTPUT ACCEPT [0:0]&lt;br /&gt;
:RH-INPUT - [0:0]&lt;br /&gt;
-A INPUT -j RH-INPUT&lt;br /&gt;
-A FORWARD -j RH-INPUT&lt;br /&gt;
-A RH-INPUT -i lo -j ACCEPT&lt;br /&gt;
-A RH-INPUT -p icmp --icmp-type any -j ACCEPT&lt;br /&gt;
-A RH-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
-A RH-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT&lt;br /&gt;
-A RH-INPUT -j REJECT --reject-with icmp-host-prohibited&lt;br /&gt;
COMMIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Default /etc/sysconfig/iptables:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Firewall configuration written by system-config-securitylevel&lt;br /&gt;
# Manual customization of this file is not recommended.&lt;br /&gt;
*filter&lt;br /&gt;
:INPUT ACCEPT [0:0]&lt;br /&gt;
:FORWARD ACCEPT [0:0]&lt;br /&gt;
:OUTPUT ACCEPT [0:0]&lt;br /&gt;
:RH-Firewall-1-INPUT - [0:0]&lt;br /&gt;
-A INPUT -j RH-Firewall-1-INPUT&lt;br /&gt;
-A FORWARD -j RH-Firewall-1-INPUT&lt;br /&gt;
-A RH-Firewall-1-INPUT -i lo -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited&lt;br /&gt;
COMMIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Modified /etc/sysconfig/iptables:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Firewall configuration written by system-config-securitylevel&lt;br /&gt;
# Manual customization of this file is not recommended.&lt;br /&gt;
*filter&lt;br /&gt;
:INPUT ACCEPT [0:0]&lt;br /&gt;
:FORWARD ACCEPT [0:0]&lt;br /&gt;
:OUTPUT ACCEPT [0:0]&lt;br /&gt;
:RH-Firewall-1-INPUT - [0:0]&lt;br /&gt;
-A INPUT -j RH-Firewall-1-INPUT&lt;br /&gt;
-A FORWARD -j RH-Firewall-1-INPUT&lt;br /&gt;
-A RH-Firewall-1-INPUT -i lo -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# SSH&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# WEB&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# SAMBA&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# NFS4&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# NFS3&lt;br /&gt;
# Uncomment MOUNTD_PORT in /etc/sysconfig/nfs&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 2049 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 892 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m udp -p udp --dport 892 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# FTP&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# MYSQL&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# LOG AND BLOCK&lt;br /&gt;
-A RH-Firewall-1-INPUT -j LOG --log-level 4 --log-prefix &amp;quot;** BLOCKED **&amp;quot;&lt;br /&gt;
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited&lt;br /&gt;
COMMIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
t0e data modified:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Firewall configuration written by system-config-securitylevel&lt;br /&gt;
# Manual customization of this file is not recommended.&lt;br /&gt;
*filter&lt;br /&gt;
:INPUT ACCEPT [0:0]&lt;br /&gt;
:FORWARD ACCEPT [0:0]&lt;br /&gt;
:OUTPUT ACCEPT [0:0]&lt;br /&gt;
:RH-Firewall-1-INPUT - [0:0]&lt;br /&gt;
-A INPUT -j RH-Firewall-1-INPUT&lt;br /&gt;
-A FORWARD -j RH-Firewall-1-INPUT&lt;br /&gt;
&lt;br /&gt;
# ESTABLISHED&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# LOCAL&lt;br /&gt;
-A RH-Firewall-1-INPUT -i lo -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# PING&lt;br /&gt;
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# IPSec&lt;br /&gt;
# 50  ESP   Encap Security Payload          [RFC4303]&lt;br /&gt;
# 51  AH    Authentication Header           [RFC4302]&lt;br /&gt;
#-A RH-Firewall-1-INPUT -p 50 -j ACCEPT&lt;br /&gt;
#-A RH-Firewall-1-INPUT -p 51 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# MULTICAST (DNS)&lt;br /&gt;
#-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j REJECT --reject-with icmp-host-prohibited&lt;br /&gt;
&lt;br /&gt;
# Internet Printing Protocol&lt;br /&gt;
#-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT&lt;br /&gt;
#-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# SSH&lt;br /&gt;
#-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -s 10.10.10.5 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -s 10.10.10.1 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -s 10.10.20.5 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -s 216.119.0.0/16 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# WEB&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# MAIL&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 995 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# SAMBA&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# VNC&lt;br /&gt;
#-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5900 -j ACCEPT&lt;br /&gt;
#-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# VMWARE&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 902 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# UNKNOWN&lt;br /&gt;
###-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 69 -j ACCEPT&lt;br /&gt;
###&lt;br /&gt;
####-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 514 -j ACCEPT&lt;br /&gt;
####-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 784 -j ACCEPT&lt;br /&gt;
####-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 765 -j ACCEPT&lt;br /&gt;
####-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 787 -j ACCEPT&lt;br /&gt;
####-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 618 -j ACCEPT&lt;br /&gt;
####-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 621 -j ACCEPT&lt;br /&gt;
###&lt;br /&gt;
&lt;br /&gt;
# NFS&lt;br /&gt;
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 111 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m udp -p udp --dport 111 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 2049 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m udp -p udp --dport 2049 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 4001 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m udp -p udp --dport 4001 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 4002 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m udp -p udp --dport 4002 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 4003 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m udp -p udp --dport 4003 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 4004 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m udp -p udp --dport 4004 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# MYSQL&lt;br /&gt;
#-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
# LOGGING AND BLOCKING&lt;br /&gt;
-A RH-Firewall-1-INPUT -j LOG --log-level 4 --log-prefix &amp;quot;*** BLOCKED ***&amp;quot;&lt;br /&gt;
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited&lt;br /&gt;
&lt;br /&gt;
COMMIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Basic NAT Routing Example ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Generated by iptables-save v1.3.5 on Sun Aug  5 10:02:44 2012&lt;br /&gt;
*nat&lt;br /&gt;
:PREROUTING ACCEPT [1:65]&lt;br /&gt;
:POSTROUTING ACCEPT [1:65]&lt;br /&gt;
:OUTPUT ACCEPT [0:0]&lt;br /&gt;
-A POSTROUTING -o eth1 -j MASQUERADE&lt;br /&gt;
COMMIT&lt;br /&gt;
# Completed on Sun Aug  5 10:02:44 2012&lt;br /&gt;
# Generated by iptables-save v1.3.5 on Sun Aug  5 10:02:44 2012&lt;br /&gt;
*filter&lt;br /&gt;
:INPUT ACCEPT [0:0]&lt;br /&gt;
:FORWARD ACCEPT [0:0]&lt;br /&gt;
:OUTPUT ACCEPT [138:20068]&lt;br /&gt;
:RH-Firewall-1-INPUT - [0:0]&lt;br /&gt;
-A INPUT -j RH-Firewall-1-INPUT&lt;br /&gt;
-A FORWARD -j RH-Firewall-1-INPUT&lt;br /&gt;
-A RH-Firewall-1-INPUT -i lo -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -i eth0 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p esp -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p ah -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT&lt;br /&gt;
-A RH-Firewall-1-INPUT -j LOG --log-level 4 --log-prefix &amp;quot;** BLOCKED **&amp;quot;&lt;br /&gt;
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited&lt;br /&gt;
COMMIT&lt;br /&gt;
# Completed on Sun Aug  5 10:02:44 2012&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Stop SSH Brute Force Attacks ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
here&amp;#039;s an easy fix. It drops new ssh connections coming from the same IP with less than 15s intervals (or any timeout you&lt;br /&gt;
want). In my server, this has shown to stop the automated attempts on the first failed connection - and even if the&lt;br /&gt;
attacker waits for the 15s, it makes brute-force attempts not practical.&lt;br /&gt;
&lt;br /&gt;
For legit sessions, 15s is reasonable (at least for me) between session starts.&lt;br /&gt;
&lt;br /&gt;
It&amp;#039;s just two lines on the iptables configuration. No other change required:&lt;br /&gt;
&lt;br /&gt;
iptables -A INPUT -p tcp -i eth0 -m state --state NEW --dport 22 -m recent --update --seconds 15 -j DROP&lt;br /&gt;
iptables -A INPUT -p tcp -i eth0 -m state --state NEW --dport 22 -m recent --set -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
This assumes you already have&lt;br /&gt;
iptables -A INPUT -j ACCEPT -p tcp ! --syn -s &amp;lt;REMOTENET&amp;gt; -d &amp;lt;OUTERNET&amp;gt;&lt;br /&gt;
above that, to accept established connection packets.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
look up a program called denyhosts.&lt;br /&gt;
&lt;br /&gt;
we have a lot of problems with ssh brute attacks. denyhost has helped a lot.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[Linux/Security#DenyHosts]]&lt;br /&gt;
&lt;br /&gt;
SSH tricks -- any way to block failed attempts by IP address - http://www.linuxquestions.org/questions/linux-security-4/ssh-tricks-any-way-to-block-failed-attempts-by-ip-address-342359/&lt;br /&gt;
&lt;br /&gt;
== Quick Block Ping ==&lt;br /&gt;
&lt;br /&gt;
Block Ping:&lt;br /&gt;
 iptables -A INPUT -p icmp --icmp-type 8 -j DROP&lt;br /&gt;
&lt;br /&gt;
Flush tables:&lt;br /&gt;
 iptables -F&lt;br /&gt;
&lt;br /&gt;
== Quick Port 8080 to 80 Redirect ==&lt;br /&gt;
&lt;br /&gt;
/etc/rc.local:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport  80 -j REDIRECT --to-port 8080&lt;br /&gt;
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443&lt;br /&gt;
&lt;br /&gt;
iptables -t nat -A OUTPUT -d localhost -p tcp --dport  80 -j REDIRECT --to-port 8080&lt;br /&gt;
iptables -t nat -A OUTPUT -d localhost -p tcp --dport 443 -j REDIRECT --to-port 8443&lt;br /&gt;
&lt;br /&gt;
iptables -t nat -A OUTPUT -d $(hostname) -p tcp --dport  80 -j REDIRECT --to-port 8080&lt;br /&gt;
iptables -t nat -A OUTPUT -d $(hostname) -p tcp --dport 443 -j REDIRECT --to-port 8443&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== by IP ==&lt;br /&gt;
&lt;br /&gt;
 iptables -A INPUT -s 15.15.15.51 -j REJECT&lt;br /&gt;
 iptables -A INPUT -i eth0 -s 15.15.15.51 -j DROP&lt;br /&gt;
&lt;br /&gt;
== notes ==&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch14_:_Linux_Firewalls_Using_iptables Quick HOWTO : Ch14 : Linux Firewalls Using iptables - Linux Home Networking]&lt;br /&gt;
:&amp;quot;Network security is a primary consideration in any decision to host a website as the threats are becoming more widespread and persistent every day. One means of providing additional protection is to invest in a firewall. Though prices are always falling, in some cases you may be able to create a comparable unit using the Linux iptables package on an existing server for little or no additional expenditure. &amp;quot;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
</feed>