I would like to allow a certain IP addresses or a whole network (source) to reach my servers with ssh connection and to drop all other unauthorized source IP addresses.

link|improve this question

71% accept rate
feedback

3 Answers

iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED --source x.x.x.x -p tcp --dport 22 -j ACCEPT

access only from x.x.x.x

iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 22 -j DROP

drop all other packets to port 22

link|improve this answer
Hopefully the default rule is REJECT in which case you wouldn't have to define the second rule. – dunxd Jul 29 '11 at 15:12
feedback
iptables -A INPUT -p tcp -s 12.34.56.78/16 --dport ssh -j ACCEPT
iptables -A INPUT -p tcp --dport ssh -j REJECT

There are other ways to do it, but this is simplest when we know nothing about your other rules.

link|improve this answer
feedback

Sometimes command line IpTables syntax can be a bit much to learn/digest. If you're new(ish) to linux administration; you might consider installing something like webmin. You can use their gui to create your rules, and then go back and check the "/etc/sysconfig/iptables" file and see the actual syntax.

I would then recommend using Webmin & IpTables to lock down webin access to only those specific IP addresses you wish. You use the same syntax as some of the other posters have answered, just changing the PORT to whatever you setup Webmin to use. (Hopefully something OTHER than the standard port:10000).

link|improve this answer
I'd like to understand why someone would vote this down? Is this considered unhelpful? Poorly written? I'd genuinely appreciate the constructive criticism. – RealITGuy Jul 30 '11 at 13:11
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.