Difference between revisions of "Sshbastion"
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
 (→ref)  | 
				|||
| Line 4: | Line 4: | ||
** if using this script use  | ** if using this script use  | ||
** chattr +a /var/log/bastion/  | ** chattr +a /var/log/bastion/  | ||
| − | ** add umask 0027 to /usr/bin/bastion/shell  | + | ** add <code>umask 0027</code> to /usr/bin/bastion/shell  | 
=sshd basic=  | =sshd basic=  | ||
| Line 42: | Line 42: | ||
* harden passwords  | * harden passwords  | ||
** apt install libpam-pwquality  | ** apt install libpam-pwquality  | ||
| − | ** add  password        requisite                       pam_pwquality.so minlen=12 retry=3  | + | ** add  <code>password        requisite                       pam_pwquality.so minlen=12 retry=3</code>  | 
** to /etc/pam.d/common-passwdi  | ** to /etc/pam.d/common-passwdi  | ||
* geoip  | * geoip  | ||
** apt install geoip-database-extra libpam-geoip  | ** apt install geoip-database-extra libpam-geoip  | ||
** see https://github.com/vetinari/pam_geoip/blob/master/geoip.conf and modify /etc/security/geoip.conf  | ** see https://github.com/vetinari/pam_geoip/blob/master/geoip.conf and modify /etc/security/geoip.conf  | ||
| − | ** add account required pam_geoip.so geoip_db=/usr/share/GeoIP/GeoIPCity.dat  | + | ** add <code>account required pam_geoip.so geoip_db=/usr/share/GeoIP/GeoIPCity.dat</code>  | 
** to /etc/pam.d/common-account  | ** to /etc/pam.d/common-account  | ||
Revision as of 10:50, 30 October 2017
ref
- https://aws.amazon.com/blogs/security/how-to-record-ssh-sessions-established-through-a-bastion-host/
- if using this script use
 - chattr +a /var/log/bastion/
 - add 
umask 0027to /usr/bin/bastion/shell 
 
sshd basic
- make sure ssh root is cert only or disabled
 - PermitRootLogin prohibit-password
 - AllowTcpForwarding no
 - X11Forwarding no
 - Only allow certain group to ssh
 - AllowGroups sshusers
 
harden
install fail2ban to make lock out brute force attacks
proc
Make sure users can't see other users processes:
- proc /proc proc defaults,hidepid=2 0 0
 
firewall to restrict outgoing traffic from bastion
#!/bin/bash iptables --flush OUTPUT iptables --append OUTPUT -d security.debian.org -j ACCEPT iptables --append OUTPUT -d ftp.dk.debian.org -j ACCEPT iptables --append OUTPUT -d 192.168.12.1 -p tcp --dport 22 -j DROP iptables --append OUTPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT iptables --append OUTPUT -m state -d 192.168.12.1 -p udp --dport 53 -j ACCEPT iptables --append OUTPUT -m state -d 192.168.12.1 -p tcp --dport 53 -j ACCEPT iptables --append OUTPUT -m -d 192.168.12.1 -p udp --dport 67:68 -j ACCEPT iptables --append OUTOUT -p icmp -j ACCEPT iptables --append OUTPUT -m state --state NEW -j REJECT
remember to persist with eg iptables-persistent
PAM
Secure bastionhost
- harden passwords
- apt install libpam-pwquality
 - add  
password requisite pam_pwquality.so minlen=12 retry=3 - to /etc/pam.d/common-passwdi
 
 - geoip
- apt install geoip-database-extra libpam-geoip
 - see https://github.com/vetinari/pam_geoip/blob/master/geoip.conf and modify /etc/security/geoip.conf
 - add 
account required pam_geoip.so geoip_db=/usr/share/GeoIP/GeoIPCity.dat - to /etc/pam.d/common-account