Advertisement
Guest User

Untitled

a guest
Mar 1st, 2019
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.74 KB | None | 0 0
  1. #assumes server already hardened
  2.  
  3. SERVERIP=192.168.23.23
  4.  
  5. INTERFACENAME=eth0
  6.  
  7. EASYRSA_REQ_COUNTRY=Japan
  8. EASYRSA_REQ_PROVINCE=Tokyo
  9. EASYRSA_REQ_CITY=Tokyo
  10. EASYRSA_REQ_ORG=AnOrg
  11. EASYRSA_REQ_OU=AnOU
  12.  
  13. apt update && apt upgrade -y
  14. apt install openvpn -y
  15. wget -P ~/ https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.6/EasyRSA-unix-v3.0.6.tgz
  16. cd
  17. tar xvf EasyRSA-unix-v3.0.6.tgz
  18. cp -r EasyRSA-v3.0.6/ EasyRSA-ca
  19. cd EasyRSA-ca/
  20. cp vars.example vars
  21. sed -i "s/^#\(set_var EASYRSA_REQ_COUNTRY[ \t]*\)\"US\"/\1\"$EASYRSA_REQ_COUNTRY\"/" /root/EasyRSA-ca/vars
  22. sed -i "s/^#\(set_var EASYRSA_REQ_PROVINCE[ \t]*\)\"California\"/\1\"$EASYRSA_REQ_PROVINCE\"/" /root/EasyRSA-ca/vars
  23. sed -i "s/^#\(set_var EASYRSA_REQ_CITY[ \t]*\)\"San Francisco\"/\1\"$EASYRSA_REQ_CITY\"/" /root/EasyRSA-ca/vars
  24. sed -i "s/^#\(set_var EASYRSA_REQ_ORG[ \t]*\)\"Copyleft Certificate Co\"/\1\"$EASYRSA_REQ_ORG\"/" /root/EasyRSA-ca/vars
  25. sed -i "s/^#\(set_var EASYRSA_REQ_EMAIL[ \t]*\)\"[email protected]\"/\1\"$EASYRSA_REQ_EMAIL\"/" /root/EasyRSA-ca/vars
  26. sed -i "s/^#\(set_var EASYRSA_REQ_OU[ \t]*\)\"My Organizational Unit\"/\1\"$EASYRSA_REQ_OU\"/" /root/EasyRSA-ca/vars
  27.  
  28. ./easyrsa init-pki
  29. ./easyrsa build-ca nopass
  30. cd ../EasyRSA-v3.0.6/
  31. ./easyrsa init-pki
  32. ./easyrsa gen-req server nopass
  33. cp pki/private/server.key /etc/openvpn/
  34. cp pki/reqs/server.req /tmp
  35. cd ../EasyRSA-ca/
  36. ./easyrsa import-req /tmp/server.req server
  37. ./easyrsa sign-req server server
  38. cp pki/issued/server.crt /tmp
  39. cp pki/ca.crt /tmp
  40. cd ../EasyRSA-v3.0.6/
  41. cp /tmp/{server.crt,ca.crt} /etc/openvpn/
  42. ./easyrsa gen-dh
  43. openvpn --genkey --secret ta.key
  44. cp ta.key /etc/openvpn/
  45. cp pki/dh.pem /etc/openvpn/
  46. mkdir -p ~/client-configs/keys
  47. chmod -R 700 ~/client-configs
  48. ./easyrsa gen-req client1 nopass
  49. cp pki/private/client1.key ~/client-configs/keys/
  50. cp pki/reqs/client1.req /tmp
  51. cd ../EasyRSA-ca/
  52. ./easyrsa import-req /tmp/client1.req client1
  53. ./easyrsa sign-req client client1
  54. cp pki/issued/client1.crt /tmp
  55. cd ../EasyRSA-v3.0.6/
  56. cp /tmp/client1.crt ~/client-configs/keys/
  57. cp ta.key ~/client-configs/keys/
  58. cp /etc/openvpn/ca.crt ~/client-configs/keys/
  59. cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
  60. gzip -d /etc/openvpn/server.conf.gz
  61. sed -i '/^tls-auth ta.key 0/a key-direction 0' /etc/openvpn/server.conf
  62. sed -i '/^cipher AES-256-CBC/a auth SHA256' /etc/openvpn/server.conf
  63. sed -i 's/^dh dh2048.pem/dh dh.pem/' /etc/openvpn/server.conf
  64. sed -i 's/^;user nobody/user nobody/' /etc/openvpn/server.conf
  65. sed -i 's/^;group nogroup/group nogroup/' /etc/openvpn/server.conf
  66. sed -i 's/^;push "redirect-gateway def1 bypass-dhcp"/push "redirect-gateway def1 bypass-dhcp"/' /etc/openvpn/server.conf
  67. sed -i 's/^;push "dhcp-option DNS 208.67.222.222"/push "dhcp-option DNS 8.8.8.8"/' /etc/openvpn/server.conf
  68. sed -i 's/^;push "dhcp-option DNS 8.8.4.4"/push "dhcp-option DNS 8.8.8.8"/' /etc/openvpn/server.conf
  69. sed -i 's/^#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
  70. sysctl -p
  71. iptables -A INPUT -i $INTERFACENAME -m state --state NEW -p udp --dport 1194 -j ACCEPT
  72. iptables -A INPUT -i tun+ -j ACCEPT
  73. iptables -A FORWARD -i tun+ -j ACCEPT
  74. iptables -A FORWARD -i tun+ -o $INTERFACENAME -m state --state RELATED,ESTABLISHED -j ACCEPT
  75. iptables -A FORWARD -i $INTERFACENAME -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
  76. iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o $INTERFACENAME -j MASQUERADE
  77. iptables -D INPUT -j DROP
  78. iptables -A INPUT -j DROP
  79. iptables-save > /etc/iptables/rules.v4
  80. ip6tables-save > /etc/iptables/rules.v6
  81. systemctl start openvpn@server
  82. #systemctl status openvpn@server
  83. #ip addr show tun0
  84. systemctl enable openvpn@server
  85. mkdir -p ~/client-configs/files
  86. cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf
  87. sed -i "s/^remote your_server_ip 1194/remote $SERVERIP 1194/" ~/client-configs/base.conf
  88. sed -i 's/^;user nobody/user nobody/' ~/client-configs/base.conf
  89. sed -i 's/^;group nogroup/group nogroup/' ~/client-configs/base.conf
  90. sed -i 's/^ca ca.crt/#ca ca.crt/' ~/client-configs/base.conf
  91. sed -i 's/^cert client.crt/#cert client.crt/' ~/client-configs/base.conf
  92. sed -i 's/^key client.key/#key client.key/' ~/client-configs/base.conf
  93. sed -i 's/^tls-auth ta.key 1/#tls-auth ta.key 1/' ~/client-configs/base.conf
  94. sed -i '/^cipher AES-256-CBC/a auth SHA256\nkey direction 1\n# script-security 2\n# up /etc/openvpn/update-resolv-conf\n# down /etc/openvpn/update-resolv-conf' ~/client-configs/base.conf
  95.  
  96. cp ~/client-configs/base.conf ~/client-configs/files/client1.ovpn
  97. sed -i '$ a <ca>' ~/client-configs/files/client1.ovpn
  98. cat ~/client-configs/keys/ca.crt >> ~/client-configs/files/client1.ovpn
  99. echo -e "</ca>" >> ~/client-configs/files/client1.ovpn
  100. sed -i '$ a <cert>' ~/client-configs/files/client1.ovpn
  101. cat ~/client-configs/keys/client1.crt >> ~/client-configs/files/client1.ovpn
  102. echo -e "</cert>" >> ~/client-configs/files/client1.ovpn
  103. sed -i '$ a <key>' ~/client-configs/files/client1.ovpn
  104. cat ~/client-configs/keys/client1.key >> ~/client-configs/files/client1.ovpn
  105. echo -e "</key>" >> ~/client-configs/files/client1.ovpn
  106. sed -i '$ a <tls-auth>' ~/client-configs/files/client1.ovpn
  107. cat ~/client-configs/keys/ta.key >> ~/client-configs/files/client1.ovpn
  108. echo -e "</tls-auth>" >> ~/client-configs/files/client1.ovpn
  109. -------
  110. NEWUSER=user
  111. PASSWORD=password
  112. SSHPORT=777
  113.  
  114. apt-get update
  115. apt-get upgrade -y
  116. #timedatectl set-timezone Asia/Japan
  117.  
  118. adduser $NEWUSER --gecos "First Last,RoomNumber,WorkPhone,HomePhone" --disabled-password
  119. echo "$NEWUSER:$PASSWORD" | sudo chpasswd
  120. adduser $NEWUSER sudo
  121.  
  122. sed -i 's/^PermitRootLogin yes/PermitRootLogin no'/ /etc/ssh/sshd_config
  123. sed -i '/^#TCPKeepAlive yes/a AllowTcpForwarding no' /etc/ssh/sshd_config
  124. sed -i 's/^X11Forwarding yes/X11Forwarding no'/ /etc/ssh/sshd_config
  125. sed -i 's/^UsePAM yes/UsePAM no'/ /etc/ssh/sshd_config
  126. sed -i '$ a AddressFamily inet' /etc/ssh/sshd_config
  127. sed -i "$ a AllowUsers $NEWUSER" /etc/ssh/sshd_config
  128. sed -i "s/^#Port 22/Port $SSHPORT"/ /etc/ssh/sshd_config
  129.  
  130. service ssh restart
  131.  
  132. apt-get install fail2ban -y
  133. cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  134.  
  135. sed -i '/^\[sshd\]/a enabled = true\nfilter = sshd\nbantime = 1800\nfindtime = 1800\nmaxretry = 3' /etc/fail2ban/jail.local
  136. sed -i "s/^\(port[ ]*=\) ssh/\1 $SSHPORT"/ /etc/fail2ban/jail.local
  137.  
  138. service fail2ban restart
  139.  
  140. iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
  141. iptables -A INPUT -p tcp --dport $SSHPORT -j ACCEPT
  142. iptables -I INPUT 1 -i lo -j ACCEPT
  143. iptables -A INPUT -j DROP
  144. DEBIAN_FRONTEND=noninteractive apt-get install iptables-persistent -y
  145. iptables-save > /etc/iptables/rules.v4
  146. iptables-save > /etc/iptables/rules.v6
  147.  
  148. sed -i '$ a net.ipv6.conf.all.disable_ipv6 = 1' /etc/sysctl.conf
  149. sed -i '$ a net.ipv6.conf.default.disable_ipv6 = 1' /etc/sysctl.conf
  150. sed -i '$ a net.ipv6.conf.lo.disable_ipv6 = 1' /etc/sysctl.conf
  151. sysctl -p
  152.  
  153. apt-get update
  154. apt-get upgrade -y
  155.  
  156. DEBIAN_FRONTEND=noninteractive dpkg-reconfigure unattended-upgrades
  157.  
  158. sed -i '/-updates/s/^\/\///g' /etc/apt/apt.conf.d/50unattended-upgrades
  159. sed -i 's/\/\/Unattended-Upgrade::Automatic-Reboot "false";/Unattended-Upgrade::Automatic-Reboot "true";'/ /etc/apt/apt.conf.d/50unattended-upgrades
  160. sed -i 's/\/\/Unattended-Upgrade::Remove-Unused-Kernel-Packages "false";/Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";'/ /etc/apt/apt.conf.d/50unattended-upgrades
  161. sed -i 's/\/\/Unattended-Upgrade::Remove-Unused-Dependencies "false";/Unattended-Upgrade::Remove-Unused-Dependencies "true";'/ /etc/apt/apt.conf.d/50unattended-upgrades
  162. sed -i '/^APT::Periodic::Update-Package-Lists "1";/a APT::Periodic::Download-Upgradeable-Packages "1";\nAPT::Periodic::AutocleanInterval "7";' /etc/apt/apt.conf.d/20auto-upgrades
  163.  
  164. #setup key-based authentication
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement